]> matita.cs.unibo.it Git - helm.git/blob - helm/matita/tests/first.ma
first snapshot of separate compilation
[helm.git] / helm / matita / tests / first.ma
1 set "baseuri" "cic:/matita/tests/first/".
2
3 inductive nat : Set \def
4   | O : nat
5   | S : nat \to nat.
6
7 inductive eq (A:Set): A \to A \to Prop \def
8   refl: \forall x:A.eq A x x. 
9
10 inductive list (A:Set) : Set \def
11   | nil : list A
12   | cons : A \to list A \to list A.
13 alias symbol "cast" (instance 0) = "type cast".
14
15 let rec list_len (A:Set) (l:list A) on l \def
16   [\lambda x.nat]
17   match (l:list A) with 
18   [ nil \Rightarrow O
19   | (cons a tl) \Rightarrow S (list_len A tl)].
20   
21 theorem stupid: \forall A:Set.eq ? (list_len A (nil ?)) O.
22 intros.
23 normalize.
24 apply refl.
25 qed.