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

Theorem 2eu4 1492
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 1489 for a condition under which the naive definition holds and 2exeu 1486 for a one-way implication. See 2eu5 1493 and 2eu8 1496 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 1007 . . . 4 |- (E.yph -> A.zE.yph)
21eu3 1436 . . 3 |- (E!xE.yph <-> (E.xE.yph /\ E.zA.x(E.yph -> x = z)))
3 ax-17 1007 . . . 4 |- (E.xph -> A.wE.xph)
43eu3 1436 . . 3 |- (E!yE.xph <-> (E.yE.xph /\ E.wA.y(E.xph -> y = w)))
52, 4anbi12i 485 . 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 509 . 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 1082 . . . . 5 |- (E.yE.xph <-> E.xE.yph)
87anbi2i 483 . . . 4 |- ((E.xE.yph /\ E.yE.xph) <-> (E.xE.yph /\ E.xE.yph))
9 anidm 433 . . . 4 |- ((E.xE.yph /\ E.xE.yph) <-> E.xE.yph)
108, 9bitri 171 . . 3 |- ((E.xE.yph /\ E.yE.xph) <-> E.xE.yph)
11 hba1 1039 . . . . . . . . . 10 |- (A.xA.y(ph -> y = w) -> A.xA.xA.y(ph -> y = w))
121119.3 1067 . . . . . . . . 9 |- (A.xA.xA.y(ph -> y = w) <-> A.xA.y(ph -> y = w))
1312anbi2i 483 . . . . . . . 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 1103 . . . . . . . 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 601 . . . . . . . . . . . 12 |- ((ph -> (x = z /\ y = w)) <-> ((ph -> x = z) /\ (ph -> y = w)))
1615albii 1035 . . . . . . . . . . 11 |- (A.y(ph -> (x = z /\ y = w)) <-> A.y((ph -> x = z) /\ (ph -> y = w)))
17 19.26 1103 . . . . . . . . . . 11 |- (A.y((ph -> x = z) /\ (ph -> y = w)) <-> (A.y(ph -> x = z) /\ A.y(ph -> y = w)))
1816, 17bitri 171 . . . . . . . . . 10 |- (A.y(ph -> (x = z /\ y = w)) <-> (A.y(ph -> x = z) /\ A.y(ph -> y = w)))
1918albii 1035 . . . . . . . . 9 |- (A.xA.y(ph -> (x = z /\ y = w)) <-> A.x(A.y(ph -> x = z) /\ A.y(ph -> y = w)))
20 19.26 1103 . . . . . . . . 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, 20bitri 171 . . . . . . . 8 |- (A.xA.y(ph -> (x = z /\ y = w)) <-> (A.xA.y(ph -> x = z) /\ A.xA.y(ph -> y = w)))
2213, 14, 213bitr4ri 182 . . . . . . 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 1103 . . . . . . . . 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 1039 . . . . . . . . . . 11 |- (A.y(ph -> x = z) -> A.yA.y(ph -> x = z))
252419.3 1067 . . . . . . . . . 10 |- (A.yA.y(ph -> x = z) <-> A.y(ph -> x = z))
26 alcom 1068 . . . . . . . . . 10 |- (A.yA.x(ph -> y = w) <-> A.xA.y(ph -> y = w))
2725, 26anbi12i 485 . . . . . . . . 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, 27bitri 171 . . . . . . . 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 1035 . . . . . . 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, 29bitr4i 174 . . . . . 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 1331 . . . . . . . 8 |- (A.y(ph -> x = z) <-> (E.yph -> x = z))
32 19.23v 1331 . . . . . . . 8 |- (A.x(ph -> y = w) <-> (E.xph -> y = w))
3331, 32anbi12i 485 . . . . . . 7 |- ((A.y(ph -> x = z) /\ A.x(ph -> y = w)) <-> ((E.yph -> x = z) /\ (E.xph -> y = w)))
34332albii 1036 . . . . . 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 1052 . . . . . . . 8 |- (E.yph -> A.yE.yph)
36 ax-17 1007 . . . . . . . 8 |- (x = z -> A.y x = z)
3735, 36hbim 1043 . . . . . . 7 |- ((E.yph -> x = z) -> A.y(E.yph -> x = z))
38 hbe1 1052 . . . . . . . 8 |- (E.xph -> A.xE.xph)
39 ax-17 1007 . . . . . . . 8 |- (y = w -> A.x y = w)
4038, 39hbim 1043 . . . . . . 7 |- ((E.xph -> y = w) -> A.x(E.xph -> y = w))
4137, 40aaan 1155 . . . . . 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, 413bitri 175 . . . . 5 |- (A.xA.y(ph -> (x = z /\ y = w)) <-> (A.x(E.yph -> x = z) /\ A.y(E.xph -> y = w)))
43422exbii 1088 . . . 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 1361 . . . 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, 44bitr2i 172 . . 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 485 . 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, 463bitri 175 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 144   /\ wa 221  A.wal 990   = wceq 992  E.wex 1016  E!weu 1419
This theorem is referenced by:  2eu5 1493  2eu6 1494
This theorem was proved from axioms:  ax-1 4  ax-2 5  ax-3 6  ax-mp 7  ax-7 998  ax-gen 999  ax-8 1000  ax-10 1002  ax-11 1003  ax-12 1004  ax-17 1007  ax-4 1009  ax-5o 1011  ax-6o 1014  ax-9o 1159  ax-10o 1177  ax-16 1247  ax-11o 1255
This theorem depends on definitions:  df-bi 145  df-or 222  df-an 223  df-ex 1017  df-sb 1209  df-eu 1421
Copyright terms: Public domain