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

Theorem 2mo 1851
Description: Two equivalent expressions for double "at most one."
Assertion
Ref Expression
2mo |- (E.zE.wA.xA.y(ph -> (x = z /\ y = w)) <-> A.xA.yA.zA.w((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)))
Distinct variable groups:   x,y,z,w   ph,z,w

Proof of Theorem 2mo
StepHypRef Expression
1 equequ2 1495 . . . . . . 7 |- (v = z -> (x = v <-> x = z))
2 equequ2 1495 . . . . . . 7 |- (u = w -> (y = u <-> y = w))
31, 2bi2anan9 694 . . . . . 6 |- ((v = z /\ u = w) -> ((x = v /\ y = u) <-> (x = z /\ y = w)))
43imbi2d 674 . . . . 5 |- ((v = z /\ u = w) -> ((ph -> (x = v /\ y = u)) <-> (ph -> (x = z /\ y = w))))
542albidv 1658 . . . 4 |- ((v = z /\ u = w) -> (A.xA.y(ph -> (x = v /\ y = u)) <-> A.xA.y(ph -> (x = z /\ y = w))))
65cbvex2v 1701 . . 3 |- (E.vE.uA.xA.y(ph -> (x = v /\ y = u)) <-> E.zE.wA.xA.y(ph -> (x = z /\ y = w)))
7 ax-17 1317 . . . . . . . . 9 |- ((ph -> (x = v /\ y = u)) -> A.z(ph -> (x = v /\ y = u)))
8 ax-17 1317 . . . . . . . . 9 |- ((ph -> (x = v /\ y = u)) -> A.w(ph -> (x = v /\ y = u)))
9 hbs1 1722 . . . . . . . . . 10 |- ([z / x][w / y]ph -> A.x[z / x][w / y]ph)
10 ax-17 1317 . . . . . . . . . 10 |- ((z = v /\ w = u) -> A.x(z = v /\ w = u))
119, 10hbim 1354 . . . . . . . . 9 |- (([z / x][w / y]ph -> (z = v /\ w = u)) -> A.x([z / x][w / y]ph -> (z = v /\ w = u)))
12 hbs1 1722 . . . . . . . . . . 11 |- ([w / y]ph -> A.y[w / y]ph)
1312hbsb 1723 . . . . . . . . . 10 |- ([z / x][w / y]ph -> A.y[z / x][w / y]ph)
14 ax-17 1317 . . . . . . . . . 10 |- ((z = v /\ w = u) -> A.y(z = v /\ w = u))
1513, 14hbim 1354 . . . . . . . . 9 |- (([z / x][w / y]ph -> (z = v /\ w = u)) -> A.y([z / x][w / y]ph -> (z = v /\ w = u)))
16 sbequ12 1545 . . . . . . . . . . 11 |- (y = w -> (ph <-> [w / y]ph))
17 sbequ12 1545 . . . . . . . . . . 11 |- (x = z -> ([w / y]ph <-> [z / x][w / y]ph))
1816, 17sylan9bbr 600 . . . . . . . . . 10 |- ((x = z /\ y = w) -> (ph <-> [z / x][w / y]ph))
19 equequ1 1494 . . . . . . . . . . 11 |- (x = z -> (x = v <-> z = v))
20 equequ1 1494 . . . . . . . . . . 11 |- (y = w -> (y = u <-> w = u))
2119, 20bi2anan9 694 . . . . . . . . . 10 |- ((x = z /\ y = w) -> ((x = v /\ y = u) <-> (z = v /\ w = u)))
2218, 21imbi12d 688 . . . . . . . . 9 |- ((x = z /\ y = w) -> ((ph -> (x = v /\ y = u)) <-> ([z / x][w / y]ph -> (z = v /\ w = u))))
237, 8, 11, 15, 22cbval2 1698 . . . . . . . 8 |- (A.xA.y(ph -> (x = v /\ y = u)) <-> A.zA.w([z / x][w / y]ph -> (z = v /\ w = u)))
2423biimpi 168 . . . . . . 7 |- (A.xA.y(ph -> (x = v /\ y = u)) -> A.zA.w([z / x][w / y]ph -> (z = v /\ w = u)))
2524ancli 320 . . . . . 6 |- (A.xA.y(ph -> (x = v /\ y = u)) -> (A.xA.y(ph -> (x = v /\ y = u)) /\ A.zA.w([z / x][w / y]ph -> (z = v /\ w = u))))
26 alcom 1379 . . . . . . . . 9 |- (A.yA.zA.w((ph -> (x = v /\ y = u)) /\ ([z / x][w / y]ph -> (z = v /\ w = u))) <-> A.zA.yA.w((ph -> (x = v /\ y = u)) /\ ([z / x][w / y]ph -> (z = v /\ w = u))))
278, 15aaan 1477 . . . . . . . . . 10 |- (A.yA.w((ph -> (x = v /\ y = u)) /\ ([z / x][w / y]ph -> (z = v /\ w = u))) <-> (A.y(ph -> (x = v /\ y = u)) /\ A.w([z / x][w / y]ph -> (z = v /\ w = u))))
2827albii 1346 . . . . . . . . 9 |- (A.zA.yA.w((ph -> (x = v /\ y = u)) /\ ([z / x][w / y]ph -> (z = v /\ w = u))) <-> A.z(A.y(ph -> (x = v /\ y = u)) /\ A.w([z / x][w / y]ph -> (z = v /\ w = u))))
2926, 28bitri 190 . . . . . . . 8 |- (A.yA.zA.w((ph -> (x = v /\ y = u)) /\ ([z / x][w / y]ph -> (z = v /\ w = u))) <-> A.z(A.y(ph -> (x = v /\ y = u)) /\ A.w([z / x][w / y]ph -> (z = v /\ w = u))))
3029albii 1346 . . . . . . 7 |- (A.xA.yA.zA.w((ph -> (x = v /\ y = u)) /\ ([z / x][w / y]ph -> (z = v /\ w = u))) <-> A.xA.z(A.y(ph -> (x = v /\ y = u)) /\ A.w([z / x][w / y]ph -> (z = v /\ w = u))))
31 ax-17 1317 . . . . . . . 8 |- (A.y(ph -> (x = v /\ y = u)) -> A.zA.y(ph -> (x = v /\ y = u)))
3211hbal 1352 . . . . . . . 8 |- (A.w([z / x][w / y]ph -> (z = v /\ w = u)) -> A.xA.w([z / x][w / y]ph -> (z = v /\ w = u)))
3331, 32aaan 1477 . . . . . . 7 |- (A.xA.z(A.y(ph -> (x = v /\ y = u)) /\ A.w([z / x][w / y]ph -> (z = v /\ w = u))) <-> (A.xA.y(ph -> (x = v /\ y = u)) /\ A.zA.w([z / x][w / y]ph -> (z = v /\ w = u))))
3430, 33bitri 190 . . . . . 6 |- (A.xA.yA.zA.w((ph -> (x = v /\ y = u)) /\ ([z / x][w / y]ph -> (z = v /\ w = u))) <-> (A.xA.y(ph -> (x = v /\ y = u)) /\ A.zA.w([z / x][w / y]ph -> (z = v /\ w = u))))
3525, 34sylibr 217 . . . . 5 |- (A.xA.y(ph -> (x = v /\ y = u)) -> A.xA.yA.zA.w((ph -> (x = v /\ y = u)) /\ ([z / x][w / y]ph -> (z = v /\ w = u))))
36 prth 615 . . . . . . . 8 |- (((ph -> (x = v /\ y = u)) /\ ([z / x][w / y]ph -> (z = v /\ w = u))) -> ((ph /\ [z / x][w / y]ph) -> ((x = v /\ y = u) /\ (z = v /\ w = u))))
37 equtr2 1492 . . . . . . . . . 10 |- ((x = v /\ z = v) -> x = z)
38 equtr2 1492 . . . . . . . . . 10 |- ((y = u /\ w = u) -> y = w)
3937, 38anim12i 360 . . . . . . . . 9 |- (((x = v /\ z = v) /\ (y = u /\ w = u)) -> (x = z /\ y = w))
4039an4s 566 . . . . . . . 8 |- (((x = v /\ y = u) /\ (z = v /\ w = u)) -> (x = z /\ y = w))
4136, 40syl6 25 . . . . . . 7 |- (((ph -> (x = v /\ y = u)) /\ ([z / x][w / y]ph -> (z = v /\ w = u))) -> ((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)))
42412alimi 1339 . . . . . 6 |- (A.zA.w((ph -> (x = v /\ y = u)) /\ ([z / x][w / y]ph -> (z = v /\ w = u))) -> A.zA.w((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)))
43422alimi 1339 . . . . 5 |- (A.xA.yA.zA.w((ph -> (x = v /\ y = u)) /\ ([z / x][w / y]ph -> (z = v /\ w = u))) -> A.xA.yA.zA.w((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)))
4435, 43syl 12 . . . 4 |- (A.xA.y(ph -> (x = v /\ y = u)) -> A.xA.yA.zA.w((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)))
454419.23aivv 1675 . . 3 |- (E.vE.uA.xA.y(ph -> (x = v /\ y = u)) -> A.xA.yA.zA.w((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)))
466, 45sylbir 218 . 2 |- (E.zE.wA.xA.y(ph -> (x = z /\ y = w)) -> A.xA.yA.zA.w((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)))
47 alrot4 1451 . . . . . . 7 |- (A.xA.yA.zA.w([z / x][w / y]ph -> (ph -> (x = z /\ y = w))) <-> A.zA.wA.xA.y([z / x][w / y]ph -> (ph -> (x = z /\ y = w))))
48 alim 1340 . . . . . . . . 9 |- (A.y([z / x][w / y]ph -> (ph -> (x = z /\ y = w))) -> (A.y[z / x][w / y]ph -> A.y(ph -> (x = z /\ y = w))))
4948al2imi 1341 . . . . . . . 8 |- (A.xA.y([z / x][w / y]ph -> (ph -> (x = z /\ y = w))) -> (A.xA.y[z / x][w / y]ph -> A.xA.y(ph -> (x = z /\ y = w))))
50492alimi 1339 . . . . . . 7 |- (A.zA.wA.xA.y([z / x][w / y]ph -> (ph -> (x = z /\ y = w))) -> A.zA.w(A.xA.y[z / x][w / y]ph -> A.xA.y(ph -> (x = z /\ y = w))))
5147, 50sylbi 216 . . . . . 6 |- (A.xA.yA.zA.w([z / x][w / y]ph -> (ph -> (x = z /\ y = w))) -> A.zA.w(A.xA.y[z / x][w / y]ph -> A.xA.y(ph -> (x = z /\ y = w))))
52 exim 1386 . . . . . . 7 |- (A.w(A.xA.y[z / x][w / y]ph -> A.xA.y(ph -> (x = z /\ y = w))) -> (E.wA.xA.y[z / x][w / y]ph -> E.wA.xA.y(ph -> (x = z /\ y = w))))
5352alimi 1338 . . . . . 6 |- (A.zA.w(A.xA.y[z / x][w / y]ph -> A.xA.y(ph -> (x = z /\ y = w))) -> A.z(E.wA.xA.y[z / x][w / y]ph -> E.wA.xA.y(ph -> (x = z /\ y = w))))
54 exim 1386 . . . . . 6 |- (A.z(E.wA.xA.y[z / x][w / y]ph -> E.wA.xA.y(ph -> (x = z /\ y = w))) -> (E.zE.wA.xA.y[z / x][w / y]ph -> E.zE.wA.xA.y(ph -> (x = z /\ y = w))))
5551, 53, 543syl 24 . . . . 5 |- (A.xA.yA.zA.w([z / x][w / y]ph -> (ph -> (x = z /\ y = w))) -> (E.zE.wA.xA.y[z / x][w / y]ph -> E.zE.wA.xA.y(ph -> (x = z /\ y = w))))
569, 1319.21ai 1345 . . . . . 6 |- ([z / x][w / y]ph -> A.xA.y[z / x][w / y]ph)
57562eximi 1388 . . . . 5 |- (E.zE.w[z / x][w / y]ph -> E.zE.wA.xA.y[z / x][w / y]ph)
5855, 57syl5com 63 . . . 4 |- (E.zE.w[z / x][w / y]ph -> (A.xA.yA.zA.w([z / x][w / y]ph -> (ph -> (x = z /\ y = w))) -> E.zE.wA.xA.y(ph -> (x = z /\ y = w))))
59 impexp 374 . . . . . . 7 |- (((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)) <-> (ph -> ([z / x][w / y]ph -> (x = z /\ y = w))))
60 bi2.04 177 . . . . . . 7 |- ((ph -> ([z / x][w / y]ph -> (x = z /\ y = w))) <-> ([z / x][w / y]ph -> (ph -> (x = z /\ y = w))))
6159, 60bitri 190 . . . . . 6 |- (((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)) <-> ([z / x][w / y]ph -> (ph -> (x = z /\ y = w))))
62612albii 1347 . . . . 5 |- (A.zA.w((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)) <-> A.zA.w([z / x][w / y]ph -> (ph -> (x = z /\ y = w))))
63622albii 1347 . . . 4 |- (A.xA.yA.zA.w((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)) <-> A.xA.yA.zA.w([z / x][w / y]ph -> (ph -> (x = z /\ y = w))))
6458, 63syl5ib 223 . . 3 |- (E.zE.w[z / x][w / y]ph -> (A.xA.yA.zA.w((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)) -> E.zE.wA.xA.y(ph -> (x = z /\ y = w))))
65 alnex 1380 . . . . . . 7 |- (A.w -. [z / x][w / y]ph <-> -. E.w[z / x][w / y]ph)
6665albii 1346 . . . . . 6 |- (A.zA.w -. [z / x][w / y]ph <-> A.z -. E.w[z / x][w / y]ph)
67 alnex 1380 . . . . . 6 |- (A.z -. E.w[z / x][w / y]ph <-> -. E.zE.w[z / x][w / y]ph)
6866, 67bitri 190 . . . . 5 |- (A.zA.w -. [z / x][w / y]ph <-> -. E.zE.w[z / x][w / y]ph)
69 ax-17 1317 . . . . . . . 8 |- (-. ph -> A.z -. ph)
70 ax-17 1317 . . . . . . . 8 |- (-. ph -> A.w -. ph)
719hbn 1351 . . . . . . . 8 |- (-. [z / x][w / y]ph -> A.x -. [z / x][w / y]ph)
7213hbn 1351 . . . . . . . 8 |- (-. [z / x][w / y]ph -> A.y -. [z / x][w / y]ph)
7318notbid 673 . . . . . . . 8 |- ((x = z /\ y = w) -> (-. ph <-> -. [z / x][w / y]ph))
7469, 70, 71, 72, 73cbval2 1698 . . . . . . 7 |- (A.xA.y -. ph <-> A.zA.w -. [z / x][w / y]ph)
7574biimpri 169 . . . . . 6 |- (A.zA.w -. [z / x][w / y]ph -> A.xA.y -. ph)
76 pm2.21 92 . . . . . . 7 |- (-. ph -> (ph -> (x = z /\ y = w)))
77762alimi 1339 . . . . . 6 |- (A.xA.y -. ph -> A.xA.y(ph -> (x = z /\ y = w)))
78 19.8a 1376 . . . . . . 7 |- (E.wA.xA.y(ph -> (x = z /\ y = w)) -> E.zE.wA.xA.y(ph -> (x = z /\ y = w)))
797819.23bi 1414 . . . . . 6 |- (A.xA.y(ph -> (x = z /\ y = w)) -> E.zE.wA.xA.y(ph -> (x = z /\ y = w)))
8075, 77, 793syl 24 . . . . 5 |- (A.zA.w -. [z / x][w / y]ph -> E.zE.wA.xA.y(ph -> (x = z /\ y = w)))
8168, 80sylbir 218 . . . 4 |- (-. E.zE.w[z / x][w / y]ph -> E.zE.wA.xA.y(ph -> (x = z /\ y = w)))
8281a1d 15 . . 3 |- (-. E.zE.w[z / x][w / y]ph -> (A.xA.yA.zA.w((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)) -> E.zE.wA.xA.y(ph -> (x = z /\ y = w))))
8364, 82pm2.61i 140 . 2 |- (A.xA.yA.zA.w((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)) -> E.zE.wA.xA.y(ph -> (x = z /\ y = w)))
8446, 83impbii 174 1 |- (E.zE.wA.xA.y(ph -> (x = z /\ y = w)) <-> A.xA.yA.zA.w((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)))
Colors of variables: wff set class
Syntax hints:  -. wn 2   -> wi 3   <-> wb 163   /\ wa 240  A.wal 1296   = wceq 1298  E.wex 1326  [wsbc 1534
This theorem is referenced by:  2mos 1852  2eu6 1858
This theorem was proved from axioms:  ax-1 4  ax-2 5  ax-3 6  ax-mp 7  ax-7 1304  ax-gen 1305  ax-8 1306  ax-10 1308  ax-12 1310  ax-17 1317  ax-4 1319  ax-5o 1321  ax-6o 1324  ax-9o 1481  ax-10o 1500  ax-16 1580  ax-11o 1588
This theorem depends on definitions:  df-bi 164  df-an 242  df-ex 1327  df-sb 1536
Copyright terms: Public domain