diff options
author | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2011-04-08 14:08:50 +0000 |
---|---|---|
committer | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2011-04-08 14:08:50 +0000 |
commit | 31c44227059be9227f8fc921f74a80094f9bbcfe (patch) | |
tree | 7d0d1b6aa6586470ad9fb508574d69709447111e /test-suite | |
parent | 7cc81d4bebb993ea6f71290a808a74439465cdde (diff) |
Applying and reworking Tom Prince's patch for test-suite/failure/universes2.v
which did not test what it was supposed to test
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13970 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'test-suite')
-rw-r--r-- | test-suite/failure/universes2.v | 4 | ||||
-rw-r--r-- | test-suite/success/universes-coercion.v | 22 |
2 files changed, 22 insertions, 4 deletions
diff --git a/test-suite/failure/universes2.v b/test-suite/failure/universes2.v deleted file mode 100644 index e74de70fc..000000000 --- a/test-suite/failure/universes2.v +++ /dev/null @@ -1,4 +0,0 @@ -(* Example submitted by Randy Pollack *) - -Parameter K : forall T : Type, T -> T. -Check (K (forall T : Type, T -> T) K). diff --git a/test-suite/success/universes-coercion.v b/test-suite/success/universes-coercion.v new file mode 100644 index 000000000..d75043402 --- /dev/null +++ b/test-suite/success/universes-coercion.v @@ -0,0 +1,22 @@ +(* This example used to emphasize the absence of LEGO-style universe + polymorphism; Matthieu's improvements of typing on 2011/3/11 now + makes (apparently) that Amokrane's automatic eta-expansion in the + coercion mechanism works; this makes its illustration as a "weakness" + of universe polymorphism obsolete (example submitted by Randy Pollack). + + Note that this example is not an evidence that the current + non-kernel eta-expansion behavior is the most expected one. +*) + +Parameter K : forall T : Type, T -> T. +Check (K (forall T : Type, T -> T) K). + +(* + note that the inferred term is + "(K (forall T (* u1 *) : Type, T -> T) (fun T:Type (* u1 *) => K T))" + which is not eta-equivalent to + "(K (forall T : Type, T -> T) K" + because the eta-expansion of the latter + "(K (forall T : Type, T -> T) (fun T:Type (* u2 *) => K T)" + assuming K of type "forall T (* u2 *) : Type, T -> T" +*) |