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

Theorem 2eu4 1070
Description: This theorem provides us with a definition of double existential uniqueness ("exactly one x and exactly one y"). Naively one might think (incorrectly) that it could be defined by E!xE!yph. See 2eu1 1067 for a condition under which the naive definition holds and 2exeu 1066 for a one-way implication. See 2eu5 1071 for an alternate definition.
Assertion
Ref Expression
2eu4 |- ((E!xE.yph /\ E!yE.xph) <-> (E.xE.yph /\ E.zE.wA.xA.y(ph -> (x = z /\ y = w))))
Distinct variable group(s):   x,y,z,w   ph,z,w

Proof of Theorem 2eu4
StepHypRef Expression
1 ax-17 925 . . . 4 |- (E.yph -> A.zE.yph)
21eu3 1024 . . 3 |- (E!xE.yph <-> (E.xE.yph /\ E.zA.x(E.yph -> x = z)))
3 ax-17 925 . . . 4 |- (E.xph -> A.wE.xph)
43eu3 1024 . . 3 |- (E!yE.xph <-> (E.yE.xph /\ E.wA.y(E.xph -> y = w)))
52, 4anbi12i 369 . 2 |- ((E!xE.yph /\ E!yE.xph) <-> ((E.xE.yph /\ E.zA.x(E.yph -> x = z)) /\ (E.yE.xph /\ E.wA.y(E.xph -> y = w))))
6 an4 388 . 2 |- (((E.xE.yph /\ E.zA.x(E.yph -> x = z)) /\ (E.yE.xph /\ E.wA.y(E.xph -> y = w))) <-> ((E.xE.yph /\ E.yE.xph) /\ (E.zA.x(E.yph -> x = z) /\ E.wA.y(E.xph -> y = w))))
7 excom 728 . . . . 5 |- (E.yE.xph <-> E.xE.yph)
87anbi2i 367 . . . 4 |- ((E.xE.yph /\ E.yE.xph) <-> (E.xE.yph /\ E.xE.yph))
9 anidm 331 . . . 4 |- ((E.xE.yph /\ E.xE.yph) <-> E.xE.yph)
108, 9bitr 151 . . 3 |- ((E.xE.yph /\ E.yE.xph) <-> E.xE.yph)
11 hba1 698 . . . . . . . . . 10 |- (A.xA.y(ph -> y = w) -> A.xA.xA.y(ph -> y = w))
121119.3r 714 . . . . . . . . 9 |- (A.xA.y(ph -> y = w) <-> A.xA.xA.y(ph -> y = w))
1312anbi2i 367 . . . . . . . 8 |- ((A.xA.y(ph -> x = z) /\ A.xA.y(ph -> y = w)) <-> (A.xA.y(ph -> x = z) /\ A.xA.xA.y(ph -> y = w)))
14 jcab 454 . . . . . . . . . . . 12 |- ((ph -> (x = z /\ y = w)) <-> ((ph -> x = z) /\ (ph -> y = w)))
1514bial 695 . . . . . . . . . . 11 |- (A.y(ph -> (x = z /\ y = w)) <-> A.y((ph -> x = z) /\ (ph -> y = w)))
16 19.26 749 . . . . . . . . . . 11 |- (A.y((ph -> x = z) /\ (ph -> y = w)) <-> (A.y(ph -> x = z) /\ A.y(ph -> y = w)))
1715, 16bitr 151 . . . . . . . . . 10 |- (A.y(ph -> (x = z /\ y = w)) <-> (A.y(ph -> x = z) /\ A.y(ph -> y = w)))
1817bial 695 . . . . . . . . 9 |- (A.xA.y(ph -> (x = z /\ y = w)) <-> A.x(A.y(ph -> x = z) /\ A.y(ph -> y = w)))
19 19.26 749 . . . . . . . . 9 |- (A.x(A.y(ph -> x = z) /\ A.y(ph -> y = w)) <-> (A.xA.y(ph -> x = z) /\ A.xA.y(ph -> y = w)))
2018, 19bitr 151 . . . . . . . 8 |- (A.xA.y(ph -> (x = z /\ y = w)) <-> (A.xA.y(ph -> x = z) /\ A.xA.y(ph -> y = w)))
21 19.26 749 . . . . . . . 8 |- (A.x(A.y(ph -> x = z) /\ A.xA.y(ph -> y = w)) <-> (A.xA.y(ph -> x = z) /\ A.xA.xA.y(ph -> y = w)))
2213, 20, 213bitr4 158 . . . . . . 7 |- (A.xA.y(ph -> (x = z /\ y = w)) <-> A.x(A.y(ph -> x = z) /\ A.xA.y(ph -> y = w)))
23 19.26 749 . . . . . . . . 9 |- (A.y(A.y(ph -> x = z) /\ A.x(ph -> y = w)) <-> (A.yA.y(ph -> x = z) /\ A.yA.x(ph -> y = w)))
24 ax-4 673 . . . . . . . . . . 11 |- (A.yA.y(ph -> x = z) -> A.y(ph -> x = z))
25 hba1 698 . . . . . . . . . . 11 |- (A.y(ph -> x = z) -> A.yA.y(ph -> x = z))
2624, 25impbi 139 . . . . . . . . . 10 |- (A.yA.y(ph -> x = z) <-> A.y(ph -> x = z))
27 alcom 715 . . . . . . . . . 10 |- (A.yA.x(ph -> y = w) <-> A.xA.y(ph -> y = w))
2826, 27anbi12i 369 . . . . . . . . 9 |- ((A.yA.y(ph -> x = z) /\ A.yA.x(ph -> y = w)) <-> (A.y(ph -> x = z) /\ A.xA.y(ph -> y = w)))
2923, 28bitr 151 . . . . . . . 8 |- (A.y(A.y(ph -> x = z) /\ A.x(ph -> y = w)) <-> (A.y(ph -> x = z) /\ A.xA.y(ph -> y = w)))
3029bial 695 . . . . . . 7 |- (A.xA.y(A.y(ph -> x = z) /\ A.x(ph -> y = w)) <-> A.x(A.y(ph -> x = z) /\ A.xA.y(ph -> y = w)))
3122, 30bitr4 154 . . . . . 6 |- (A.xA.y(ph -> (x = z /\ y = w)) <-> A.xA.y(A.y(ph -> x = z) /\ A.x(ph -> y = w)))
32 19.23v 950 . . . . . . . 8 |- (A.y(ph -> x = z) <-> (E.yph -> x = z))
33 19.23v 950 . . . . . . . 8 |- (A.x(ph -> y = w) <-> (E.xph -> y = w))
3432, 33anbi12i 369 . . . . . . 7 |- ((A.y(ph -> x = z) /\ A.x(ph -> y = w)) <-> ((E.yph -> x = z) /\ (E.xph -> y = w)))
3534bi2al 696 . . . . . 6 |- (A.xA.y(A.y(ph -> x = z) /\ A.x(ph -> y = w)) <-> A.xA.y((E.yph -> x = z) /\ (E.xph -> y = w)))
36 hbe1 709 . . . . . . . 8 |- (E.yph -> A.yE.yph)
37 ax-17 925 . . . . . . . 8 |- (x = z -> A.y x = z)
3836, 37hbim 702 . . . . . . 7 |- ((E.yph -> x = z) -> A.y(E.yph -> x = z))
39 hbe1 709 . . . . . . . 8 |- (E.xph -> A.xE.xph)
40 ax-17 925 . . . . . . . 8 |- (y = w -> A.x y = w)
4139, 40hbim 702 . . . . . . 7 |- ((E.xph -> y = w) -> A.x(E.xph -> y = w))
4238, 41aaan 794 . . . . . 6 |- (A.xA.y((E.yph -> x = z) /\ (E.xph -> y = w)) <-> (A.x(E.yph -> x = z) /\ A.y(E.xph -> y = w)))
4331, 35, 423bitr 155 . . . . 5 |- (A.xA.y(ph -> (x = z /\ y = w)) <-> (A.x(E.yph -> x = z) /\ A.y(E.xph -> y = w)))
4443bi2ex 734 . . . 4 |- (E.zE.wA.xA.y(ph -> (x = z /\ y = w)) <-> E.zE.w(A.x(E.yph -> x = z) /\ A.y(E.xph -> y = w)))
45 eeanv 980 . . . 4 |- (E.zE.w(A.x(E.yph -> x = z) /\ A.y(E.xph -> y = w)) <-> (E.zA.x(E.yph -> x = z) /\ E.wA.y(E.xph -> y = w)))
4644, 45bitr2 152 . . 3 |- ((E.zA.x(E.yph -> x = z) /\ E.wA.y(E.xph -> y = w)) <-> E.zE.wA.xA.y(ph -> (x = z /\ y = w)))
4710, 46anbi12i 369 . 2 |- (((E.xE.yph /\ E.yE.xph) /\ (E.zA.x(E.yph -> x = z) /\ E.wA.y(E.xph -> y = w))) <-> (E.xE.yph /\ E.zE.wA.xA.y(ph -> (x = z /\ y = w))))
485, 6, 473bitr 155 1 |- ((E!xE.yph /\ E!yE.xph) <-> (E.xE.yph /\ E.zE.wA.xA.y(ph -> (x = z /\ y = w))))
Colors of variables: wff set class
Syntax hints:   -> wi 2   <-> wb 127   /\ wa 196  A.wal 672  E.wex 678   = weq 797  E!weu 1007
This theorem is referenced by:  2eu5 1071
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-or 197  df-an 198  df-ex 679  df-sb 853  df-eu 1009
metamath.org