elim H0; intros.
elim H; intros.
clear H0; clear H.
rewrite H2; rewrite H1.
rewrite (mult_plus_distr_r (2 * q0) 1 (2 * q + 1)).
apply (plus_even_odd (2 * q0 * (2 * q + 1)) (1 * (2 * q + 1))).
apply (mult_even (2 * q0) (2 * q + 1)).
apply (even_intro (2 * q0) q0); auto with arith.
apply (odd_intro (1 * (2 * q + 1)) q); auto with arith.
Qed.
(************************** div, even and odd ****************************)
Definition div (d a : nat) := exists k : nat, a = d * k.
(*************************************************************************)

(* Specifications: *)
Lemma div_odd_even : forall n d : nat, div d (2 * n) -> odd d -> div d n.
intros.