summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBrian Campbell2019-03-15 13:32:43 +0000
committerBrian Campbell2019-03-15 13:50:52 +0000
commit9136e3cfcb1071c34ba6dd31a92d45a327a77cdd (patch)
treebdb90d82207eb403af1ccd79c8832318121823a5 /lib
parent6137b6b5b788138dd02503cb1e88242a618a3677 (diff)
Coq: better loop handling, discharge some related proof obligations
Diffstat (limited to 'lib')
-rw-r--r--lib/coq/Sail2_values.v4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/coq/Sail2_values.v b/lib/coq/Sail2_values.v
index f11e057a..824ad2d4 100644
--- a/lib/coq/Sail2_values.v
+++ b/lib/coq/Sail2_values.v
@@ -1155,7 +1155,8 @@ repeat
(* The linear solver doesn't like existentials. *)
Ltac destruct_exists :=
- repeat match goal with H:@ex Z _ |- _ => destruct H end.
+ repeat match goal with H:@ex Z _ |- _ => destruct H end;
+ repeat match goal with H:@ex bool _ |- _ => destruct H end.
Ltac prepare_for_solver :=
(*dump_context;*)
@@ -1222,6 +1223,7 @@ prepare_for_solver;
| constructor; drop_exists; eauto 3 with datatypes zarith sail
| match goal with |- context [Z.mul] => constructor; nia end
(* Booleans - and_boolMP *)
+ | constructor; intuition
| match goal with |- ArithFact (forall l r:bool, _ -> _ -> exists _ : bool, _) =>
constructor; intros [|] [|] H1 H2;
repeat match goal with H:?X = ?X -> _ |- _ => specialize (H eq_refl) end;