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

Theorem 2eu4 1452
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 1449 for a condition under which the naive definition holds and 2exeu 1446 for a one-way implication. See 2eu5 1453 and 2eu8 1456 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 971 . . . 4 |- (E.yph -> A.zE.yph)
21eu3 1397 . . 3 |- (E!xE.yph <-> (E.xE.yph /\ E.zA.x(E.yph -> x = z)))
3 ax-17 971 . . . 4 |- (E.xph -> A.wE.xph)
43eu3 1397 . . 3 |- (E!yE.xph <-> (E.yE.xph /\ E.wA.y(E.xph -> y = w)))
52, 4anbi12i 482 . 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 506 . 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 1046 . . . . 5 |- (E.yE.xph <-> E.xE.yph)
87anbi2i 480 . . . 4 |- ((E.xE.yph /\ E.yE.xph) <-> (E.xE.yph /\ E.xE.yph))
9 anidm 432 . . . 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 1003 . . . . . . . . . 10 |- (A.xA.y(ph -> y = w) -> A.xA.xA.y(ph -> y = w))
121119.3 1031 . . . . . . . . 9 |- (A.xA.xA.y(ph -> y = w) <-> A.xA.y(ph -> y = w))
1312anbi2i 480 . . . . . . . 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 1067 . . . . . . . 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 598 . . . . . . . . . . . 12 |- ((ph -> (x = z /\ y = w)) <-> ((ph -> x = z) /\ (ph -> y = w)))
1615albii 999 . . . . . . . . . . 11 |- (A.y(ph -> (x = z /\ y = w)) <-> A.y((ph -> x = z) /\ (ph -> y = w)))
17 19.26 1067 . . . . . . . . . . 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 999 . . . . . . . . 9 |- (A.xA.y(ph -> (x = z /\ y = w)) <-> A.x(A.y(ph -> x = z) /\ A.y(ph -> y = w)))
20 19.26 1067 . . . . . . . . 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 1067 . . . . . . . . 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 1003 . . . . . . . . . . 11 |- (A.y(ph -> x = z) -> A.yA.y(ph -> x = z))
252419.3 1031 . . . . . . . . . 10 |- (A.yA.y(ph -> x = z) <-> A.y(ph -> x = z))
26 alcom 1032 . . . . . . . . . 10 |- (A.yA.x(ph -> y = w) <-> A.xA.y(ph -> y = w))
2725, 26anbi12i 482 . . . . . . . . 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 999 . . . . . . 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 1293 . . . . . . . 8 |- (A.y(ph -> x = z) <-> (E.yph -> x = z))
32 19.23v 1293 . . . . . . . 8 |- (A.x(ph -> y = w) <-> (E.xph -> y = w))
3331, 32anbi12i 482 . . . . . . 7 |- ((A.y(ph -> x = z) /\ A.x(ph -> y = w)) <-> ((E.yph -> x = z) /\ (E.xph -> y = w)))
34332albii 1000 . . . . . 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 1016 . . . . . . . 8 |- (E.yph -> A.yE.yph)
36 ax-17 971 . . . . . . . 8 |- (x = z -> A.y x = z)
3735, 36hbim 1007 . . . . . . 7 |- ((E.yph -> x = z) -> A.y(E.yph -> x = z))
38 hbe1 1016 . . . . . . . 8 |- (E.xph -> A.xE.xph)
39 ax-17 971 . . . . . . . 8 |- (y = w -> A.x y = w)
4038, 39hbim 1007 . . . . . . 7 |- ((E.xph -> y = w) -> A.x(E.xph -> y = w))
4137, 40aaan 1119 . . . . . 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 1052 . . . 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 1323 . . . 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 482 . 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 954   = wceq 956  E.wex 980  E!weu 1380
This theorem is referenced by:  2eu5 1453  2eu6 1454
This theorem was proved from axioms:  ax-1 4  ax-2 5  ax-3 6  ax-mp 7  ax-7 962  ax-gen 963  ax-8 964  ax-10 966  ax-11 967  ax-12 968  ax-17 971  ax-4 973  ax-5o 975  ax-6o 978  ax-9o 1123  ax-10o 1140  ax-16 1210  ax-11o 1218
This theorem depends on definitions:  df-bi 147  df-or 224  df-an 225  df-ex 981  df-sb 1172  df-eu 1382
Copyright terms: Public domain