「ゲーデル 不完全性発見への道」P66

ゲーデル 不完全性発見への道」P66にて、
「述語論理の公理1,4および2,3は同値であること」を示すのは演習問題になっている。
たとえば、2,3が同値であることを示せ、っていうのはこれでいいはず。
とおもったけど、これだと述語公理2,3を使ってしまっているのでダメそうだ。
これができると任意の2つの公理が等しいことになってしまう。

同値であることを示すので、同値であることを否定した仮定をおくと
矛盾が導けることを示せばよい。

つまり
|- ^((P => Q) and (Q => P))
において、
P -> (forall x F(x) => F(t))  : [述語公理2]
Q -> (F(t) => exists x F(x))  : [述語公理3]
として、矛盾(Eと^E)を導けばよい。

(1) (Q => (P => Q)) : [公理1]
(2) P => Q : [mp{(1),述語公理3}]
(3) (P => (Q => P)) : [公理1]
(4) Q => P : [mp{(3),述語公理2}]
(5) ((P => Q) => ((Q => P) => ((P => Q) and (Q => P)))) : [公理4]
(6) ((P => Q) and (Q => P)) : [mp{(2),(4),(5)}]
(7) ((P => Q) and (Q => P)) => (E => ((P => Q) and (Q => P))) : [公理1]
(8) (E => ((P => Q) and (Q => P))) : [mp{(6),(7)}]
(9) ^((P => Q) and (Q => P)) => (E => ^((P => Q) and (Q => P))) : [公理1]
(10) (E => ^((P => Q) and (Q => P))) : [mp{仮定,(9)}]
(11) ((E => ((P => Q) and (Q => P))) => ((E => ^((P => Q) and (Q => P))) => ^E)): [公理10]
(12) ^E : [mp{(8),(10),(11)}]
(13) ((P => Q) and (Q => P)) => (^E => ((P => Q) and (Q => P))) : [公理1]
(14) (^E => ((P => Q) and (Q => P))) : [mp{(6),(13)}]
(15) ^((P => Q) and (Q => P)) => (^E => ^((P => Q) and (Q => P))) : [公理1]
(16) (^E => ^((P => Q) and (Q => P))) : [mp{仮定,(15)}]
(17) ((^E => ((P => Q) and (Q => P))) => ((^E => ^((P => Q) and (Q => P))) => ^^E)): [公理10]
(18) ^^E : [mp{(14),(16),(17)}]
(19) ^^E => E : [公理11]
(20) E : [mp{(18),(19)}]

(12)において^E、(20)においてEとなっており矛盾。
原因は、仮定

^((P => Q) and (Q => P))

を追加したことにある。
よって、

((P => Q) and (Q => P))

つまり、

((forall x F(x) => F(t)) => (F(t) => exists x F(x))) and ((F(t) => exists x F(x)) => (forall x F(x) => F(t)))

が定理である。

背理法が使える、ということであれば、何でもこれでいけるのではないか。