elim H.
intros.
cut (even x).
intro.
elim H2.
intros q evenx.
unfold div in |- *.
exists q.
apply (mult_reg_l_bis n (d * q) 2).
auto with arith.
rewrite H1.
rewrite evenx.
elim (mult_assoc_reverse 2 d q).
rewrite (mult_comm 2 d).
auto with arith.
elim (even_or_odd x).
auto with arith.
intros.
absurd (even (d * x)).
apply odd_even.
apply mult_odd_odd; auto with arith.
cut (d * x = 2 * n); auto with arith.
intro.
apply (even_intro (d * x) n).
auto with arith.
Qed.

(* Specifications: *)
Lemma div_odd_odd : forall n : nat, odd n -> forall d : nat, div d n -> odd d.
intros n oddn d divdn.