HomeHome Metamath Proof Explorer < Previous   Next >
Related theorems
Unicode version

Theorem 2eu6 1454
Description: Two equivalent expressions for double existential uniqueness.
Assertion
Ref Expression
2eu6 |- ((E!xE.yph /\ E!yE.xph) <-> E.zE.wA.xA.y(ph <-> (x = z /\ y = w)))
Distinct variable groups:   x,y,z,w   ph,z,w

Proof of Theorem 2eu6
StepHypRef Expression
1 2eu4 1452 . 2 |- ((E!xE.yph /\ E!yE.xph) <-> (E.xE.yph /\ E.zE.wA.xA.y(ph -> (x = z /\ y = w))))
2 19.29r2 1073 . . . 4 |- ((E.zE.w[z / x][w / y]ph /\ A.zA.wA.vA.u(([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph) -> (z = v /\ w = u))) -> E.zE.w([z / x][w / y]ph /\ A.vA.u(([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph) -> (z = v /\ w = u))))
3 ax-17 971 . . . . . 6 |- (ph -> A.zph)
4 ax-17 971 . . . . . 6 |- (ph -> A.wph)
5 hbs1 1332 . . . . . 6 |- ([z / x][w / y]ph -> A.x[z / x][w / y]ph)
6 hbs1 1332 . . . . . . 7 |- ([w / y]ph -> A.y[w / y]ph)
76hbsb 1333 . . . . . 6 |- ([z / x][w / y]ph -> A.y[z / x][w / y]ph)
8 sbequ12 1181 . . . . . . 7 |- (y = w -> (ph <-> [w / y]ph))
9 sbequ12 1181 . . . . . . 7 |- (x = z -> ([w / y]ph <-> [z / x][w / y]ph))
108, 9sylan9bbr 541 . . . . . 6 |- ((x = z /\ y = w) -> (ph <-> [z / x][w / y]ph))
113, 4, 5, 7, 10cbvex2 1317 . . . . 5 |- (E.xE.yph <-> E.zE.w[z / x][w / y]ph)
12 equequ2 1135 . . . . . . . . . 10 |- (z = v -> (x = z <-> x = v))
13 equequ2 1135 . . . . . . . . . 10 |- (w = u -> (y = w <-> y = u))
1412, 13bi2anan9 632 . . . . . . . . 9 |- ((z = v /\ w = u) -> ((x = z /\ y = w) <-> (x = v /\ y = u)))
1514imbi2d 612 . . . . . . . 8 |- ((z = v /\ w = u) -> ((ph -> (x = z /\ y = w)) <-> (ph -> (x = v /\ y = u))))
16152albidv 1280 . . . . . . 7 |- ((z = v /\ w = u) -> (A.xA.y(ph -> (x = z /\ y = w)) <-> A.xA.y(ph -> (x = v /\ y = u))))
1716cbvex2v 1319 . . . . . 6 |- (E.zE.wA.xA.y(ph -> (x = z /\ y = w)) <-> E.vE.uA.xA.y(ph -> (x = v /\ y = u)))
18 ax-17 971 . . . . . . . 8 |- ((ph -> (x = v /\ y = u)) -> A.z(ph -> (x = v /\ y = u)))
19 ax-17 971 . . . . . . . 8 |- ((ph -> (x = v /\ y = u)) -> A.w(ph -> (x = v /\ y = u)))
20 ax-17 971 . . . . . . . . 9 |- ((z = v /\ w = u) -> A.x(z = v /\ w = u))
215, 20hbim 1007 . . . . . . . 8 |- (([z / x][w / y]ph -> (z = v /\ w = u)) -> A.x([z / x][w / y]ph -> (z = v /\ w = u)))
22 ax-17 971 . . . . . . . . 9 |- ((z = v /\ w = u) -> A.y(z = v /\ w = u))
237, 22hbim 1007 . . . . . . . 8 |- (([z / x][w / y]ph -> (z = v /\ w = u)) -> A.y([z / x][w / y]ph -> (z = v /\ w = u)))
24 equequ1 1134 . . . . . . . . . 10 |- (x = z -> (x = v <-> z = v))
25 equequ1 1134 . . . . . . . . . 10 |- (y = w -> (y = u <-> w = u))
2624, 25bi2anan9 632 . . . . . . . . 9 |- ((x = z /\ y = w) -> ((x = v /\ y = u) <-> (z = v /\ w = u)))
2710, 26imbi12d 626 . . . . . . . 8 |- ((x = z /\ y = w) -> ((ph -> (x = v /\ y = u)) <-> ([z / x][w / y]ph -> (z = v /\ w = u))))
2818, 19, 21, 23, 27cbval2 1316 . . . . . . 7 |- (A.xA.y(ph -> (x = v /\ y = u)) <-> A.zA.w([z / x][w / y]ph -> (z = v /\ w = u)))
29282exbii 1052 . . . . . 6 |- (E.vE.uA.xA.y(ph -> (x = v /\ y = u)) <-> E.vE.uA.zA.w([z / x][w / y]ph -> (z = v /\ w = u)))
30 2mo 1447 . . . . . 6 |- (E.vE.uA.zA.w([z / x][w / y]ph -> (z = v /\ w = u)) <-> A.zA.wA.vA.u(([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph) -> (z = v /\ w = u)))
3117, 29, 303bitr 177 . . . . 5 |- (E.zE.wA.xA.y(ph -> (x = z /\ y = w)) <-> A.zA.wA.vA.u(([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph) -> (z = v /\ w = u)))
3211, 31anbi12i 482 . . . 4 |- ((E.xE.yph /\ E.zE.wA.xA.y(ph -> (x = z /\ y = w))) <-> (E.zE.w[z / x][w / y]ph /\ A.zA.wA.vA.u(([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph) -> (z = v /\ w = u))))
33 2albi 1108 . . . . . . 7 |- (A.xA.y(ph <-> (x = z /\ y = w)) <-> (A.xA.y(ph -> (x = z /\ y = w)) /\ A.xA.y((x = z /\ y = w) -> ph)))
34 ancom 435 . . . . . . 7 |- ((A.xA.y(ph -> (x = z /\ y = w)) /\ A.xA.y((x = z /\ y = w) -> ph)) <-> (A.xA.y((x = z /\ y = w) -> ph) /\ A.xA.y(ph -> (x = z /\ y = w))))
3533, 34bitr 173 . . . . . 6 |- (A.xA.y(ph <-> (x = z /\ y = w)) <-> (A.xA.y((x = z /\ y = w) -> ph) /\ A.xA.y(ph -> (x = z /\ y = w))))
36352exbii 1052 . . . . 5 |- (E.zE.wA.xA.y(ph <-> (x = z /\ y = w)) <-> E.zE.w(A.xA.y((x = z /\ y = w) -> ph) /\ A.xA.y(ph -> (x = z /\ y = w))))
37 equcom 1129 . . . . . . . . . . . . 13 |- (z = x <-> x = z)
38 equcom 1129 . . . . . . . . . . . . 13 |- (w = y <-> y = w)
3937, 38anbi12i 482 . . . . . . . . . . . 12 |- ((z = x /\ w = y) <-> (x = z /\ y = w))
4039imbi2i 185 . . . . . . . . . . 11 |- ((([z / x][w / y]ph /\ ph) -> (z = x /\ w = y)) <-> (([z / x][w / y]ph /\ ph) -> (x = z /\ y = w)))
41 impexp 347 . . . . . . . . . . 11 |- ((([z / x][w / y]ph /\ ph) -> (x = z /\ y = w)) <-> ([z / x][w / y]ph -> (ph -> (x = z /\ y = w))))
4240, 41bitr 173 . . . . . . . . . 10 |- ((([z / x][w / y]ph /\ ph) -> (z = x /\ w = y)) <-> ([z / x][w / y]ph -> (ph -> (x = z /\ y = w))))
43422albii 1000 . . . . . . . . 9 |- (A.xA.y(([z / x][w / y]ph /\ ph) -> (z = x /\ w = y)) <-> A.xA.y([z / x][w / y]ph -> (ph -> (x = z /\ y = w))))
44 ax-17 971 . . . . . . . . . 10 |- ((([z / x][w / y]ph /\ ph) -> (z = x /\ w = y)) -> A.v(([z / x][w / y]ph /\ ph) -> (z = x /\ w = y)))
45 ax-17 971 . . . . . . . . . 10 |- ((([z / x][w / y]ph /\ ph) -> (z = x /\ w = y)) -> A.u(([z / x][w / y]ph /\ ph) -> (z = x /\ w = y)))
465hbsb 1333 . . . . . . . . . . . . 13 |- ([u / w][z / x][w / y]ph -> A.x[u / w][z / x][w / y]ph)
4746hbsb 1333 . . . . . . . . . . . 12 |- ([v /