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
Notation wish #17845: add support for notations with recursive binders involving "let" and "match" #17856
Notation wish #17845: add support for notations with recursive binders involving "let" and "match" #17856
Conversation
f831d98
to
80165fa
Compare
80165fa
to
89481c2
Compare
89481c2
to
6ce2427
Compare
I would say that even if printing does not work symmetrically due to the difficult-to-control interaction with pattern-matching decompilation, I think that this is worth to go. Note: I added a word on the changelog to say that the support is for parsing ("not for printing" implicitly implied). Not rerunning full ci though, as it is already green. |
6ce2427
to
f7b49b9
Compare
@coqbot run full ci |
Rerunning CI just to be safe before merging. @coqbot run full ci |
The job library:ci-fiat_crypto_legacy has failed in allow failure mode |
Probably also fix a bug where the second occurrence of a same pair of recursive binders did not check that the bodies of fun/forall were the same.
Shadowing of variables not treated though (but it cannot arrive in interpretation of notations). Allow to make subst_glob_vars working on other kinds of patterns than lam and prod (such as "match" and "let").
f7b49b9
to
16b0e80
Compare
…/match. Printing notations with complex nesting of pattern-matching that includes variables for recursive binders would typically require to intertwin pattern-matching decompilation with search for notations.
16b0e80
to
732a038
Compare
@herbelin sorry it appears I completely forget that one. Fixed the compilation issue do tu my delay. |
@coqbot run full ci |
@coqbot merge now |
@herbelin sorry again for the delay here, I apparently just forgot to merge, feel free to "harass" me in such cases. |
This seems to work for parsing.
Recognizing instances of the recursive pattern of the notations for printing is more aleatory: it interacts with pattern-matching decompilation (done earlier in detyping) in ways difficult to control.
Fixes #17845