diff options
author | Matthieu Sozeau <matthieu.sozeau@inria.fr> | 2014-12-12 14:07:04 +0100 |
---|---|---|
committer | Matthieu Sozeau <matthieu.sozeau@inria.fr> | 2014-12-12 14:07:04 +0100 |
commit | f47afacd86ff1f9fda5347decf298ace941a24bc (patch) | |
tree | dcebda4952a8e62c06c42e188a557dc315683d92 /test-suite/bugs/closed/3709.v | |
parent | 4a0cd08598ce4b88b3c1d34b3beb3687eedb94f8 (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.v | 23 |
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. |