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

Theorem 2reu1 3830
Description: Double restricted existential uniqueness. This theorem shows a condition under which a "naive" definition matches the correct one, analogous to 2eu1 2652. (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 3679 . . . . . 6 (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 ↔ (∃𝑥𝐴 (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑) ∧ ∃*𝑥𝐴 (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑)))
2 simprr 770 . . . . . . . . . . . 12 ((𝑥𝐴 ∧ (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 ∧ ∃𝑦𝐵 𝜑)) → ∃𝑦𝐵 𝜑)
3 rsp 3131 . . . . . . . . . . . . . 14 (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (𝑥𝐴 → ∃*𝑦𝐵 𝜑))
43adantr 481 . . . . . . . . . . . . 13 ((∀𝑥𝐴 ∃*𝑦𝐵 𝜑 ∧ ∃𝑦𝐵 𝜑) → (𝑥𝐴 → ∃*𝑦𝐵 𝜑))
54impcom 408 . . . . . . . . . . . 12 ((𝑥𝐴 ∧ (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 ∧ ∃𝑦𝐵 𝜑)) → ∃*𝑦𝐵 𝜑)
62, 5jca 512 . . . . . . . . . . 11 ((𝑥𝐴 ∧ (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 ∧ ∃𝑦𝐵 𝜑)) → (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑))
76ex 413 . . . . . . . . . 10 (𝑥𝐴 → ((∀𝑥𝐴 ∃*𝑦𝐵 𝜑 ∧ ∃𝑦𝐵 𝜑) → (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑)))
87rmoimia 3676 . . . . . . . . 9 (∃*𝑥𝐴 (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑) → ∃*𝑥𝐴 (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 ∧ ∃𝑦𝐵 𝜑))
9 nfra1 3144 . . . . . . . . . 10 𝑥𝑥𝐴 ∃*𝑦𝐵 𝜑
109rmoanim 3827 . . . . . . . . 9 (∃*𝑥𝐴 (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 ∧ ∃𝑦𝐵 𝜑) ↔ (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → ∃*𝑥𝐴𝑦𝐵 𝜑))
118, 10sylib 217 . . . . . . . 8 (∃*𝑥𝐴 (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑) → (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → ∃*𝑥𝐴𝑦𝐵 𝜑))
1211ancrd 552 . . . . . . 7 (∃*𝑥𝐴 (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑) → (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∀𝑥𝐴 ∃*𝑦𝐵 𝜑)))
13 2rmoswap 3696 . . . . . . . . 9 (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (∃*𝑥𝐴𝑦𝐵 𝜑 → ∃*𝑦𝐵𝑥𝐴 𝜑))
1413com12 32 . . . . . . . 8 (∃*𝑥𝐴𝑦𝐵 𝜑 → (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → ∃*𝑦𝐵𝑥𝐴 𝜑))
1514imdistani 569 . . . . . . 7 ((∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∀𝑥𝐴 ∃*𝑦𝐵 𝜑) → (∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑))
1612, 15syl6 35 . . . . . 6 (∃*𝑥𝐴 (∃𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵 𝜑) → (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑)))
171, 16simplbiim 505 . . . . 5 (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 → (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑)))
18 2reu2rex 3363 . . . . . 6 (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 → ∃𝑥𝐴𝑦𝐵 𝜑)
19 rexcom 3234 . . . . . . 7 (∃𝑥𝐴𝑦𝐵 𝜑 ↔ ∃𝑦𝐵𝑥𝐴 𝜑)
2018, 19sylib 217 . . . . . 6 (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 → ∃𝑦𝐵𝑥𝐴 𝜑)
2118, 20jca 512 . . . . 5 (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 → (∃𝑥𝐴𝑦𝐵 𝜑 ∧ ∃𝑦𝐵𝑥𝐴 𝜑))
2217, 21jctild 526 . . . 4 (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 → (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → ((∃𝑥𝐴𝑦𝐵 𝜑 ∧ ∃𝑦𝐵𝑥𝐴 𝜑) ∧ (∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑))))
23 reu5 3361 . . . . . 6 (∃!𝑥𝐴𝑦𝐵 𝜑 ↔ (∃𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑥𝐴𝑦𝐵 𝜑))
24 reu5 3361 . . . . . 6 (∃!𝑦𝐵𝑥𝐴 𝜑 ↔ (∃𝑦𝐵𝑥𝐴 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑))
2523, 24anbi12i 627 . . . . 5 ((∃!𝑥𝐴𝑦𝐵 𝜑 ∧ ∃!𝑦𝐵𝑥𝐴 𝜑) ↔ ((∃𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑥𝐴𝑦𝐵 𝜑) ∧ (∃𝑦𝐵𝑥𝐴 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑)))
26 an4 653 . . . . 5 (((∃𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑥𝐴𝑦𝐵 𝜑) ∧ (∃𝑦𝐵𝑥𝐴 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑)) ↔ ((∃𝑥𝐴𝑦𝐵 𝜑 ∧ ∃𝑦𝐵𝑥𝐴 𝜑) ∧ (∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑)))
2725, 26bitri 274 . . . 4 ((∃!𝑥𝐴𝑦𝐵 𝜑 ∧ ∃!𝑦𝐵𝑥𝐴 𝜑) ↔ ((∃𝑥𝐴𝑦𝐵 𝜑 ∧ ∃𝑦𝐵𝑥𝐴 𝜑) ∧ (∃*𝑥𝐴𝑦𝐵 𝜑 ∧ ∃*𝑦𝐵𝑥𝐴 𝜑)))
2822, 27syl6ibr 251 . . 3 (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 → (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (∃!𝑥𝐴𝑦𝐵 𝜑 ∧ ∃!𝑦𝐵𝑥𝐴 𝜑)))
2928com12 32 . 2 (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 → (∃!𝑥𝐴𝑦𝐵 𝜑 ∧ ∃!𝑦𝐵𝑥𝐴 𝜑)))
30 2rexreu 3697 . 2 ((∃!𝑥𝐴𝑦𝐵 𝜑 ∧ ∃!𝑦𝐵𝑥𝐴 𝜑) → ∃!𝑥𝐴 ∃!𝑦𝐵 𝜑)
3129, 30impbid1 224 1 (∀𝑥𝐴 ∃*𝑦𝐵 𝜑 → (∃!𝑥𝐴 ∃!𝑦𝐵 𝜑 ↔ (∃!𝑥𝐴𝑦𝐵 𝜑 ∧ ∃!𝑦𝐵𝑥𝐴 𝜑)))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 205  wa 396  wcel 2106  wral 3064  wrex 3065  ∃!wreu 3066  ∃*wrmo 3067
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1798  ax-4 1812  ax-5 1913  ax-6 1971  ax-7 2011  ax-8 2108  ax-10 2137  ax-11 2154  ax-12 2171
This theorem depends on definitions:  df-bi 206  df-an 397  df-or 845  df-tru 1542  df-ex 1783  df-nf 1787  df-mo 2540  df-eu 2569  df-clel 2816  df-nfc 2889  df-ral 3069  df-rex 3070  df-rmo 3071  df-reu 3072
This theorem is referenced by:  2reu2  3831  2sqreu  26604  2sqreunn  26605  2sqreult  26606  2sqreultb  26607  2sqreunnlt  26608  2sqreunnltb  26609  2reu3  44602
  Copyright terms: Public domain W3C validator