proof k : A => B => A = begin [A; [B; A]; B => A]; A => B => A; end; proof andcomm : (A & B) => B & A = begin [A & B; A; B; B & A]; (A & B) => B & A; end; proof curry : ((A & B) => C) => A => B => C = begin [A & B => C; [A; [B; A & B; C]; B => C]; A => B => C]; ((A & B) => C) => A => B => C; end; proof distribandor1 : ((A & B) | C) => (A | C) & (B | C) = begin [A & B | C; [A & B; A; B; A | C; B | C; (A | C) & (B | C)]; [C; A | C; B | C; (A | C) & (B | C)]; (A | C) & (B | C)]; ((A & B) | C) => (A | C) & (B | C); end; proof clue : (G => (C & B) | (R & H)) => (~B => S) => (R | H) => ~(G & S) => ~(R & C) => ~(B & H) => (~G) = begin [(G => (C & B) | (R & H)); [(~B => S); [R | H; [~(G & S); [~(R & C); [~(B & H); [G; (C & B) | (R & H); [(C & B); C; B; [R; R & C; F]; [H; B & H; F]; F]; [(R & H); H; [B; B & H; F]; ~B; S; (G & S); F]; F]; ~G]; ~(B & H) => (~G)]; ~(R & C) => ~(B & H) => (~G)]; ~(G & S) => ~(R & C) => ~(B & H) => (~G)]; (R | H) => ~(G & S) => ~(R & C) => ~(B & H) => (~G)]; (~B => S) => (R | H) => ~(G & S) => ~(R & C) => ~(B & H) => (~G)]; (G => (C & B) | (R & H)) => (~B => S) => (R | H) => ~(G & S) => ~(R & C) => ~(B & H) => ~G; end;