-let rec plus (n,m:nat) : nat \def
- match n:nat with [
- O \Rightarrow m
- | (S x) \Rightarrow (S (plus x m)) ].
-
-let rec is_zero (n:nat) : bool \def
- match n:nat with [
- O \Rightarrow true
- | (S x) \Rightarrow false].
-
-let rec nat_eq_dec (n,m:nat) : bool \def
- match n:nat with [
- O \Rightarrow
- match m:nat with [
- O \Rightarrow true
- | (S x) \Rightarrow false]
- | (S x) \Rightarrow
- match m:nat with [
- O \Rightarrow false
- | (S y) \Rightarrow (nat_eq_dec x y)]
- ].
-
-
-Coercion is_zero.
-Coercion len.
-
-Print Coer.
-Print Env.
+definition fst \def \lambda x,y:int.x.
+alias symbol "eq" (instance 0) = "leibnitz's equality".