Section Le_case_analysis.
Variables (n p : nat)
(H : n <= p)
(Q : nat -> Prop)
(H0 : Q n)
(HS : forall m, n <= m -> Q (S m)).
Check (
match H in (_ <= q) return (Q q)  with
| le_n _ => H0
| le_S _ m Hm => HS m Hm
end
).
End Le_case_analysis.

Lemma predecessor_of_positive : forall n, 1 <= n ->  exists p:nat, n = S p.