From b5c3ab50b42bc9004dfa69d3e25a1ea9c5572986 Mon Sep 17 00:00:00 2001 From: herbelin Date: Sat, 21 Oct 2006 17:28:28 +0000 Subject: Le calcul de la classe dans class_args_of ne suivait pas celui de class_of (avec comme conséquence des échecs en cas de beta-redex - cf coercions.v). Allègements triviaux dans coercion.ml en passant. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@9257 85f007b7-540e-0410-9357-904b9bb8a0f7 --- test-suite/success/coercions.v | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'test-suite') diff --git a/test-suite/success/coercions.v b/test-suite/success/coercions.v index 750165a55a..d652132e49 100644 --- a/test-suite/success/coercions.v +++ b/test-suite/success/coercions.v @@ -31,7 +31,7 @@ Parameter C:> forall n:nat, A n -> nat. *) (* Check coercion between products based on eta-expansion *) -(* (there was a de Bruijn bug until rev ) *) +(* (there was a de Bruijn bug until rev 9254) *) Section P. @@ -42,3 +42,22 @@ Variable G :> forall x, C x -> D x. Check fun (H : forall y:E, y = y -> C y) => (H : forall y:E, y = y -> D y). End P. + +(* Check that class arguments are computed the same when looking for a + coercion and when applying it (class_args_of) (failed until rev 9255) *) + +Section Q. + +Variable bool : Set. +Variables C D : bool -> Prop. +Variable G :> forall x, C x -> D x. +Variable f : nat -> bool. + +Definition For_all (P : nat -> Prop) := forall x, P x. + +Check fun (H : For_all (fun x => C (f x))) => H : forall x, D (f x). +Check fun (H : For_all (fun x => C (f x))) x => H x : D (f x). +Check fun (H : For_all (fun x => C (f x))) => H : For_all (fun x => D (f x)). + +End Q. + -- cgit v1.2.3