1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
17 inductive pos: Set \def
21 inductive nat:Set \def
25 definition pos2nat : pos \to nat \def
26 \lambda x:pos . match x with
28 | (next z) \Rightarrow O].
30 inductive empty (x:nat) : nat \to Set \def .
32 definition empty2nat : (empty O O) \to nat \def
33 \lambda x : (empty O O). S (match x in empty with []).
35 inductive le (n:nat) : nat \to Prop \def
37 | le_S : \forall m:nat. le n m \to le n (S m).
39 inductive True : Prop \def
42 definition r : True \def
45 | (le_S y p') \Rightarrow I ].
47 inductive Prod (A,B:Set): Set \def
48 pair : A \to B \to Prod A B.
50 definition fst : \forall A,B:Set. (Prod A B) \to A \def
51 \lambda A,B:Set. \lambda p:(Prod A B). match p with
52 [(pair a b) \Rightarrow a].