Implicit Types m n p : nat.Definition ltof (a b:A) := f a < f b.Definition gtof (a b:A) := f b > f a.

Lemma lt_wf_double_rect : forall P:nat -> nat -> Type, (forall n m, (forall p q, p < n -> P p q) -> (forall p, p < m -> P n p) -> P n m) -> forall n m, P n m.