-
Notifications
You must be signed in to change notification settings - Fork 2
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
Lookup abstracted terms using unification #109
Conversation
In my opinion, it has to be done by keyed matching: we first compare the head symbols, and perform conversion only when the head symbols are the same. I also wish to have a mechanism to cache the results of conversion. See #18. |
Is this one of the unexpected consequences of what we did this morning? @CohenCyril |
I would not think it is on the critical path for performance, this is only for terms that can not be translated, and I would have thought that the costlier part is the decision procedure. Do we have any benchmark? |
|
According to https://inria.hal.science/hal-00984057v1/, one call of |
+3% in |
Yes, most probably, so I revert for now |
Would that be better (+1% in |
+1% sounds ok for me. What about Apery? (I suggest to insert |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks ok to me. Performance evaluation is needed.
I get +.1%, -1% and -2% for the three |
FTR: I still wish to see the overall performance change of Apery. To do so, you probably need to use Coq 8.20. |
-.07% on Apery. |
When
quote.ring
finds a term that it can not translate, it looks it up in a list of terms it has already abstracted and if it does not find it adds it to the list. This is not robust to composition of coercions however, since it uses equality of terms instead of unification.