From 87e64004d2fb44077b68c4f9c009223b81ad2b6d Mon Sep 17 00:00:00 2001 From: Claudio Sacerdoti Coen Date: Tue, 28 Aug 2012 13:25:55 +0000 Subject: [PATCH] ... --- matita/matita/lib/extraction.ma | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/matita/matita/lib/extraction.ma b/matita/matita/lib/extraction.ma index c06357f33..66386cb3b 100644 --- a/matita/matita/lib/extraction.ma +++ b/matita/matita/lib/extraction.ma @@ -118,6 +118,11 @@ definition ttest11 ≝ λf:ttest11_aux True. f I. definition ttest12 ≝ λf:True → nat. f I. +(*BUG: assertion failure here! difficult case for head application +axiom ttest13_a: ∀T:Type[1]. T → nat. +definition ttest13_b ≝ ttest13_a nat O. +definition ttest13_c ≝ ttest13_a Prop True.*) + (*GENERAL BUG: name clashes when binders shadow each other in CIC*) (*BUG: for OCaml: cofixpoint not distinguished from fixpoints*) @@ -187,12 +192,18 @@ inductive eq (A:Type[1]) (a:A) : A → Prop ≝ refl: eq A a a. definition cast_bug1 ≝ λH:eq Type[0] bool nat. S (match H return λA:Type[0].λ_.A with [ refl ⇒ true ]). +(* +(*BUG: Here we use eq_rect_Type0 in its poly-kinded form, but we only extracted + the one-kinded form. Require coercions *) +definition cast_bug1' ≝ + λH:eq Type[0] bool nat. S (eq_rect_Type0 Type[0] bool (λA:Type[0].λ_.A) true nat H). +*) + (* requires coercion in all branches *) definition cast_bug2 ≝ - λb. match true return λb.match b with [ true ⇒ nat → nat | false ⇒ bool ] with [ true ⇒ S | false ⇒ false ] O. (*BUG: try singleton elimination with constructor arguments to show bug in - DeBrujin indexes *) + DeBrujin indexes *) \ No newline at end of file -- 2.39.2