Refute.refute_goal: canonical goal addresses from 1 (renamed from refute_subgoal to clarify change in semantics);
command 'refute': Proof.flat_goal provides standard view on internally structured Isar goal, suitable for (semi)automated tools;
Gate = FOL +
consts nand,xor :: "[o,o] => o"
rules nand_def "nand(P,Q) == ~(P & Q)"
xor_def "xor(P,Q) == P & ~Q | ~P & Q"
end