intros A R H' H'0 x h; elim h; intros y E; clear h.
apply H' with y.
split; [ assumption | idtac ].
apply H'0; assumption.
Qed.

Theorem not_not : forall a : Prop, a -> ~ ~ a.
intros a H'; red in |- *; intro H'0; elim H'0; assumption.