summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBrian Campbell2020-06-12 18:40:42 +0100
committerBrian Campbell2020-06-12 18:56:19 +0100
commitb6fb5a567c1d3d0bbe1f30e875d2cdcaba9514ad (patch)
treef0c673cff04af4aacec1608ef72ecd35b5a94ba4 /lib
parent3eee31df2a2c07eca7e899b42746ce02af9c56ff (diff)
Coq: fix matching bug in solver
Diffstat (limited to 'lib')
-rw-r--r--lib/coq/Values.v9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/coq/Values.v b/lib/coq/Values.v
index b0d08670..256d7c19 100644
--- a/lib/coq/Values.v
+++ b/lib/coq/Values.v
@@ -2109,10 +2109,13 @@ Ltac squashed_andor_solver :=
destruct H as [x H'];
exists x
end;
- (* Attempt to shrink size of problem *)
+ (* Attempt to shrink size of problem.
+ I originally used just one match here with a non-linear pattern, but it
+ appears it matched up to convertability and so definitions could break
+ the generalization. *)
try match goal with
- | _ : l = _ -> ?v = r |- context[?v] => generalize dependent v; intros
- | _ : l = _ -> Bool.eqb ?v r = true |- context[?v] => generalize dependent v; intros
+ | _ : l = _ -> ?v = r |- _ => match goal with |- context[v] => generalize dependent v; intros end
+ | _ : l = _ -> Bool.eqb ?v r = true |- _ => match goal with |- context[v] => generalize dependent v; intros end
end;
unbool_comparisons; unbool_comparisons_goal;
repeat match goal with