aboutsummaryrefslogtreecommitdiffhomepage
path: root/test-suite/bugs/closed/3709.v
diff options
context:
space:
mode:
authorGravatar Matthieu Sozeau <matthieu.sozeau@inria.fr>2014-12-12 14:07:04 +0100
committerGravatar Matthieu Sozeau <matthieu.sozeau@inria.fr>2014-12-12 14:07:04 +0100
commitf47afacd86ff1f9fda5347decf298ace941a24bc (patch)
treedcebda4952a8e62c06c42e188a557dc315683d92 /test-suite/bugs/closed/3709.v
parent4a0cd08598ce4b88b3c1d34b3beb3687eedb94f8 (diff)
Two fixes in unification (bugs #3782 and #3709)
- In evarconv, check_conv_record properly computes the parameters of primitive record projections for later unification, adding env and sigma as arguments. - In unification, backtrack on pattern-unification and not only application unification if eta for a record failed.
Diffstat (limited to 'test-suite/bugs/closed/3709.v')
-rw-r--r--test-suite/bugs/closed/3709.v23
1 files changed, 23 insertions, 0 deletions
diff --git a/test-suite/bugs/closed/3709.v b/test-suite/bugs/closed/3709.v
new file mode 100644
index 000000000..7f01be7ab
--- /dev/null
+++ b/test-suite/bugs/closed/3709.v
@@ -0,0 +1,23 @@
+Module NonPrim.
+ Unset Primitive Projections.
+ Record hProp := hp { hproptype :> Type }.
+ Goal forall (h : (Type -> hProp) -> (Type -> hProp)) k f,
+ (forall y, h y = y) ->
+ h (fun b : Type => {| hproptype := f b |}) = k.
+ Proof.
+ intros h k f H.
+ etransitivity.
+ apply H.
+ admit.
+ Defined.
+End NonPrim.
+Module Prim.
+ Set Primitive Projections.
+ Record hProp := hp { hproptype :> Type }.
+ Goal forall (h : (Type -> hProp) -> (Type -> hProp)) k f,
+ (forall y, h y = y) ->
+ h (fun b : Type => {| hproptype := f b |}) = k.
+ Proof.
+ intros h k f H.
+ etransitivity.
+ apply H.