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

Theorem 2eu6 1494
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 1492 . 2 |- ((E!xE.yph /\ E!yE.xph) <-> (E.xE.yph /\ E.zE.wA.xA.y(ph -> (x = z /\ y = w))))
2 19.29r2 1109 . . . 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 1007 . . . . . 6 |- (ph -> A.zph)
4 ax-17 1007 . . . . . 6 |- (ph -> A.wph)
5 hbs1 1371 . . . . . 6 |- ([z / x][w / y]ph -> A.x[z / x][w / y]ph)
6 hbs1 1371 . . . . . . 7 |- ([w / y]ph -> A.y[w / y]ph)
76hbsb 1372 . . . . . 6 |- ([z / x][w / y]ph -> A.y[z / x][w / y]ph)
8 sbequ12 1218 . . . . . . 7 |- (y = w -> (ph <-> [w / y]ph))
9 sbequ12 1218 . . . . . . 7 |- (x = z -> ([w / y]ph <-> [z / x][w / y]ph))
108, 9sylan9bbr 544 . . . . . 6 |- ((x = z /\ y = w) -> (ph <-> [z / x][w / y]ph))
113, 4, 5, 7, 10cbvex2 1355 . . . . 5 |- (E.xE.yph <-> E.zE.w[z / x][w / y]ph)
12 equequ2 1172 . . . . . . . . . 10 |- (z = v -> (x = z <-> x = v))
13 equequ2 1172 . . . . . . . . . 10 |- (w = u -> (y = w <-> y = u))
1412, 13bi2anan9 635 . . . . . . . . 9 |- ((z = v /\ w = u) -> ((x = z /\ y = w) <-> (x = v /\ y = u)))
1514imbi2d 615 . . . . . . . 8 |- ((z = v /\ w = u) -> ((ph -> (x = z /\ y = w)) <-> (ph -> (x = v /\ y = u))))
16152albidv 1318 . . . . . . 7 |- ((z = v /\ w = u) -> (A.xA.y(ph -> (x = z /\ y = w)) <-> A.xA.y(ph -> (x = v /\ y = u))))
1716cbvex2v 1357 . . . . . 6 |- (E.zE.wA.xA.y(ph -> (x = z /\ y = w)) <-> E.vE.uA.xA.y(ph -> (x = v /\ y = u)))
18 ax-17 1007 . . . . . . . 8 |- ((ph -> (x = v /\ y = u)) -> A.z(ph -> (x = v /\ y = u)))
19 ax-17 1007 . . . . . . . 8 |- ((ph -> (x = v /\ y = u)) -> A.w(ph -> (x = v /\ y = u)))
20 ax-17 1007 . . . . . . . . 9 |- ((z = v /\ w = u) -> A.x(z = v /\ w = u))
215, 20hbim 1043 . . . . . . . 8 |- (([z / x][w / y]ph -> (z = v /\ w = u)) -> A.x([z / x][w / y]ph -> (z = v /\ w = u)))
22 ax-17 1007 . . . . . . . . 9 |- ((z = v /\ w = u) -> A.y(z = v /\ w = u))
237, 22hbim 1043 . . . . . . . 8 |- (([z / x][w / y]ph -> (z = v /\ w = u)) -> A.y([z / x][w / y]ph -> (z = v /\ w = u)))
24 equequ1 1171 . . . . . . . . . 10 |- (x = z -> (x = v <-> z = v))
25 equequ1 1171 . . . . . . . . . 10 |- (y = w -> (y = u <-> w = u))
2624, 25bi2anan9 635 . . . . . . . . 9 |- ((x = z /\ y = w) -> ((x = v /\ y = u) <-> (z = v /\ w = u)))
2710, 26imbi12d 629 . . . . . . . 8 |- ((x = z /\ y = w) -> ((ph -> (x = v /\ y = u)) <-> ([z / x][w / y]ph -> (z = v /\ w = u))))
2818, 19, 21, 23, 27cbval2 1354 . . . . . . 7 |- (A.xA.y(ph -> (x = v /\ y = u)) <-> A.zA.w([z / x][w / y]ph -> (z = v /\ w = u)))
29282exbii 1088 . . . . . 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 1487 . . . . . 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, 303bitri 175 . . . . 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 485 . . . 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 1144 . . . . . . 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 437 . . . . . . 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, 34bitri 171 . . . . . 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 1088 . . . . 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 1166 . . . . . . . . . . . . 13 |- (z = x <-> x = z)
38 equcom 1166 . . . . . . . . . . . . 13 |- (w = y <-> y = w)
3937, 38anbi12i 485 . . . . . . . . . . . 12 |- ((z = x /\ w = y) <-> (x = z /\ y = w))
4039imbi2i 183 . . . . . . . . . . 11 |- ((([z / x][w / y]ph /\ ph) -> (z = x /\ w = y)) <-> (([z / x][w / y]ph /\ ph) -> (x = z /\ y = w)))
41 impexp 345 . . . . . . . . . . 11 |- ((([z / x][w / y]ph /\ ph) -> (x = z /\ y = w)) <-> ([z / x][w / y]ph -> (ph -> (x = z /\ y = w))))
4240, 41bitri 171 . . . . . . . . . 10 |- ((([z / x][w / y]ph /\ ph) -> (z = x /\ w = y)) <-> ([z / x][w / y]ph -> (ph -> (x = z /\ y = w))))
43422albii 1036 . . . . . . . . 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 1007 . . . . . . . . . 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 1007 . . . . . . . . . 10 |- ((([z / x][w / y]ph /\ ph) -> (z = x /\ w = y)) -> A.u(([z / x][w / y]ph /\ ph) -> (z = x /\ w = y)))
465hbsb 1372 . . . . . . . . . . . . 13 |- ([u / w][z / x][w / y]ph -> A.x[u / w][z / x][w / y]ph)
4746hbsb 1372 . . . . . . . . . . . 12 |- ([v / z][u / w][z / x][w / y]ph -> A.x[v / z][u / w][z / x][w / y]ph)
485, 47hban 1045 . . . . . . . . . . 11 |- (([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph) -> A.x([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph))
4948, 20hbim 1043 . . . . . . . . . 10 |- ((([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph) -> (z = v /\ w = u)) -> A.x(([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph) -> (z = v /\ w = u)))
507hbsb 1372 . . . . . . . . . . . . 13 |- ([u / w][z / x][w / y]ph -> A.y[u / w][z / x][w / y]ph)
5150hbsb 1372 . . . . . . . . . . . 12 |- ([v / z][u / w][z / x][w / y]ph -> A.y[v / z][u / w][z / x][w / y]ph)
527, 51hban 1045 . . . . . . . . . . 11 |- (([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph) -> A.y([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph))
5352, 22hbim 1043 . . . . . . . . . 10 |- ((([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph) -> (z = v /\ w = u)) -> A.y(([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph) -> (z = v /\ w = u)))
54 sbequ12 1218 . . . . . . . . . . . . . 14 |- (y = u -> (ph <-> [u / y]ph))
55 sbequ12 1218 . . . . . . . . . . . . . 14 |- (x = v -> ([u / y]ph <-> [v / x][u / y]ph))
5654, 55sylan9bbr 544 . . . . . . . . . . . . 13 |- ((x = v /\ y = u) -> (ph <-> [v / x][u / y]ph))
57 ax-17 1007 . . . . . . . . . . . . . . 15 |- ([u / w][w / y]ph -> A.z[u / w][w / y]ph)
5857sbco2 1293 . . . . . . . . . . . . . 14 |- ([v / z][z / x][u / w][w / y]ph <-> [v / x][u / w][w / y]ph)
59 sbcom2 1373 . . . . . . . . . . . . . . 15 |- ([z / x][u / w][w / y]ph <-> [u / w][z / x][w / y]ph)
6059sbbii 1211 . . . . . . . . . . . . . 14 |- ([v / z][z / x][u / w][w / y]ph <-> [v / z][u / w][z / x][w / y]ph)
614sbco2 1293 . . . . . . . . . . . . . . 15 |- ([u / w][w / y]ph <-> [u / y]ph)
6261sbbii 1211 . . . . . . . . . . . . . 14 |- ([v / x][u / w][w / y]ph <-> [v / x][u / y]ph)
6358, 60, 623bitr3ri 180 . . . . . . . . . . . . 13 |- ([v / x][u / y]ph <-> [v / z][u / w][z / x][w / y]ph)
6456, 63syl6bb 539 . . . . . . . . . . . 12 |- ((x = v /\ y = u) -> (ph <-> [v / z][u / w][z / x][w / y]ph))
6564anbi2d 619 . . . . . . . . . . 11 |- ((x = v /\ y = u) -> (([z / x][w / y]ph /\ ph) <-> ([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph)))
66 equequ2 1172 . . . . . . . . . . . 12 |- (x = v -> (z = x <-> z = v))
67 equequ2 1172 . . . . . . . . . . . 12 |- (y = u -> (w = y <-> w = u))
6866, 67bi2anan9 635 . . . . . . . . . . 11 |- ((x = v /\ y = u) -> ((z = x /\ w = y) <-> (z = v /\ w = u)))
6965, 68imbi12d 629 . . . . . . . . . 10 |- ((x = v /\ y = u) -> ((([z / x][w / y]ph /\ ph) -> (z = x /\ w = y)) <-> (([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph) -> (z = v /\ w = u))))
7044, 45, 49, 53, 69cbval2 1354 . . . . . . . . 9 |- (A.xA.y(([z / x][w / y]ph /\ ph) -> (z = x /\ w = y)) <-> A.vA.u(([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph) -> (z = v /\ w = u)))
715, 719.21-2 1093 . . . . . . . . 9 |- (A.xA.y([z / x][w / y]ph -> (ph -> (x = z /\ y = w))) <-> ([z / x][w / y]ph -> A.xA.y(ph -> (x = z /\ y = w))))
7243, 70, 713bitr3i 179 . . . . . . . 8 |- (A.vA.u(([z / x][w / y]ph /\ [v / z][u / w][z / x][w / y]ph) -> (z = v /\ w = u)) <-> ([z / x][w / y]ph -> A.xA.y(ph -> (x = z /\ y = w))))
7372anbi2i 483 . . . . . . 7 |- (([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))) <-> ([z / x][w / y]ph /\ ([z / x][w / y]ph -> A.xA.y(ph -> (x = z /\ y = w)))))
74 abai 482 . . . . . . 7 |- (([z / x][w / y]ph /\ A.xA.y(ph -> (x = z /\ y = w))) <-> ([z / x][w / y]ph /\ ([z / x][w / y]ph -> A.xA.y(ph -> (x = z /\ y = w)))))
75 2sb6 1375 . . . . . . . 8 |- ([z / x][w / y]ph <-> A.xA.y((x = z /\ y = w) -> ph))
7675anbi1i 484 . . . . . . 7 |- (([z / x][w / y]ph /\ A.xA.y(ph -> (x = z /\ y = w))) <-> (A.xA.y((x = z /\ y = w) -> ph) /\ A.xA.y(ph -> (x = z /\ y = w))))
7773, 74, 763bitr2i 177 . . . . . 6 |- (([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))) <-> (A.xA.y((x = z /\ y = w) -> ph) /\ A.xA.y(ph -> (x = z /\ y = w))))
78772exbii 1088 . . . . 5 |- (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))) <-> E.zE.w(A.xA.y((x = z /\ y = w) -> ph) /\ A.xA.y(ph -> (x = z /\ y = w))))
7936, 78bitr4i 174 . . . 4 |- (E.zE.wA.xA.y(ph <-> (x = z /\ y = w)) <-> 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))))
802, 32, 793imtr4i 217 . . 3 |- ((E.xE.yph /\ E.zE.wA.xA.y(ph -> (x = z /\ y = w))) -> E.zE.wA.xA.y(ph <-> (x = z /\ y = w)))
81 bi2 147 . . . . . . 7 |- ((ph <-> (x = z /\ y = w)) -> ((x = z /\ y = w) -> ph))
828119.20i2 1029 . . . . . 6 |- (A.xA.y(ph <-> (x = z /\ y = w)) -> A.xA.y((x = z /\ y = w) -> ph))
838219.22i2 1077 . . . . 5 |- (E.zE.wA.xA.y(ph <-> (x = z /\ y = w)) -> E.zE.wA.xA.y((x = z /\ y = w) -> ph))
84 2exsb 1390 . . . . 5 |- (E.xE.yph <-> E.zE.wA.xA.y((x = z /\ y = w) -> ph))
8583, 84sylibr 198 . . . 4 |- (E.zE.wA.xA.y(ph <-> (x = z /\ y = w)) -> E.xE.yph)
86 bi1 146 . . . . . 6 |- ((ph <-> (x = z /\ y = w)) -> (ph -> (x = z /\ y = w)))
878619.20i2 1029 . . . . 5 |- (A.xA.y(ph <-> (x = z /\ y = w)) -> A.xA.y(ph -> (x = z /\ y = w)))
888719.22i2 1077 . . . 4 |- (E.zE.wA.xA.y(ph <-> (x = z /\ y = w)) -> E.zE.wA.xA.y(ph -> (x = z /\ y = w)))
8985, 88jca 286 . . 3 |- (E.zE.wA.xA.y(ph <-> (x = z /\ y = w)) -> (E.xE.yph /\ E.zE.wA.xA.y(ph -> (x = z /\ y = w))))
9080, 89impbii 155 . 2 |- ((E.xE.yph /\ E.zE.wA.xA.y(ph -> (x = z /\ y = w))) <-> E.zE.wA.xA.y(ph <-> (x = z /\ y = w)))
911, 90bitri 171 1 |- ((E!xE.yph /\ E!yE.xph) <-> E.zE.wA.xA.y(ph <-> (x = z /\ y = w)))
Colors of variables: wff set class
Syntax hints:   -> wi 3   <-> wb 144   /\ wa 221  A.wal 990   = wceq 992  E.wex 1016  E!weu 1419
This theorem was proved from axioms:  ax-1 4  ax-2 5  ax-3 6  ax-mp 7  ax-7 998  ax-gen 999  ax-8 1000  ax-9 1001  ax-10 1002  ax-11 1003  ax-12 1004  ax-17 1007  ax-4 1009  ax-5o 1011  ax-6o 1014  ax-9o 1159  ax-10o 1177  ax-16 1247  ax-11o 1255
This theorem depends on definitions:  df-bi 145  df-or 222  df-an 223  df-ex 1017  df-sb 1209  df-eu 1421
Copyright terms: Public domain