From 37a58edffeff7b6a7f03ec781e1e2ca73de4b3af Mon Sep 17 00:00:00 2001 From: Matthieu Sozeau Date: Thu, 14 Aug 2014 13:01:30 +0200 Subject: Restrict eta-conversion to inductive records, fixing bug #3310. --- test-suite/bugs/closed/3310.v | 10 ++++++++++ test-suite/bugs/closed/3482.v | 11 +++++++++++ test-suite/bugs/opened/3310.v | 10 ---------- 3 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 test-suite/bugs/closed/3310.v create mode 100644 test-suite/bugs/closed/3482.v delete mode 100644 test-suite/bugs/opened/3310.v (limited to 'test-suite') diff --git a/test-suite/bugs/closed/3310.v b/test-suite/bugs/closed/3310.v new file mode 100644 index 0000000000..ee9f8edfd3 --- /dev/null +++ b/test-suite/bugs/closed/3310.v @@ -0,0 +1,10 @@ +Set Primitive Projections. + +CoInductive stream A := cons { hd : A; tl : stream A }. + +CoFixpoint id {A} (s : stream A) := cons _ (hd s) (id (tl s)). + +Lemma id_spec : forall A (s : stream A), id s = s. +Proof. +intros A s. +Fail Timeout 1 change (id s) with (cons _ (hd (id s)) (tl (id s))). diff --git a/test-suite/bugs/closed/3482.v b/test-suite/bugs/closed/3482.v new file mode 100644 index 0000000000..34a5e73da7 --- /dev/null +++ b/test-suite/bugs/closed/3482.v @@ -0,0 +1,11 @@ +Set Primitive Projections. +Class Foo (F : False) := { foo : True }. +Arguments foo F {Foo}. +Print Implicit foo. (* foo : forall F : False, Foo F -> True + +Argument Foo is implicit and maximally inserted *) +Check foo _. (* Toplevel input, characters 6-11: +Error: Illegal application (Non-functional construction): +The expression "foo" of type "True" +cannot be applied to the term + "?36" : "?35" *) \ No newline at end of file diff --git a/test-suite/bugs/opened/3310.v b/test-suite/bugs/opened/3310.v deleted file mode 100644 index ee9f8edfd3..0000000000 --- a/test-suite/bugs/opened/3310.v +++ /dev/null @@ -1,10 +0,0 @@ -Set Primitive Projections. - -CoInductive stream A := cons { hd : A; tl : stream A }. - -CoFixpoint id {A} (s : stream A) := cons _ (hd s) (id (tl s)). - -Lemma id_spec : forall A (s : stream A), id s = s. -Proof. -intros A s. -Fail Timeout 1 change (id s) with (cons _ (hd (id s)) (tl (id s))). -- cgit v1.2.3