(* Inductive Set nat : O:nat | S:nat->nat. *)
Fixpoint inf_egal (n : nat) : nat -> bool :=
fun m : nat =>
match n, m with
| O, m => true
| S n, O => false
| S n, S m => inf_egal n m
end.

(* Specifications: *)
Lemma inf_egal_eq1 : forall m : nat, inf_egal 0 m = true.
Lemma inf_egal_eq2 : forall n : nat, inf_egal (S n) 0 = false.
Lemma inf_egal_eq3 : forall n m : nat, inf_egal (S n) (S m) = inf_egal n m.
Inductive list (X : Set) : Set :=
| Nil : list X
| Cons : X -> list X -> list X.