Proof fun n Hn P HO HS => nat_ind P HO HS n Hn.
(****************)
(** * Ordering  *)
(****************)
Definition le (n m : nat) : Prop :=
forall P : nat -> Prop, P n -> (forall p : nat, P p -> P (S p)) -> P m.
(** This relation is reflexive and transitive, and closed under the successor function.  Notice that these lemmas do not rely on the well-formedness assumption: *)

(* Specifications: *)
Lemma le_refl : forall n : nat, le n n.
Proof fun n P H _ => H.
Lemma le_trans : forall n1 n2 n3 : nat, le n1 n2 -> le n2 n3 -> le n1 n3.
Proof fun n1 n2 n3 H1 H2 P Hn1 HS => H2 P (H1 P Hn1 HS) HS.
Lemma le_S : forall n m : nat, le n m -> le n (S m).
Proof fun n m H P Hn HS => HS m (H P Hn HS).