pub fn double_neg<A: DProp, B: Prop>( f: Imply<A, B>) -> Imply<Not<Not<A>>, Not<Not<B>>>
(a => b) => ¬¬a => ¬¬b.
(a => b) => ¬¬a => ¬¬b