-
Notifications
You must be signed in to change notification settings - Fork 161
Speedup spec all #1625
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Speedup spec all #1625
Conversation
|
I think why reusing the set from hyp_frees is slower is that the vars from strip_forall is already guaranteed to be fresh in the term and that sorting the list makes it so that the loop check here https://github.com/HOL-Theorem-Prover/HOL/blob/24e40cd1c7f7e235a5c9f32f692c0d9ae04ddb2b/src/0/Term.sml#L345C1-L347C25 is slower |
|
note time from docker-ci stdknl 3076.5s |
Note that reusing set from hyp_frees is actually slower. times using `time bin/build` before real 10m37.510s user 21m43.869s sys 3m12.949s reusing set from hyp_frees real 10m40.847s user 21m49.628s sys 3m16.913s without reusing set from hyp_frees real 10m29.285s user 21m9.849s sys 3m10.606s
92d99f1 to
f3101b2
Compare
|
I wanted to see if I could speed it up even more by using gen_variant with a predicate check but the issue is that you can't lookup a string using the HOLset produced by FVL and recreating a new set is slower. #1642 is going to be needed for the further improvement. |
|
It seems as if this code should actually be using |
|
reusing the same set from hyp_frees is actually slower |
|
I still suspect the same thing
|
|
But the "new" code is calling |
|
Making it call |
|
I suspect it doesn't help that |
|
A better way would be if strip_forall has a additional parameter for names it should avoid. |
Note that reusing set from hyp_frees is actually slower.
times using
time bin/buildbefore
real 10m37.510s
user 21m43.869s
sys 3m12.949s
reusing set from hyp_frees
real 10m40.847s
user 21m49.628s
sys 3m16.913s
without reusing set from hyp_frees
real 10m29.285s
user 21m9.849s
sys 3m10.606s
note depends on #1623