generalize (classic a); intro h; elim h;
[ intro H'0; clear h; try exact H'0 | clear h; intro H'0 ].
elim H'; assumption.
Qed.

(* Specifications: *)
Theorem not_quite_classic : forall a : Prop, ~ ~ (a \/ ~ a).
unfold not in |- *; auto.
Theorem not_quite_classic : forall a : Prop, ~ ~ (a \/ ~ a).
intro a; red in |- *; intro H'; elim H'; right; red in |- *; intro H'0.