pub fn from_de_morgan<A: DProp, B: DProp>( f: Not<Or<A, B>>) -> And<Not<A>, Not<B>>
¬(a ∨ b) => (¬a ∧ ¬b).
¬(a ∨ b) => (¬a ∧ ¬b)