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

Theorem 2mo 1490
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 1177 . . . . . . 7 |- (v = z -> (x = v <-> x = z))
2 equequ2 1177 . . . . . . 7 |- (u = w -> (y = u <-> y = w))
31, 2bi2anan9 643 . . . . . 6 |- ((v = z /\ u = w) -> ((x = v /\ y = u) <-> (x = z /\ y = w)))
43imbi2d 623 . . . . 5 |- ((v = z /\ u = w) -> ((ph -> (x = v /\ y = u)) <-> (ph -> (x = z /\ y = w))))
542albidv 1322 . . . 4 |- ((v = z /\ u = w) -> (A.xA.y(ph -> (x = v /\ y = u)) <-> A.xA.y(ph -> (x = z /\ y = w))))
65cbvex2v 1361 . . 3 |- (E.vE.uA.xA.y(ph -> (x = v /\ y = u)) <-> E.zE.wA.xA.y(ph -> (x = z /\ y = w)))
7 ax-17 1012 . . . . . . . . 9 |- ((ph -> (x = v /\ y = u)) -> A.z(ph -> (x = v /\ y = u)))
8 ax-17 1012 . . . . . . . . 9 |- ((ph -> (x = v /\ y = u)) -> A.w(ph -> (x = v /\ y = u)))
9 hbs1 1374 . . . . . . . . . 10 |- ([z / x][w / y]ph -> A.x[z / x][w / y]ph)
10 ax-17 1012 . . . . . . . . . 10 |- ((z = v /\ w = u) -> A.x(z = v /\ w = u))
119, 10hbim 1048 . . . . . . . . 9 |- (([z / x][w / y]ph -> (z = v /\ w = u)) -> A.x([z / x][w / y]ph -> (z = v /\ w = u)))
12 hbs1 1374 . . . . . . . . . . 11 |- ([w / y]ph -> A.y[w / y]ph)
1312hbsb 1375 . . . . . . . . . 10 |- ([z / x][w / y]ph -> A.y[z / x][w / y]ph)
14 ax-17 1012 . . . . . . . . . 10 |- ((z = v /\ w = u) -> A.y(z = v /\ w = u))
1513, 14hbim 1048 . . . . . . . . 9 |- (([z / x][w / y]ph -> (z = v /\ w = u)) -> A.y([z / x][w / y]ph -> (z = v /\ w = u)))
16 sbequ12 1223 . . . . . . . . . . 11 |- (y = w -> (ph <-> [w / y]ph))
17 sbequ12 1223 . . . . . . . . . . 11 |- (x = z -> ([w / y]ph <-> [z / x][w / y]ph))
1816, 17sylan9bbr 552 . . . . . . . . . 10 |- ((x = z /\ y = w) -> (ph <-> [z / x][w / y]ph))
19 equequ1 1176 . . . . . . . . . . 11 |- (x = z -> (x = v <-> z = v))
20 equequ1 1176 . . . . . . . . . . 11 |- (y = w -> (y = u <-> w = u))
2119, 20bi2anan9 643 . . . . . . . . . 10 |- ((x = z /\ y = w) -> ((x = v /\ y = u) <-> (z = v /\ w = u)))
2218, 21imbi12d 637 . . . . . . . . 9 |- ((x = z /\ y = w) -> ((ph -> (x = v /\ y = u)) <-> ([z / x][w / y]ph -> (z = v /\ w = u))))
237, 8, 11, 15, 22cbval2 1358 . . . . . . . 8 |- (A.xA.y(ph -> (x = v /\ y = u)) <-> A.zA.w([z / x][w / y]ph -> (z = v /\ w = u)))
2423biimpi 158 . . . . . . 7 |- (A.xA.y(ph -> (x = v /\ y = u)) -> A.zA.w([z / x][w / y]ph -> (z = v /\ w = u)))
2524ancli 303 . . . . . 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 1073 . . . . . . . . 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 1160 . . . . . . . . . 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 1040 . . . . . . . . 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 180 . . . . . . . 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 1040 . . . . . . 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 1012 . . . . . . . 8 |- (A.y(ph -> (x = v /\ y = u)) -> A.zA.y(ph -> (x = v /\ y = u)))
3211hbal 1046 . . . . . . . 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 1160 . . . . . . 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 180 . . . . . 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 207 . . . . 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 567 . . . . . . . 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 1175 . . . . . . . . . 10 |- ((x = v /\ z = v) -> x = z)
38 equtr2 1175 . . . . . . . . . 10 |- ((y = u /\ w = u) -> y = w)
3937, 38anim12i 340 . . . . . . . . 9 |- (((x = v /\ z = v) /\ (y = u /\ w = u)) -> (x = z /\ y = w))
4039an4s 519 . . . . . . . 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 1034 . . . . . 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 1034 . . . . 5