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

Theorem 2eu4 1455
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 1452 for a condition under which the naive definition holds and 2exeu 1449 for a one-way implication. See 2eu5 1456 and 2eu8 1459 for alternate definitions.
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 groups:   x,y,z,w   ph,z,w

Proof of Theorem 2eu4
StepHypRef Expression
1 ax-17 973 . . . 4 |- (E.yph -> A.zE.yph)
21eu3 1399 . . 3 |- (E!xE.yph <-> (E.xE.yph /\ E.zA.x(E.yph -> x = z)))
3 ax-17 973 . . . 4 |- (E.xph -> A.wE.xph)
43eu3 1399 . . 3 |- (E!yE.xph <-> (E.yE.xph /\ E.wA.y(E.xph -> y = w)))
52, 4anbi12i 484 . 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 508 . 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 1048 . . . . 5 |- (E.yE.xph <-> E.xE.yph)
87anbi2i 482 . . . 4 |- ((E.xE.yph /\ E.yE.xph) <-> (E.xE.yph /\ E.xE.yph))
9 anidm 434 . . . 4 |- ((E.xE.yph /\ E.xE.yph) <-> E.xE.yph)
108, 9bitr 173 . . 3 |- ((E.xE.yph /\ E.yE.xph) <-> E.xE.yph)
11 hba1 1005 . . . . . . . . . 10 |- (A.xA.y(ph -> y = w) -> A.xA.xA.y(ph -> y = w))
121119.3 1033 . . . . . . . . 9 |- (A.xA.xA.y(ph -> y = w) <-> A.xA.y(ph -> y = w))
1312anbi2i 482 . . . . . . . 8 |- ((A.xA.y(ph -> x = z) /\ A.xA.xA.y(ph -> y = w)) <-> (A.xA.y(ph -> x = z) /\ A.xA.y(ph -> y = w)))
14 19.26 1069 . . . . . . . 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)))
15 jcab 600 . . . . . . . . . . . 12 |- ((ph -> (x = z /\ y = w)) <-> ((ph -> x = z) /\ (ph -> y = w)))
1615albii 1001 . . . . . . . . . . 11 |- (A.y(ph -> (x = z /\ y = w)) <-> A.y((ph -> x = z) /\ (ph -> y = w)))
17 19.26 1069 . . . . . . . . . . 11 |- (A.y((ph -> x = z) /\ (ph -> y = w)) <-> (A.y(ph -> x = z) /\ A.y(ph -> y = w)))
1816, 17bitr 173 . . . . . . . . . 10 |- (A.y(ph -> (x = z /\ y = w)) <-> (A.y(ph -> x = z) /\ A.y(ph -> y = w)))
1918albii 1001 . . . . . . . . 9 |- (A.xA.y(ph -> (x = z /\ y = w)) <-> A.x(A.y(ph -> x = z) /\ A.y(ph -> y = w)))
20 19.26 1069 . . . . . . . . 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)))
2119, 20bitr 173 . . . . . . . 8 |- (A.xA.y(ph -> (x = z /\ y = w)) <-> (A.xA.y(ph -> x = z) /\ A.xA.y(ph -> y = w)))
2213, 14, 213bitr4r 184 . . . . . . 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 1069 . . . . . . . . 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 hba1 1005 . . . . . . . . . . 11 |- (A.y(ph -> x = z) -> A.yA.y(ph -> x = z))
252419.3 1033 . . . . . . . . . 10 |- (A.yA.y(ph -> x = z) <-> A.y(ph -> x = z))
26 alcom 1034 . . . . . . . . . 10 |- (A.yA.x(ph -> y = w) <-> A.xA.y(ph -> y = w))
2725, 26anbi12i 484 . . . . . . . . 9 |- ((A.yA.y(ph -> x = z) /\ A.yA.x(ph -> y = w)) <-> (A.y(ph -> x = z) /\ A.xA.y(ph -> y = w)))
2823, 27bitr 173 . . . . . . . 8 |- (A.y(A.y(ph -> x = z) /\ A.x(ph -> y = w)) <-> (A.y(ph -> x = z) /\ A.xA.y(ph -> y = w)))
2928albii 1001 . . . . . . 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)))
3022, 29bitr4 176 . . . . . 6 |- (A.xA.y(ph -> (x = z /\ y = w)) <-> A.xA.y(A.y(ph -> x = z) /\ A.x(ph -> y = w)))
31 19.23v 1295 . . . . . . . 8 |- (A.y(ph -> x = z) <-> (E.yph -> x = z))
32 19.23v 1295 . . . . . . . 8 |- (A.x(ph -> y = w) <-> (E.xph -> y = w))
3331, 32anbi12i 484 . . . . . . 7 |- ((A.y(ph -> x = z) /\ A.x(ph -> y = w)) <-> ((E.yph -> x = z) /\ (E.xph -> y = w)))
34332albii 1002 . . . . . 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)))
35 hbe1 1018 . . . . . . . 8 |- (E.yph -> A.yE.yph)
36 ax-17 973 . . . . . . . 8 |- (x = z -> A.y x = z)
3735, 36hbim 1009 . . . . . . 7 |- ((E.yph -> x = z) -> A.y(E.yph -> x = z))
38 hbe1 1018 . . . . . . . 8 |- (E.xph -> A.xE.xph)
39 ax-17 973 . . . . . . . 8 |- (y = w -> A.x y = w)
4038, 39hbim 1009 . . . . . . 7 |- ((E.xph -> y = w) -> A.x(E.xph -> y = w))
4137, 40aaan 1121 . . . . . 6 |- (A.xA.y((E.yph -> x = z) /\ (E.xph -> y = w)) <-> (A.x(E.yph -> x = z) /\ A.y(E.xph -> y = w)))
4230, 34, 413bitr 177 . . . . 5 |- (A.xA.y(ph -> (x = z /\ y = w)) <-> (A.x(E.yph -> x = z) /\ A.y(E.xph -> y = w)))
43422exbii 1054 . . . 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)))
44 eeanv 1325 . . . 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)))
4543, 44bitr2 174 . . 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)))
4610, 45anbi12i 484 . 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))))
475, 6, 463bitr 177 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 3   <-> wb 146   /\ wa 223  A.wal 956   = wceq 958  E.wex 982  E!weu 1382
This theorem is referenced by:  2eu5 1456  2eu6 1457
This theorem was proved from axioms:  ax-1 4  ax-2 5  ax-3 6  ax-mp 7  ax-7 964  ax-gen 965  ax-8 966  ax-10 968  ax-11 969  ax-12 970  ax-17 973  ax-4 975  ax-5o 977  ax-6o 980  ax-9o 1125  ax-10o 1142  ax-16 1212  ax-11o 1220
This theorem depends on definitions:  df-bi 147  df-or 224  df-an 225  df-ex 983  df-sb 1174  df-eu 1384
Copyright terms: Public domain