intros a; apply Ind.
intros a0; rewrite (monO_n0 a); rewrite (monO_n0 a0).
apply Base; auto.
apply FoundG; auto.
apply FoundE; auto.
apply mdiv_nil; auto.
Qed.
Definition monLift (n : nat) (p : nat * mon n) :=
match p with
| (x, m) => c_n n x m
end.

(* Specifications: *)
Lemma monLift_lem :
forall (n0 : nat) (b : mon (S n0)) (x : nat) (m : mon n0),
b = c_n n0 x m -> {a : nat * mon n0 | b = monLift n0 a}.