aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Sozeau2016-10-21 10:49:15 +0200
committerMatthieu Sozeau2016-10-21 12:24:43 +0200
commit5b0b6c92354c34a4f0d5551f88b16264fb08be5f (patch)
treeb789f64d3024e70a70a1c175facab638dde76367
parenta5b977e3acb6d2cd73ed6c895a7d4b587366caa9 (diff)
Revert 214b9ab7969fae71dcf553c399cb1674e463d0e3
This makes [refine] typecheck the term only once (instead of twice), (Qed excluded of course). Fix test-suite file for output of constraints accordingly.
-rw-r--r--ltac/extratactics.ml42
-rw-r--r--test-suite/output/unifconstraints.out26
2 files changed, 5 insertions, 23 deletions
diff --git a/ltac/extratactics.ml4 b/ltac/extratactics.ml4
index db7318469f..d0318fb5f6 100644
--- a/ltac/extratactics.ml4
+++ b/ltac/extratactics.ml4
@@ -355,7 +355,7 @@ let refine_tac ist simple c =
let expected_type = Pretyping.OfType concl in
let c = Pretyping.type_uconstr ~flags ~expected_type ist c in
let update = { run = fun sigma -> c.delayed env sigma } in
- let refine = Refine.refine ~unsafe:false update in
+ let refine = Refine.refine ~unsafe:true update in
if simple then refine
else refine <*>
Tactics.New.reduce_after_refine <*>
diff --git a/test-suite/output/unifconstraints.out b/test-suite/output/unifconstraints.out
index d152052ba3..ae84603622 100644
--- a/test-suite/output/unifconstraints.out
+++ b/test-suite/output/unifconstraints.out
@@ -8,11 +8,7 @@ subgoal 2 is:
forall n : nat, ?Goal n -> ?Goal (S n)
subgoal 3 is:
nat
-unification constraints:
- ?Goal ?Goal2 <=
- True /\ True /\ True \/
- veeryyyyyyyyyyyyloooooooooooooonggidentifier =
- veeryyyyyyyyyyyyloooooooooooooonggidentifier
+unification constraint:
?Goal ?Goal2 <=
True /\ True /\ True \/
veeryyyyyyyyyyyyloooooooooooooonggidentifier =
@@ -28,11 +24,7 @@ subgoal 2 is:
forall n0 : nat, ?Goal@{n:=n; m:=m} n0 -> ?Goal@{n:=n; m:=m} (S n0)
subgoal 3 is:
nat
-unification constraints:
- ?Goal@{n:=n; m:=m} ?Goal2@{n:=n; m:=m} <=
- True /\ True /\ True \/
- veeryyyyyyyyyyyyloooooooooooooonggidentifier =
- veeryyyyyyyyyyyyloooooooooooooonggidentifier
+unification constraint:
?Goal@{n:=n; m:=m} ?Goal2@{n:=n; m:=m} <=
True /\ True /\ True \/
veeryyyyyyyyyyyyloooooooooooooonggidentifier =
@@ -48,12 +40,7 @@ subgoal 2 is:
forall n0 : nat, ?Goal1@{m:=m} n0 -> ?Goal1@{m:=m} (S n0)
subgoal 3 is:
nat
-unification constraints:
-
- n, m : nat |- ?Goal1@{m:=m} ?Goal0@{n:=n; m:=m} <=
- True /\ True /\ True \/
- veeryyyyyyyyyyyyloooooooooooooonggidentifier =
- veeryyyyyyyyyyyyloooooooooooooonggidentifier
+unification constraint:
n, m : nat |- ?Goal1@{m:=m} ?Goal0@{n:=n; m:=m} <=
True /\ True /\ True \/
@@ -70,12 +57,7 @@ subgoal 2 is:
forall n0 : nat, ?Goal0@{m:=m} n0 -> ?Goal0@{m:=m} (S n0)
subgoal 3 is:
nat
-unification constraints:
-
- n, m : nat |- ?Goal0@{m:=m} ?Goal2@{n:=n} <=
- True /\ True /\ True \/
- veeryyyyyyyyyyyyloooooooooooooonggidentifier =
- veeryyyyyyyyyyyyloooooooooooooonggidentifier
+unification constraint:
n, m : nat |- ?Goal0@{m:=m} ?Goal2@{n:=n} <=
True /\ True /\ True \/