summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Campbell2019-03-01 10:41:33 +0000
committerBrian Campbell2019-03-01 12:05:29 +0000
commit576fb915bc281ea8e59eba896e3404d2f85e918c (patch)
tree99267bd1f50e9704acd5407ef98b7e6fefaf0bd4
parentdfb2ca35204870809730a0feb0ba98c1f45f57ac (diff)
Coq: add a little bit of boolean solving
Just enough for RISC-V to go through
-rw-r--r--lib/coq/Sail2_values.v8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/coq/Sail2_values.v b/lib/coq/Sail2_values.v
index 1b5da853..e6c5e786 100644
--- a/lib/coq/Sail2_values.v
+++ b/lib/coq/Sail2_values.v
@@ -1208,6 +1208,14 @@ prepare_for_solver;
| constructor; eauto 3 with zarith sail
(* The datatypes hints give us some list handling, esp In *)
| constructor; drop_exists; eauto 3 with datatypes zarith sail
+ (* Booleans - and_boolMP *)
+ | match goal with |- ArithFact (forall l r:bool, _ -> _ -> exists _, _) =>
+ constructor; intros l r H1 H2;
+ solve [exists l; destruct l; intuition | exists r; destruct l; intuition]
+ end
+ | match goal with |- context [@eq _ _ _] =>
+ constructor; intuition
+ end
| constructor; idtac "Unable to solve constraint"; dump_context; fail
].
(* Add an indirection so that you can redefine run_solver to fail to get