-
Notifications
You must be signed in to change notification settings - Fork 71
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
Support a module mode that verifies the contained proofs are in EPR and if so, enables the mbqi
quant. instantiation strategy
#1000
base: main
Are you sure you want to change the base?
Conversation
- plumbing of errors - add tests into harness
Co-Authored-By: GenericMonkey <pransrin@umich.edu>
What's the difference between inline and inline_only? Is the original inline conditional on something? |
mbqi
quant. instantiation strategy
I think the original inline will not suppress the creation of the function definition in the VC. Since we care about reducing the QA graph by eliminating the function defn ( |
Changes
Attributes
#[verifier::epr_check]
to run the EPR checker on all proofs in a particular module.verifier::inline_only
attribute to suppress generation of the function body in the Verification Condition#![no_triggers]
trigger annotation to produce an empty pattern. Together withpi.enabled
this will effectively eliminate trigger based instantiation for the given quantifier (i.e. MBQI only)EPR Core Logic
alternation_check.rs
that runs a 3 pass check for quantifier alternation.prune.rs
to also return a boolean saying all reached types are opaque datatypes.epr_check
Testing
epr.rs
to test harness to test interesting cases of the quantifier alternation graph generationdelmap_epr.rs
toexamples/
to further test feature and show an example of code organization around the EPR feature