proof K : A => B => A proof S : (A => B => C) => (A => B) => A => C proof orComm : A | B => B | A proof distribOrImp : (A | B => C) => (A => C) & (B => C) proof clue : (P => (C & K) | (D & L)) => (~K => S) => (D | L) => (P => ~S) & (S => ~P) => (C => ~D) & (D => ~C) => (K => ~L) & (L => ~K) => ~P