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

Theorem 2mo 1487
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 1172 . . . . . . 7 |- (v = z -> (x = v <-> x = z))
2 equequ2 1172 . . . . . . 7 |- (u = w -> (y = u <-> y = w))
31, 2bi2anan9 635 . . . . . 6 |- ((v = z /\ u = w) -> ((x = v /\ y = u) <-> (x = z /\ y = w)))
43imbi2d 615 . . . . 5 |- ((v = z /\ u = w) -> ((ph -> (x = v /\ y = u)) <-> (ph -> (x = z /\ y = w))))
542albidv 1318 . . . 4 |- ((v = z /\ u = w) -> (A.xA.y(ph -> (x = v /\ y = u)) <-> A.xA.y(ph -> (x = z /\ y = w))))
65cbvex2v 1357 . . 3 |- (E.vE.uA.xA.y(ph -> (x = v /\ y = u)) <-> E.zE.wA.xA.y(ph -> (x = z /\ y = w)))
7 ax-17 1007 . . . . . . . . 9 |- ((ph -> (x = v /\ y = u)) -> A.z(ph -> (x = v /\ y = u)))
8 ax-17 1007 . . . . . . . . 9 |- ((ph -> (x = v /\ y = u)) -> A.w(ph -> (x = v /\ y = u)))
9 hbs1 1371 . . . . . . . . . 10 |- ([z / x][w / y]ph -> A.x[z / x][w / y]ph)
10 ax-17 1007 . . . . . . . . . 10 |- ((z = v /\ w = u) -> A.x(z = v /\ w = u))
119, 10hbim 1043 . . . . . . . . 9 |- (([z / x][w / y]ph -> (z = v /\ w = u)) -> A.x([z / x][w / y]ph -> (z = v /\ w = u)))
12 hbs1 1371 . . . . . . . . . . 11 |- ([w / y]ph -> A.y[w / y]ph)
1312hbsb 1372 . . . . . . . . . 10 |- ([z / x][w / y]ph -> A.y[z / x][w / y]ph)
14 ax-17 1007 . . . . . . . . . 10 |- ((z = v /\ w = u) -> A.y(z = v /\ w = u))
1513, 14hbim 1043 . . . . . . . . 9 |- (([z / x][w / y]ph -> (z = v /\ w = u)) -> A.y([z / x][w / y]ph -> (z = v /\ w = u)))
16 sbequ12 1218 . . . . . . . . . . 11 |- (y = w -> (ph <-> [w / y]ph))
17 sbequ12 1218 . . . . . . . . . . 11 |- (x = z -> ([w / y]ph <-> [z / x][w / y]ph))
1816, 17sylan9bbr 544 . . . . . . . . . 10 |- ((x = z /\ y = w) -> (ph <-> [z / x][w / y]ph))
19 equequ1 1171 . . . . . . . . . . 11 |- (x = z -> (x = v <-> z = v))
20 equequ1 1171 . . . . . . . . . . 11 |- (y = w -> (y = u <-> w = u))
2119, 20bi2anan9 635 . . . . . . . . . 10 |- ((x = z /\ y = w) -> ((x = v /\ y = u) <-> (z = v /\ w = u)))
2218, 21imbi12d 629 . . . . . . . . 9 |- ((x = z /\ y = w) -> ((ph -> (x = v /\ y = u)) <-> ([z / x][w / y]ph -> (z = v /\ w = u))))
237, 8, 11, 15, 22cbval2 1354 . . . . . . . 8 |- (A.xA.y(ph -> (x = v /\ y = u)) <-> A.zA.w([z / x][w / y]ph -> (z = v /\ w = u)))
2423biimpi 149 . . . . . . 7 |- (A.xA.y(ph -> (x = v /\ y = u)) -> A.zA.w([z / x][w / y]ph -> (z = v /\ w = u)))
2524ancli 294 . . . . . 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 1068 . . . . . . . . 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 1155 . . . . . . . . . 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 1035 . . . . . . . . 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 171 . . . . . . . 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 1035 . . . . . . 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 1007 . . . . . . . 8 |- (A.y(ph -> (x = v /\ y = u)) -> A.zA.y(ph -> (x = v /\ y = u)))
3211hbal 1041 . . . . . . . 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 1155 . . . . . . 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 171 . . . . . 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 198 . . . . 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 559 . . . . . . . 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 1170 . . . . . . . . . 10 |- ((x = v /\ z = v) -> x = z)
38 equtr2 1170 . . . . . . . . . 10 |- ((y = u /\ w = u) -> y = w)
3937, 38anim12i 331 . . . . . . . . 9 |- (((x = v /\ z = v) /\ (y = u /\ w = u)) -> (x = z /\ y = w))
4039an4s 511 . . . . . . . 8 |- (((x = v /\ y = u) /\ (z = v /\ w = u)) -> (x = z /\ y = w))
4136, 40syl6 22 . . . . . . 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)))
424119.20i2 1029 . . . . . 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)))
434219.20i2 1029 . . . . 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 10 . . . 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 1334 . . 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 199 . 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 1133 . . . . . . 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 19.20 1030 . . . . . . . . 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))))
494819.20ii 1031 . . . . . . . 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))))
504919.20i2 1029 . . . . . . 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 197 . . . . . 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 19.22 1075 . . . . . . 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))))
535219.20i 1028 . . . . . 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 19.22 1075 . . . . . 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 20 . . . . 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 1034 . . . . . 6 |- ([z / x][w / y]ph -> A.xA.y[z / x][w / y]ph)
575619.22i2 1077 . . . . 5 |- (E.zE.w[z / x][w / y]ph -> E.zE.wA.xA.y[z / x][w / y]ph)
5855, 57syl5com 52 . . . 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 345 . . . . . . 7 |- (((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)) <-> (ph -> ([z / x][w / y]ph -> (x = z /\ y = w))))
60 bi2.04 158 . . . . . . 7 |- ((ph -> ([z / x][w / y]ph -> (x = z /\ y = w))) <-> ([z / x][w / y]ph -> (ph -> (x = z /\ y = w))))
6159, 60bitri 171 . . . . . 6 |- (((ph /\ [z / x][w / y]ph) -> (x = z /\ y = w)) <-> ([z / x][w / y]ph -> (ph -> (x = z /\ y = w))))
62612albii 1036 . . . . 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 1036 . . . 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 204 . . 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 1069 . . . . . . 7 |- (A.w -. [z / x][w / y]ph <-> -. E.w[z / x][w / y]ph)
6665albii 1035 . . . . . 6 |- (A.zA.w -. [z / x][w / y]ph <-> A.z -. E.w[z / x][w / y]ph)
67 alnex 1069 . . . . . 6 |- (A.z -. E.w[z / x][w / y]ph <-> -. E.zE.w[z / x][w / y]ph)
6866, 67bitri 171 . . . . 5 |- (A.zA.w -. [z / x][w / y]ph <-> -. E.zE.w[z / x][w / y]ph)
69 ax-17 1007 . . . . . . . 8 |- (-. ph -> A.z -. ph)
70 ax-17 1007 . . . . . . . 8 |- (-. ph -> A.w -. ph)
719hbn 1040 . . . . . . . 8 |- (-. [z / x][w / y]ph -> A.x -. [z / x][w / y]ph)
7213hbn 1040 . . . . . . . 8 |- (-. [z / x][w / y]ph -> A.y -. [z / x][w / y]ph)
7318notbid 614 . . . . . . . 8 |- ((x = z /\ y = w) -> (-. ph <-> -. [z / x][w / y]ph))
7469, 70, 71, 72, 73cbval2 1354 . . . . . . 7 |- (A.xA.y -. ph <-> A.zA.w -. [z / x][w / y]ph)
7574biimpri 150 . . . . . 6 |- (A.zA.w -. [z / x][w / y]ph -> A.xA.y -. ph)
76 pm2.21 76 . . . . . . 7 |- (-. ph -> (ph -> (x = z /\ y = w)))
777619.20i2 1029 . . . . . 6 |- (A.xA.y -. ph -> A.xA.y(ph -> (x = z /\ y = w)))
78 19.8a 1065 . . . . . . 7 |- (E.wA.xA.y(ph -> (x = z /\ y = w)) -> E.zE.wA.xA.y(ph -> (x = z /\ y = w)))
797819.23bi 1101 . . . . . 6 |- (A.xA.y(ph -> (x = z /\ y = w)) -> E.zE.wA.xA.y(ph -> (x = z /\ y = w)))
8075, 77, 793syl 20 . . . . 5 |- (A.zA.w -. [z / x][w / y]ph -> E.zE.wA.xA.y(ph -> (x = z /\ y = w)))
8168, 80sylbir 199 . . . 4 |- (-. E.zE.w[z / x][w / y]ph -> E.zE.wA.xA.y(ph -> (x = z /\ y = w)))
8281a1d 12 . . 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 124 . 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 155 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 144   /\ wa 221  A.wal 990   = wceq 992  E.wex 1016  [wsbc 1207
This theorem is referenced by:  2mos 1488  2eu6 1494
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-10 1002  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
Copyright terms: Public domain