(****************)
(** * Ordering  *)
(****************)

Definition le (n m : nat) : Prop :=
  forall P : nat -> Prop, P n -> (forall p : nat, P p -> P (S p)) -> P m.

Lemma le_inv : forall n m : nat, le n m -> or (eq nat n m) (ex nat (fun k => and (le n k) (eq nat m (S k)))).