From 77e3ca28bbac9d973fbf0c5cd36de58159356710 Mon Sep 17 00:00:00 2001 From: letouzey Date: Thu, 30 Sep 2010 17:38:31 +0000 Subject: Improve handling of metas as evars in unification (patch by Hugo) Pratical situation: simple eapply foo on a goal ?123, while foo is a (forall f, exists ...). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13479 85f007b7-540e-0410-9357-904b9bb8a0f7 --- test-suite/success/evars.v | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'test-suite') diff --git a/test-suite/success/evars.v b/test-suite/success/evars.v index 6423ad14e8..69f7164c7a 100644 --- a/test-suite/success/evars.v +++ b/test-suite/success/evars.v @@ -238,3 +238,19 @@ eapply f_equal with (* should fail because ill-typed *) end) in H || injection H. Abort. + +(* A legitimate simple eapply that was failing in coq <= 8.3. + Cf. in Unification.w_merge the addition of an extra pose_all_metas_as_evars + on 30/9/2010 +*) + +Lemma simple_eapply_was_failing : + (forall f:nat->nat, exists g, f = g) -> True. +Proof. + assert (modusponens : forall P Q, P -> (P->Q) -> Q) by auto. + intros. + eapply modusponens. + simple eapply H. + (* error message with V8.3 : + Impossible to unify "?18" with "fun g : nat -> nat => ?6 = g". *) +Abort. -- cgit v1.2.3