-
Notifications
You must be signed in to change notification settings - Fork 35
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
Brazillians are sometimes blind to perfect hints #28
Comments
Probably a difference in a hidden type annotation, something like El(unitname) vs. Unit. I've patches this by having exact matches use the built-in equivalence algorithm (without hints or rewrites) instead of alpha-equivalence. #14 also runs. Unfortunately, this change makes the system noticeably slower. (because running beta-eta equivalence on every subterm to see if it's the term-to-rewrite is at least a constant factor slower than running alpha-equivalence on every subterm to see if it's the term-to-rewrite). |
Do you short-circuit the alpha-equivalence case? Is there a verbosity level that prints out the hidden annotations? (If not, can there be?) |
Sure, but the the short circuit can only make equivalence faster. Inequivalence, which is the likely issue here, doesn't speed up at all. (When alpha-equivalence fails, you still have to do the full beta-eta check to make sure they're not somehow equivalent).
|
Why is inequivalence the issue here? |
It's now working harder to identify subterms that can be rewritten, by 99% of subterms are not rewritable, but there's no way to identify (Actually we compares types of terms and patterns before comparing the |
You've probably already thought of all of this, but can you store the hints in beta-normal (and eta-long?) form, and beta-(eta-)normalize the things you're checking against? (The beta-normal form, at least, can be computed once-and-forall for the whole term, I think.) |
Actually, I think the user should be giving hints in normal form. At least for now. |
Obsolete, the hints are gone from the kernel. |
Why does this hint, which exactly matches the goal (up to symmetry), not get used?
The text was updated successfully, but these errors were encountered: