summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBrian Campbell2019-08-02 11:39:25 +0100
committerBrian Campbell2019-08-02 11:39:25 +0100
commit94e2f401263c7efc69f7d2b731827dc41bd8c1b8 (patch)
tree7a6b0d46256c759c7ac2c4079d320d36267aa6a3 /lib
parent8f9aa39623699f5b50f7abf6dc3c124062542b7e (diff)
Fix up some edge cases with the bitvector/polyvector split
Mostly in the Coq backend, plus a few testcases that use bitvector builtins on poly-vectors (which works on some backends, but not Coq). Also handle some additional list inclusion proofs in Coq.
Diffstat (limited to 'lib')
-rw-r--r--lib/coq/Sail2_values.v4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/coq/Sail2_values.v b/lib/coq/Sail2_values.v
index fc97fcc6..15bdaea4 100644
--- a/lib/coq/Sail2_values.v
+++ b/lib/coq/Sail2_values.v
@@ -1704,10 +1704,10 @@ Ltac main_solver :=
| match goal with |- context [Z.mul] => nia end
(* If we have a disjunction from a set constraint on a variable we can often
solve a goal by trying them (admittedly this is quite heavy handed...) *)
- | subst;
+ | subst; drop_Z_exists;
let aux x :=
is_var x;
- intuition (subst;auto)
+ intuition (subst;auto with datatypes)
in
match goal with
| _:(@eq Z _ ?x) \/ (@eq Z _ ?x) \/ _ |- context[?x] => aux x