Ltac cases n := induction_maker n ltac:(apply case_analysis).

(* Specifications: *)
Theorem neq_0 : ~ forall n, n == 0.
Theorem neq_0_r n : n ~= 0 <-> exists m, n == S m.
Theorem zero_or_succ n : n == 0 \/ exists m, n == S m.
Theorem eq_pred_0 n : P n == 0 <-> n == 0 \/ n == 1.
Theorem succ_pred n : n ~= 0 -> S (P n) == n.
Theorem pred_inj n m : n ~= 0 -> m ~= 0 -> P n == P m -> n == m.
Section PairInduction.