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

Theorem 2mo 1447
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 1135 . . . . . . 7 |- (v = z -> (x = v <-> x = z))
2 equequ2 1135 . . . . . . 7 |- (u = w -> (y = u <-> y = w))
31, 2bi2anan9 632 . . . . . 6 |- ((v = z /\ u = w) -> ((x = v /\ y = u) <-> (x = z /\ y = w)))
43imbi2d 612 . . . . 5 |- ((v = z /\ u = w) -> ((ph -> (x = v /\ y = u)) <-> (ph -> (x = z /\ y = w))))
542albidv 1280 . . . 4 |- ((v = z /\ u = w) -> (A.xA.y(ph -> (x = v /\ y = u)) <-> A.xA.y(ph -> (x = z /\ y = w))))
65cbvex2v 1319 . . 3 |- (E.vE.uA.xA.y(ph -> (x = v /\ y = u)) <-> E.zE.wA.xA.y(ph -> (x = z /\ y = w)))
7 ax-17 971 . . . . . . . . 9 |- ((ph -> (x = v /\ y = u)) -> A.z(ph -> (x = v /\ y = u)))
8 ax-17 971 . . . . . . . . 9 |- ((ph -> (x = v /\ y = u)) -> A.w(ph -> (x = v /\ y = u)))
9 hbs1 1332 . . . . . . . . . 10 |- ([z / x][w / y]ph -> A.x[z / x][w / y]ph)
10 ax-17 971 . . . . . . . . . 10 |- ((z = v /\ w = u) -> A.x(z = v /\ w = u))
119, 10hbim 1007 . . . . . . . . 9 |- (([z / x][w / y]ph -> (z = v /\ w = u)) -> A.x([z / x][w / y]ph -> (z = v /\ w = u)))
12 hbs1 1332 . . . . . . . . . . 11 |- ([w / y]ph -> A.y[w / y]ph)
1312hbsb 1333 . . . . . . . . . 10 |- ([z / x][w / y]ph -> A.y[z / x][w / y]ph)
14 ax-17 971 . . . . . . . . . 10 |- ((z = v /\ w = u) -> A.y(z = v /\ w = u))
1513, 14hbim 1007 . . . . . . . . 9 |- (([z / x][w / y]ph -> (z = v /\ w = u)) -> A.y([z / x][w / y]ph -> (z = v /\ w = u)))
16 sbequ12 1181 . . . . . . . . . . 11 |- (y = w -> (ph <-> [w / y]ph))
17 sbequ12 1181 . . . . . . . . . . 11 |- (x = z -> ([w / y]ph <-> [z / x][w / y]ph))
1816, 17sylan9bbr 541 . . . . . . . . . 10 |- ((x = z /\ y = w) -> (ph <-> [z / x][w / y]ph))
19 equequ1 1134 . . . . . . . . . . 11 |- (x = z -> (x = v <-> z = v))
20 equequ1 1134 . . . . . . . . . . 11 |- (y = w -> (y = u <-> w = u))
2119, 20bi2anan9 632 . . . . . . . . . 10 |- ((x = z /\ y = w) -> ((x = v /\ y = u) <-> (z = v /\ w = u)))
2218, 21imbi12d 626 . . . . . . . . 9 |- ((x = z /\ y = w) -> ((ph -> (x = v /\ y = u)) <-> ([z / x][w / y]ph -> (z = v /\ w = u))))
237, 8, 11, 15, 22cbval2 1316 . . . . . . . 8 |- (A.xA.y(ph -> (x = v /\ y = u)) <-> A.zA.w([z / x][w / y]ph -> (z = v /\ w = u)))
2423biimp 151 . . . . . . 7 |- (A.xA.y(ph -> (x = v /\ y = u)) -> A.zA.w([z / x][w / y]ph -> (z = v /\ w = u)))
2524ancli 296 . . . . . 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 1032 . . . . . . . . 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 1119 . . . . . . . . . 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 999 . . . . . . . . 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, 28bitr 173 . . . . . . . 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 999 . . . . . . 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 971 . . . . . . . 8 |- (A.y(ph -> (x = v /\ y = u)) -> A.zA.y(ph -> (x = v /\ y = u)))
3211hbal 1005 . . . . . . . 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 1119 . . . . . . 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, 33bitr 173 . . . . . 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 200 . . . . 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 556 . . . . . . . 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 1133 . . . . . . . . . 10 |- ((x = v /\ z = v) -> x = z)
38 equtr2 1133 . . . . . . . . . 10 |- ((y = u /\ w = u) -> y = w)
3937, 38anim12i 333 . . . . . . . . 9 |- (((x = v /\ z = v) /\ (y = u /\ w = u)) -> (x = z /\ y = w))
4039an4s 508 . . . . . . . 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 993 . . . . . 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 993 . . . . 5