diff options
author | Chantal Keller <Chantal.Keller@lri.fr> | 2019-04-12 15:07:05 +0200 |
---|---|---|
committer | Chantal Keller <Chantal.Keller@lri.fr> | 2019-04-12 15:07:05 +0200 |
commit | bcf5d896d5b8bf371f4873dcc86ec2d2f8734eeb (patch) | |
tree | 626c79b7e52d5a875a3a4165e715583f77d2fe07 /README.md | |
parent | f6ad41ada44b87ef6ffd44c1252ed9acb8e8021d (diff) | |
download | smtcoq-bcf5d896d5b8bf371f4873dcc86ec2d2f8734eeb.tar.gz smtcoq-bcf5d896d5b8bf371f4873dcc86ec2d2f8734eeb.zip |
Documentation
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 30 |
1 files changed, 28 insertions, 2 deletions
@@ -108,6 +108,10 @@ forall l, b1 = b2 where `l` is a quantifier-free list of variables and `b1` and `b2` are expressions of type `bool`. +A more efficient version of this tactic, called `zchaff_no_check`, +performs only the check at `Qed`. (Thus it is safe, but a proof may fail +at `Qed` even if everything went through during proof elaboration.) + #### veriT @@ -156,12 +160,14 @@ The theories that are currently supported by these commands are `QF_UF` ##### veriT as a Coq decision procedure -The `verit_bool` tactic can be used to solve any goal of the form: +The `verit_bool [h1 ...]` tactic can be used to solve any goal of the form: ```coq forall l, b1 = b2 ``` where `l` is a quantifier-free list of variables and `b1` and `b2` are -expressions of type `bool`. +expressions of type `bool`. This tactic *supports quantifiers*: it takes +optional arguments which are names of universally quantified +lemmas/hypotheses that can be used to solve the goal. In addition, the `verit` tactic applies to Coq goals of sort `Prop`: it first converts the goal into a term of type `bool` (thanks to the @@ -172,6 +178,10 @@ The theories that are currently supported by these tactics are `QF_UF` (theory of equality), `QF_LIA` (linear integer arithmetic), `QF_IDL` (integer difference logic), and their combinations. +A more efficient version of this tactic, called `verit_no_check`, +performs only the check at `Qed`. (Thus it is safe, but a proof may fail +at `Qed` even if everything went through during proof elaboration.) + #### CVC4 @@ -242,6 +252,10 @@ The theories that are currently supported by these tactics are `QF_UF` (integer difference logic), `QF_BV` (theory of fixed-size bit vectors), `QF_A` (theory of arrays), and their combinations. +A more efficient version of this tactic, called `cvc4_no_check`, +performs only the check at `Qed`. (Thus it is safe, but a proof may fail +at `Qed` even if everything went through during proof elaboration.) + ### The smt tactic @@ -251,3 +265,15 @@ first converts the goal to a term of type `bool` (thanks to the `cvc4_bool` and `verit_bool` tactics, and it finally converts any unsolved subgoals back to `Prop`, thus offering to the user the possibility to solve these (usually simpler) subgoals. + +A more efficient version of this tactic, called `smt_no_check`, +performs only the check at `Qed`. (Thus it is safe, but a proof may fail +at `Qed` even if everything went through during proof elaboration.) + + +### Conversion tactics + +SMTCoq provides conversion tactics, to inject various integer types into +the type Z supported by SMTCoq. They can be called before the other +SMTCoq tactics. These tactics are named `nat_convert`, `N_convert` and +`pos_convert`. They can be combined. |