diff options
author | Chantal Keller <Chantal.Keller@lri.fr> | 2022-02-07 19:08:05 +0100 |
---|---|---|
committer | Chantal Keller <Chantal.Keller@lri.fr> | 2022-02-07 19:08:05 +0100 |
commit | 3e5897710dc45c1b0bede79d3d61f4211c5ccb0e (patch) | |
tree | 7f202b3a8b67a43e99a673fce9b1397e6ab2a063 | |
parent | 6941dd2ec8349b78c8622ac136d4617f6c26b9c6 (diff) | |
parent | 81b13b26f6dabca0152a9244fc474cd8ecb29905 (diff) | |
download | smtcoq-3e5897710dc45c1b0bede79d3d61f4211c5ccb0e.tar.gz smtcoq-3e5897710dc45c1b0bede79d3d61f4211c5ccb0e.zip |
Merge remote-tracking branch 'origin/coq-8.12' into coq-8.13
-rw-r--r-- | src/QInst.v | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/QInst.v b/src/QInst.v index 1dc66a8..89ccd88 100644 --- a/src/QInst.v +++ b/src/QInst.v @@ -36,6 +36,34 @@ Proof. installed when we compile SMTCoq. *) Qed. +Lemma impl_split211 a b1 b2 c1 c2 : + implb a ((b1 && b2) || (c1 && c2)) = true -> (negb a) || b1 || c1 = true. +Proof. + intro H. + destruct a; destruct b1; destruct b2; destruct c1; destruct c2; trivial. +Qed. + +Lemma impl_split212 a b1 b2 c1 c2 : + implb a ((b1 && b2) || (c1 && c2)) = true -> (negb a) || b1 || c2 = true. +Proof. + intro H. + destruct a; destruct b1; destruct b2; destruct c1; destruct c2; trivial. +Qed. + +Lemma impl_split221 a b1 b2 c1 c2 : + implb a ((b1 && b2) || (c1 && c2)) = true -> (negb a) || b2 || c1 = true. +Proof. + intro H. + destruct a; destruct b1; destruct b2; destruct c1; destruct c2; trivial. +Qed. + +Lemma impl_split222 a b1 b2 c1 c2 : + implb a ((b1 && b2) || (c1 && c2)) = true -> (negb a) || b2 || c2 = true. +Proof. + intro H. + destruct a; destruct b1; destruct b2; destruct c1; destruct c2; trivial. +Qed. + (** verit silently transforms an <implb (a || b) c> into a <or (not a) c> or into a <or (not b) c> when instantiating such a quantified theorem *) @@ -154,6 +182,10 @@ Ltac vauto := | [ |- (negb ?A || ?B || ?C) = true ] => first [ eapply eqb_or_split; apply_sym H | eapply impl_split2; apply_sym H + | eapply impl_split211; apply_sym H + | eapply impl_split212; apply_sym H + | eapply impl_split221; apply_sym H + | eapply impl_split222; apply_sym H ] end ] |