Skip to content
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

example with open terms: extensional replace #720

Merged
merged 28 commits into from
Nov 29, 2024
Merged

Conversation

gares
Copy link
Contributor

@gares gares commented Nov 27, 2024

No description provided.

@gares gares force-pushed the extensional-replace branch 2 times, most recently from 3fe8a9f to ec4a91a Compare November 27, 2024 22:30
ybertot and others added 26 commits November 28, 2024 22:05
…d output

expressions, and the lambda where the rewrite happens is the rightmost
replacements under lambdas, justified by extensionality and ring.

 - The two input formulas refer to a bound variable, which appears in the
   first lambda expression found in a top-down left-to-right traversal of
   the goal syntax tree (the bound variable cannot be forgotten in the
   second formula).
 - replacements occur in the lambda expression as justified by the
   extensionality tactic (hence the dependence on the
   FunctionalExtensionality package).
 - The replacement can be justified using the ring command, once the
   extensionality tactic has been called.
rule for map, but the extensionality goal is not beta-reduced
the treatment of polymorphic is still wrong (it cannot use f_equal4 for map)
…re well

documented.  Main missing thing would be work on error messages:
 - unknown variables are never bound simultaneously in the same context
 - dependently typed functions are used for other purposes than polymorphism
variables in the goal do not appear in the replacement formulas, also fixes
a mishap with git
generated that do not clash, but preserve what was seen before by the user
handling the generation of these names explicitely
@gares gares force-pushed the extensional-replace branch from ec4a91a to f69b427 Compare November 28, 2024 21:05
@gares gares changed the title Extensional replace (on elpi 2.0) example with open terms: extensional replace Nov 29, 2024
@gares gares merged commit d8f08e2 into master Nov 29, 2024
72 of 75 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants