THE GENERAL DUAL D(atom) => atom D(A /\ B) => D(A) \/ D(B) D(A \/ B) => D(A) /\ D(B) D(A == B) => D(A) XOR D(B) D(A XOR B) => D(A) == D(B) D(A -> B) => -(D(B) -> D(A)) D(forallx(A)) => thereexistsx(D(A)) D(thereexistsx(A) => forallx(D(A)) D(-A) => -(D(A)) D(TRUE) = FALSE D(FALSE) = TRUE IF A = B THEN D(A) = D(B) other notes: -(A==B) == A XOR B