proposition: Lemma itersucc_or_iterpred : forall n m, exists k, n == (S^k) m \/ n == (P^k) m.
proof: Proof. intros n m. destruct (itersucc_or_itersucc n m) as (k,[H|H]). - exists k; left; auto. - exists k; right. apply succ_swap_pred; auto. Qed.
imports: NumPrelude NZAxioms NZBase NZOrder NZAddOrder PeanoNat