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

Theorem mo 1020
Description: Equivalent definitions of "there exists at most one".
Hypothesis
Ref Expression
mo.1 |- (ph -> A.yph)
Assertion
Ref Expression
mo |- (E.yA.x(ph -> x = y) <-> A.xA.y((ph /\ [y / x]ph) -> x = y))
Distinct variable group(s):   x,y

Proof of Theorem mo
StepHypRef Expression
1 mo.1 . . . . . 6 |- (ph -> A.yph)
2 ax-17 925 . . . . . 6 |- (x = z -> A.y x = z)
31, 2hbim 702 . . . . 5 |- ((ph -> x = z) -> A.y(ph -> x = z))
43hbal 700 . . . 4 |- (A.x(ph -> x = z) -> A.yA.x(ph -> x = z))
5 ax-17 925 . . . 4 |- (A.x(ph -> x = y) -> A.zA.x(ph -> x = y))
6 eqt2b 818 . . . . . 6 |- (z = y -> (x = z <-> x = y))
76imbi2d 464 . . . . 5 |- (z = y -> ((ph -> x = z) <-> (ph -> x = y)))
87bialdv 935 . . . 4 |- (z = y -> (A.x(ph -> x = z) <-> A.x(ph -> x = y)))
94, 5, 8cbvex 849 . . 3 |- (E.zA.x(ph -> x = z) <-> E.yA.x(ph -> x = y))
10 hbs1 986 . . . . . . . . 9 |- ([y / x]ph -> A.x[y / x]ph)
11 ax-17 925 . . . . . . . . 9 |- (y = z -> A.x y = z)
1210, 11hbim 702 . . . . . . . 8 |- (([y / x]ph -> y = z) -> A.x([y / x]ph -> y = z))
13 sbequ2 864 . . . . . . . . 9 |- (x = y -> ([y / x]ph -> ph))
14 ax-8 798 . . . . . . . . 9 |- (x = y -> (x = z -> y = z))
1513, 14syl34d 29 . . . . . . . 8 |- (x = y -> ((ph -> x = z) -> ([y / x]ph -> y = z)))
163, 12, 15cbv3 847 . . . . . . 7 |- (A.x(ph -> x = z) -> A.y([y / x]ph -> y = z))
1716ancli 244 . . . . . 6 |- (A.x(ph -> x = z) -> (A.x(ph -> x = z) /\ A.y([y / x]ph -> y = z)))
183, 12aaan 794 . . . . . 6 |- (A.xA.y((ph -> x = z) /\ ([y / x]ph -> y = z)) <-> (A.x(ph -> x = z) /\ A.y([y / x]ph -> y = z)))
1917, 18sylibr 175 . . . . 5 |- (A.x(ph -> x = z) -> A.xA.y((ph -> x = z) /\ ([y / x]ph -> y = z)))
20 prth 429 . . . . . . . 8 |- (((ph -> x = z) /\ ([y / x]ph -> y = z)) -> ((ph /\ [y / x]ph) -> (x = z /\ y = z)))
21 eqan 816 . . . . . . . 8 |- ((x = z /\ y = z) -> x = y)
2220, 21syl6 23 . . . . . . 7 |- (((ph -> x = z) /\ ([y / x]ph -> y = z)) -> ((ph /\ [y / x]ph) -> x = y))
232219.20i 691 . . . . . 6 |- (A.y((ph -> x = z) /\ ([y / x]ph -> y = z)) -> A.y((ph /\ [y / x]ph) -> x = y))
242319.20i 691 . . . . 5 |- (A.xA.y((ph -> x = z) /\ ([y / x]ph -> y = z)) -> A.xA.y((ph /\ [y / x]ph) -> x = y))
2519, 24syl 12 . . . 4 |- (A.x(ph -> x = z) -> A.xA.y((ph /\ [y / x]ph) -> x = y))
262519.23aiv 952 . . 3 |- (E.zA.x(ph -> x = z) -> A.xA.y((ph /\ [y / x]ph) -> x = y))
279, 26sylbir 176 . 2 |- (E.yA.x(ph -> x = y) -> A.xA.y((ph /\ [y / x]ph) -> x = y))
281hbsb3 875 . . . . . 6 |- ([y / x]ph -> A.x[y / x]ph)
292819.22i 723 . . . . 5 |- (E.y[y / x]ph -> E.yA.x[y / x]ph)
30 19.20 690 . . . . . . . . 9 |- (A.x([y / x]ph -> (ph -> x = y)) -> (A.x[y / x]ph -> A.x(ph -> x = y)))
313019.20i 691 . . . . . . . 8 |- (A.yA.x([y / x]ph -> (ph -> x = y)) -> A.y(A.x[y / x]ph -> A.x(ph -> x = y)))
3231a7s 689 . . . . . . 7 |- (A.xA.y([y / x]ph -> (ph -> x = y)) -> A.y(A.x[y / x]ph -> A.x(ph -> x = y)))
33 19.22 722 . . . . . . 7 |- (A.y(A.x[y / x]ph -> A.x(ph -> x = y)) -> (E.yA.x[y / x]ph -> E.yA.x(ph -> x = y)))
3432, 33syl 12 . . . . . 6 |- (A.xA.y([y / x]ph -> (ph -> x = y)) -> (E.yA.x[y / x]ph -> E.yA.x(ph -> x = y)))
3534com12 13 . . . . 5 |- (E.yA.x[y / x]ph -> (A.xA.y([y / x]ph -> (ph -> x = y)) -> E.yA.x(ph -> x = y)))
3629, 35syl 12 . . . 4 |- (E.y[y / x]ph -> (A.xA.y([y / x]ph -> (ph -> x = y)) -> E.yA.x(ph -> x = y)))
37 impexp 276 . . . . . 6 |- (((ph /\ [y / x]ph) -> x = y) <-> (ph -> ([y / x]ph -> x = y)))
38 bi2.04 141 . . . . . 6 |- ((ph -> ([y / x]ph -> x = y)) <-> ([y / x]ph -> (ph -> x = y)))
3937, 38bitr 151 . . . . 5 |- (((ph /\ [y / x]ph) -> x = y) <-> ([y / x]ph -> (ph -> x = y)))
4039bi2al 696 . . . 4 |- (A.xA.y((ph /\ [y / x]ph) -> x = y) <-> A.xA.y([y / x]ph -> (ph -> x = y)))
4136, 40syl5ib 181 . . 3 |- (E.y[y / x]ph -> (A.xA.y((ph /\ [y / x]ph) -> x = y) -> E.yA.x(ph -> x = y)))
42 alnex 716 . . . . 5 |- (A.y -. [y / x]ph <-> -. E.y[y / x]ph)
4328hbne 699 . . . . . . 7 |- (-. [y / x]ph -> A.x -. [y / x]ph)
441hbne 699 . . . . . . 7 |- (-. ph -> A.y -. ph)
45 sbequ1 863 . . . . . . . . 9 |- (x = y -> (ph -> [y / x]ph))
4645eqcoms 813 . . . . . . . 8 |- (y = x -> (ph -> [y / x]ph))
4746con3d 87 . . . . . . 7 |- (y = x -> (-. [y / x]ph -> -. ph))
4843, 44, 47cbv3 847 . . . . . 6 |- (A.y -. [y / x]ph -> A.x -. ph)
49 pm2.21 71 . . . . . . 7 |- (-. ph -> (ph -> x = y))
504919.20i 691 . . . . . 6 |- (A.x -. ph -> A.x(ph -> x = y))
51 19.8a 712 . . . . . 6 |- (A.x(ph -> x = y) -> E.yA.x(ph -> x = y))
5248, 50, 513syl 21 . . . . 5 |- (A.y -. [y / x]ph -> E.yA.x(ph -> x = y))
5342, 52sylbir 176 . . . 4 |- (-. E.y[y / x]ph -> E.yA.x(ph -> x = y))
5453a1d 14 . . 3 |- (-. E.y[y / x]ph -> (A.xA.y((ph /\ [y / x]ph) -> x = y) -> E.yA.x(ph -> x = y)))
5541, 54pm2.61i 110 . 2 |- (A.xA.y((ph /\ [y / x]ph) -> x = y) -> E.yA.x(ph -> x = y))
5627, 55impbi 139 1 |- (E.yA.x(ph -> x = y) <-> A.xA.y((ph /\ [y / x]ph) -> x = y))
Colors of variables: wff set class
Syntax hints:  -. wn 1   -> wi 2   <-> wb 127   /\ wa 196  A.wal 672  E.wex 678   = weq 797  [wsb 852
This theorem is referenced by:  eu2 1023  eu3 1024  mo3 1027
This theorem was proved from axioms:  ax-1 3  ax-2 4  ax-3 5  ax-mp 6  ax-4 673  ax-5 674  ax-6 675  ax-7 676  ax-gen 677  ax-8 798  ax-9 799  ax-10 800  ax-11 801  ax-12 802  ax-16 922  ax-17 925
This theorem depends on definitions:  df-bi 128  df-an 198  df-ex 679  df-sb 853
metamath.org