]> matita.cs.unibo.it Git - helm.git/commitdiff
Tests for code extraction; to be moved elsewhere.
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Wed, 1 Aug 2012 15:24:45 +0000 (15:24 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Wed, 1 Aug 2012 15:24:45 +0000 (15:24 +0000)
matita/matita/lib/extraction.ma [new file with mode: 0644]

diff --git a/matita/matita/lib/extraction.ma b/matita/matita/lib/extraction.ma
new file mode 100644 (file)
index 0000000..7791d89
--- /dev/null
@@ -0,0 +1,88 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "arithmetics/nat.ma".
+
+(*BUG: kind signatures in type declarations*)
+
+axiom test1: Type[1].
+
+axiom test2: Type[1] → Type[1].
+
+axiom test3: Prop → Type[1] → CProp[1] → Type[1] → Type[2].
+
+(* not in F_omega ? *)
+axiom test4: ∀A:Type[1]. A → ∀B:Type[1]. B → ∀C:Prop. C → Type[1].
+
+axiom test5: (Type[1] → Type[1]) → Type[1].
+
+(* no content *)
+axiom test6: Type[1] → Prop.
+
+definition dtest1: Type[1] ≝ nat → nat.
+
+definition dtest2: Type[2] ≝ ∀A:Type[1]. A → A.
+
+definition dtest3: Type[1] → Type[1] ≝ λA:Type[1]. A → A.
+
+definition dtest4: Type[1] → Type[1] ≝ λA:Type[1].dtest3 A.
+
+definition dtest5: Type[1] → Type[1] ≝ dtest3.
+
+definition dtest6: Type[1] ≝ dtest3 nat.
+
+(* no content *)
+definition dtest7: Prop ≝ True → True.
+
+(* no content *)
+definition dtest8: Type[1] ≝ dtest3 True.
+
+(* no content *)
+definition dtest9: Type[1] ≝ dtest3 Prop.
+
+definition dtest10: Type[1] → Type[1] → Type[1] ≝ λX,Y.X.
+
+(*BUG: a' vs a''*)
+definition dtest11: Type[1] → nat → Type[1] → Type[1] ≝ λ_:Type[1].λ_:nat.λX:Type[1]. X → nat → test1.
+
+definition dtest12 ≝ λ_:Type[1].λ_:nat.λX:Type[1]. X → nat → test1.
+
+definition dtest13 ≝ dtest3 nat → dtest3 True → dtest3 Prop → nat.
+
+definition dtest14 ≝ λX:Type[2]. X → X.
+
+(*FEATURE: type the forall bound variables*)
+definition dtest15 ≝ ∀T:Type[1] → Type[1]. T nat → T nat.
+
+definition dtest16 ≝ ∀T:Type[1]. T → nat.
+
+definition dtest17 ≝ ∀T:dtest14 Type[1]. T nat → dtest14 nat → dtest14 nat.
+
+definition dtest18 ≝ λA,B:Type[0].λn:nat.λC:Type[0].A.
+
+definition dtest19 ≝ dtest18 nat True O nat → dtest18 nat nat O nat.
+
+definition dtest20 ≝ test5 test2.
+
+(*BUG: lambda-lift the inner declaration;
+  to be traced, raises NotInFOmega; why? *)
+definition dtest21 ≝ test5 (λX:Type[1].X).
+
+definition ttest1 ≝ λx:nat.x.
+
+(*BUG: clash of name due to capitalisation*)
+definition Ttest1 ≝ λx:nat.x.
+
+(*BUG: Failure nth*)
+definition ttest2 ≝ λT:Type[1].λx:T.x.
\ No newline at end of file