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

Fix a small problem with triggers on spec_fn closures and deprecate triggers on spec_fn closures #1038

Merged
merged 2 commits into from
Mar 22, 2024

Conversation

Chris-Hawblitzel
Copy link
Collaborator

This is related to #331 and #1033 . It fixes the minor problem from #1033 . However, looking at this more closely, I think manual triggers on spec_fn closures cannot be supported in general because the AIR-generated axiom for spec_fn closures quantifies over "holes" that are not visible to source-level quantifiers. The built-in trigger generated by AIR works fine with these holes, but manual triggers do not because they have no way to name the holes. The examples in #331 happened to work because there were 0 holes in those examples, but for more complex cases (like the one in #1033 ), the manual triggers just lead to a Z3 warning "WARNING ... pattern does not contain all quantified variables" and are subsequently dropped by Z3. Therefore, I believe that this feature (manual triggers on spec_fn closures) should be deprecated. The discussion in #331 provides a way to work around the absence of this feature.

and deprecate triggers on spec_fn closures
@Chris-Hawblitzel Chris-Hawblitzel merged commit a92d84a into main Mar 22, 2024
5 checks passed
@Chris-Hawblitzel Chris-Hawblitzel deleted the spec_fn_closures branch March 22, 2024 02:31
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