Skip to content

Conversation

@MackieLoeffel
Copy link
Contributor

Based on #108

Add support for pure specialization patterns %h. This subsumes the dedicated forall specialization parts of proof mode terms.

TODO: decide which syntax to use for proof mode terms. This PR uses $$, but this can / should be changed.

Add a custom version of synthInstance for the proof mode that can
create and instantiate mvars. It is implemented as a simple
backtracking search, reusing the standard instance infrastructure. This
version of synthInstance should be used for the IPM proof mode
classes, marked with the attribute ipm_class.

Also some other small refactorings:
- Allow iexists to take multiple arguments
- Fix handling of created goals in iexists
- Use the Goals structure more consistently
- Add some more error messages
- Generalize AsEmpValid over the direction similar to the Rocq version
This commit adds [InOut] that is used to dynamically determine whether
a type class parameter is an input or an output. This is important for
classes that are used with multiple modings, e.g., IntoWand. Instances
can match on the InOut parameter to avoid accidentially instantiating
outputs if matching on an input was intended.
Backtracking can be selectively enabled for specific instanes with ipm_backtrack
Add support for pure specialization patterns `%h`. This subsumes the
dedicated forall specialization parts of proof mode terms.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants