MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  2reu1 Structured version   Visualization version   GIF version

Theorem 2reu1 3859
Description: Double restricted existential uniqueness. This theorem shows a condition under which a "naive" definition matches the correct one, analogous to 2eu1 2684. (Contributed by Alexander van der Vekens, 25-Jun-2017.)
Assertion
Ref Expression
2reu1 (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 ↔ (∃!𝑥𝐴𝑦𝐵 𝜑 ∧ ∃!𝑦𝐵𝑥𝐴 𝜑)))
Distinct variable groups:   𝑥,𝑦   𝑦,𝐴   𝑥,𝐵
Allowed substitution hints:   𝜑(𝑥,𝑦)   𝐴(𝑥)   𝐵(𝑦)

Proof of Theorem 2reu1
StepHypRef Expression
1 2reu5a 3716 . . . . . 6 (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 ↔ (∃𝑥𝐴 (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑) ∧ ∃*𝑥𝐴 (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑)))
2 simprr 784 . . . . . . . . . . . 12 ((𝑥𝐴 ∧ (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 ∧ ∃𝑦𝐵 𝜑)) → ∃𝑦𝐵 𝜑)
3 rsp 3259 . . . . . . . . . . . . . 14 (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (𝑥𝐴 → ∃*𝑦𝐵 𝜑))
43adantr 485 . . . . . . . . . . . . 13 ((∀𝑥𝐴 ∃*𝑦𝐵 𝜑 ∧ ∃𝑦𝐵 𝜑) → (𝑥𝐴 → ∃*𝑦𝐵 𝜑))
54impcom 412 . . . . . . . . . . . 12 ((𝑥𝐴 ∧ (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 ∧ ∃𝑦𝐵 𝜑)) → ∃*𝑦𝐵 𝜑)
62, 5jca 520 . . . . . . . . . . 11 ((𝑥𝐴 ∧ (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 ∧ ∃𝑦𝐵 𝜑)) → (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑))
76ex 417 . . . . . . . . . 10 (𝑥𝐴 → ((∀𝑥𝐴 ∃*𝑦𝐵 𝜑 ∧ ∃𝑦𝐵 𝜑) → (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑)))
87rmoimia 3713 . . . . . . . . 9 (∃*𝑥𝐴 (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑) → ∃*𝑥𝐴 (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 ∧ ∃𝑦𝐵 𝜑))
9 nfra1 3295 . . . . . . . . . 10 𝑥𝑥𝐴 ∃*𝑦𝐵 𝜑
109rmoanim 3856 . . . . . . . . 9 (∃*𝑥𝐴 (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 ∧ ∃𝑦𝐵 𝜑) ↔ (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → ∃*𝑥𝐴𝑦𝐵 𝜑))
118, 10sylib 221 . . . . . . . 8 (∃*𝑥𝐴 (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑) → (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → ∃*𝑥𝐴𝑦𝐵 𝜑))
1211ancrd 560 . . . . . . 7 (∃*𝑥𝐴 (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑) → (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∀𝑥𝐴 ∃*𝑦𝐵 𝜑)))
13 2rmoswap 3733 . . . . . . . . 9 (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (∃*𝑥𝐴𝑦𝐵 𝜑 → ∃*𝑦𝐵𝑥𝐴 𝜑))
1413com12 33 . . . . . . . 8 (∃*𝑥𝐴𝑦𝐵 𝜑 → (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → ∃*𝑦𝐵𝑥𝐴 𝜑))
1514imdistani 578 . . . . . . 7 ((∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∀𝑥𝐴 ∃*𝑦𝐵 𝜑) → (∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑))
1612, 15syl6 36 . . . . . 6 (∃*𝑥𝐴 (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑) → (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑)))
171, 16simplbiim 513 . . . . 5 (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 → (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑)))
18 2reu2rex 3388 . . . . . 6 (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 → ∃𝑥𝐴𝑦𝐵 𝜑)
19 rexcom 3300 . . . . . . 7 (∃𝑥𝐴𝑦𝐵 𝜑 ↔ ∃𝑦𝐵𝑥𝐴 𝜑)
2018, 19sylib 221 . . . . . 6 (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 → ∃𝑦𝐵𝑥𝐴 𝜑)
2118, 20jca 520 . . . . 5 (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 → (∃𝑥𝐴𝑦𝐵 𝜑 ∧ ∃𝑦𝐵𝑥𝐴 𝜑))
2217, 21jctild 534 . . . 4 (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 → (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → ((∃𝑥𝐴𝑦𝐵 𝜑 ∧ ∃𝑦𝐵𝑥𝐴 𝜑) ∧ (∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑))))
23 reu5 3378 . . . . . 6 (∃!𝑥𝐴𝑦𝐵 𝜑 ↔ (∃𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑥𝐴𝑦𝐵 𝜑))
24 reu5 3378 . . . . . 6 (∃!𝑦𝐵𝑥𝐴 𝜑 ↔ (∃𝑦𝐵𝑥𝐴 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑))
2523, 24anbi12i 639 . . . . 5 ((∃!𝑥𝐴𝑦𝐵 𝜑 ∧ ∃!𝑦𝐵𝑥𝐴 𝜑) ↔ ((∃𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑥𝐴𝑦𝐵 𝜑) ∧ (∃𝑦𝐵𝑥𝐴 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑)))
26 an4 668 . . . . 5 (((∃𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑥𝐴𝑦𝐵 𝜑) ∧ (∃𝑦𝐵𝑥𝐴 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑)) ↔ ((∃𝑥𝐴𝑦𝐵 𝜑 ∧ ∃𝑦𝐵𝑥𝐴 𝜑) ∧ (∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑)))
2725, 26bitri 278 . . . 4 ((∃!𝑥𝐴𝑦𝐵 𝜑 ∧ ∃!𝑦𝐵𝑥𝐴 𝜑) ↔ ((∃𝑥𝐴𝑦𝐵 𝜑 ∧ ∃𝑦𝐵𝑥𝐴 𝜑) ∧ (∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑)))
2822, 27imbitrrdi 255 . . 3 (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 → (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (∃!𝑥𝐴𝑦𝐵 𝜑 ∧ ∃!𝑦𝐵𝑥𝐴 𝜑)))
2928com12 33 . 2 (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 → (∃!𝑥𝐴𝑦𝐵 𝜑 ∧ ∃!𝑦𝐵𝑥𝐴 𝜑)))
30 2rexreu 3734 . 2 ((∃!𝑥𝐴𝑦𝐵 𝜑 ∧ ∃!𝑦𝐵𝑥𝐴 𝜑) → ∃!𝑥𝐴 ∃!𝑦𝐵 𝜑)
3129, 30impbid1 228 1 (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 ↔ (∃!𝑥𝐴𝑦𝐵 𝜑 ∧ ∃!𝑦𝐵𝑥𝐴 𝜑)))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 209  wa 400  wcel 2149  wral 3085  wrex 3095  ∃!wreu 3374  ∃*wrmo 3375
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1822  ax-4 1836  ax-5 1937  ax-6 1994  ax-7 2035  ax-8 2151  ax-10 2182  ax-11 2198  ax-12 2219
This theorem depends on definitions:  df-bi 210  df-an 401  df-or 861  df-tru 1570  df-ex 1807  df-nf 1811  df-mo 2573  df-eu 2603  df-clel 2844  df-nfc 2918  df-ral 3086  df-rex 3096  df-rmo 3376  df-reu 3377
This theorem is referenced by:  2reu2  3860  2sqreu  27585  2sqreunn  27586  2sqreult  27587  2sqreultb  27588  2sqreunnlt  27589  2sqreunnltb  27590  2reu3  47735
  Copyright terms: Public domain W3C validator