case (le_or_lt a b).
auto.
intro.
unfold leq in H.
unfold not in H.
case (H H0).
Qed.
Definition jj : forall d : nat, mon d :=
(fix jj (d : nat) : mon d :=
match d as n return (mon n) with
| O => n_0
| S n => c_n n 0 (jj n)
end).

(* Specifications: *)
Theorem jjProp1 : forall (d : nat) (m : mon d), d = 0 -> m = jj d.
intros d m; elim m.