-
Notifications
You must be signed in to change notification settings - Fork 36
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- why3_tactic.ml: many fixes (fix #1165) and changes - fol.ml: add fields symb_Prop and sym_Set (domains of symb_P and symb_T), and symb_eqv - tests: merged why3_quantifiers.lp into why3.lp - rewrite.ml: make get_eq_data return a list instead of an array, and rename local function check_t_or_p into check_codomain_is_Type - tactic.ml: introduce the functions get_prod_ids and gen_valid_idopts, and improve assume so that it uses the user-defined variable names instead of h1, h2, etc. - base.ml: add char - list: add assoc_eq_opt As before, the why3 tactic starts by doing some assume. Then, the tactic tries to translate the environment as much as possible, and then the goal. The tactic fails if the goal cannot be translated. A term [t:Set] is translated to a Why3 type if it is algebraic (i.e. built from function applications and variables only) and its variables are in the environment. A term [t:T _] is translated to a Why3 term if it is algebraic and its variables are in the environment or are quantified variables. A term [t:P _] is translated to a Why3 formula if it has the form of a formula in predicate calculus. Subterms that are not in predicate calculus are replaced by fresh propositions. TODO: - [ ] when abstracting a subformula, compute its free variables, check that they are quantified, and replace the subterm by the application of a fresh predicate applied to those variables. Example: ```opaque symbol test11 a p x q : π ((`∀ x:τ a, p x ⇒ (λ y, q y) x) ⇒ p x ⇒ (λ y, q y) x) ≔ begin why3 end;``` - [ ] make translate_term abstract non-Why3 subterms too. Example: ```opaque symbol test12 a p x q : π ((`∀ x:τ a, p x ⇒ q ((λ y,y)x)) ⇒ p x ⇒ q ((λ y,y)x)) ≔ begin why3 end;``` - [ ] take into account rule on T and P; make the translation invariant by reduction
- Loading branch information
Showing
13 changed files
with
549 additions
and
308 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.