Metamath Proof Explorer


Theorem 2reu3

Description: Double restricted existential uniqueness, analogous to 2eu3 . (Contributed by Alexander van der Vekens, 29-Jun-2017)

Ref Expression
Assertion 2reu3 ( ∀ 𝑥𝐴𝑦𝐵 ( ∃* 𝑥𝐴 𝜑 ∨ ∃* 𝑦𝐵 𝜑 ) → ( ( ∃! 𝑥𝐴 ∃! 𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵 ∃! 𝑥𝐴 𝜑 ) ↔ ( ∃! 𝑥𝐴𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵𝑥𝐴 𝜑 ) ) )

Proof

Step Hyp Ref Expression
1 orcom ( ( ∃* 𝑥𝐴 𝜑 ∨ ∃* 𝑦𝐵 𝜑 ) ↔ ( ∃* 𝑦𝐵 𝜑 ∨ ∃* 𝑥𝐴 𝜑 ) )
2 1 ralbii ( ∀ 𝑦𝐵 ( ∃* 𝑥𝐴 𝜑 ∨ ∃* 𝑦𝐵 𝜑 ) ↔ ∀ 𝑦𝐵 ( ∃* 𝑦𝐵 𝜑 ∨ ∃* 𝑥𝐴 𝜑 ) )
3 nfrmo1 𝑦 ∃* 𝑦𝐵 𝜑
4 3 r19.32 ( ∀ 𝑦𝐵 ( ∃* 𝑦𝐵 𝜑 ∨ ∃* 𝑥𝐴 𝜑 ) ↔ ( ∃* 𝑦𝐵 𝜑 ∨ ∀ 𝑦𝐵 ∃* 𝑥𝐴 𝜑 ) )
5 2 4 bitri ( ∀ 𝑦𝐵 ( ∃* 𝑥𝐴 𝜑 ∨ ∃* 𝑦𝐵 𝜑 ) ↔ ( ∃* 𝑦𝐵 𝜑 ∨ ∀ 𝑦𝐵 ∃* 𝑥𝐴 𝜑 ) )
6 orcom ( ( ∃* 𝑦𝐵 𝜑 ∨ ∀ 𝑦𝐵 ∃* 𝑥𝐴 𝜑 ) ↔ ( ∀ 𝑦𝐵 ∃* 𝑥𝐴 𝜑 ∨ ∃* 𝑦𝐵 𝜑 ) )
7 5 6 bitri ( ∀ 𝑦𝐵 ( ∃* 𝑥𝐴 𝜑 ∨ ∃* 𝑦𝐵 𝜑 ) ↔ ( ∀ 𝑦𝐵 ∃* 𝑥𝐴 𝜑 ∨ ∃* 𝑦𝐵 𝜑 ) )
8 7 ralbii ( ∀ 𝑥𝐴𝑦𝐵 ( ∃* 𝑥𝐴 𝜑 ∨ ∃* 𝑦𝐵 𝜑 ) ↔ ∀ 𝑥𝐴 ( ∀ 𝑦𝐵 ∃* 𝑥𝐴 𝜑 ∨ ∃* 𝑦𝐵 𝜑 ) )
9 nfcv 𝑥 𝐵
10 nfrmo1 𝑥 ∃* 𝑥𝐴 𝜑
11 9 10 nfralw 𝑥𝑦𝐵 ∃* 𝑥𝐴 𝜑
12 11 r19.32 ( ∀ 𝑥𝐴 ( ∀ 𝑦𝐵 ∃* 𝑥𝐴 𝜑 ∨ ∃* 𝑦𝐵 𝜑 ) ↔ ( ∀ 𝑦𝐵 ∃* 𝑥𝐴 𝜑 ∨ ∀ 𝑥𝐴 ∃* 𝑦𝐵 𝜑 ) )
13 8 12 bitri ( ∀ 𝑥𝐴𝑦𝐵 ( ∃* 𝑥𝐴 𝜑 ∨ ∃* 𝑦𝐵 𝜑 ) ↔ ( ∀ 𝑦𝐵 ∃* 𝑥𝐴 𝜑 ∨ ∀ 𝑥𝐴 ∃* 𝑦𝐵 𝜑 ) )
14 2reu1 ( ∀ 𝑦𝐵 ∃* 𝑥𝐴 𝜑 → ( ∃! 𝑦𝐵 ∃! 𝑥𝐴 𝜑 ↔ ( ∃! 𝑦𝐵𝑥𝐴 𝜑 ∧ ∃! 𝑥𝐴𝑦𝐵 𝜑 ) ) )
15 14 biimpd ( ∀ 𝑦𝐵 ∃* 𝑥𝐴 𝜑 → ( ∃! 𝑦𝐵 ∃! 𝑥𝐴 𝜑 → ( ∃! 𝑦𝐵𝑥𝐴 𝜑 ∧ ∃! 𝑥𝐴𝑦𝐵 𝜑 ) ) )
16 ancom ( ( ∃! 𝑦𝐵𝑥𝐴 𝜑 ∧ ∃! 𝑥𝐴𝑦𝐵 𝜑 ) ↔ ( ∃! 𝑥𝐴𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵𝑥𝐴 𝜑 ) )
17 15 16 syl6ib ( ∀ 𝑦𝐵 ∃* 𝑥𝐴 𝜑 → ( ∃! 𝑦𝐵 ∃! 𝑥𝐴 𝜑 → ( ∃! 𝑥𝐴𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵𝑥𝐴 𝜑 ) ) )
18 17 adantld ( ∀ 𝑦𝐵 ∃* 𝑥𝐴 𝜑 → ( ( ∃! 𝑥𝐴 ∃! 𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵 ∃! 𝑥𝐴 𝜑 ) → ( ∃! 𝑥𝐴𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵𝑥𝐴 𝜑 ) ) )
19 2reu1 ( ∀ 𝑥𝐴 ∃* 𝑦𝐵 𝜑 → ( ∃! 𝑥𝐴 ∃! 𝑦𝐵 𝜑 ↔ ( ∃! 𝑥𝐴𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵𝑥𝐴 𝜑 ) ) )
20 19 biimpd ( ∀ 𝑥𝐴 ∃* 𝑦𝐵 𝜑 → ( ∃! 𝑥𝐴 ∃! 𝑦𝐵 𝜑 → ( ∃! 𝑥𝐴𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵𝑥𝐴 𝜑 ) ) )
21 20 adantrd ( ∀ 𝑥𝐴 ∃* 𝑦𝐵 𝜑 → ( ( ∃! 𝑥𝐴 ∃! 𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵 ∃! 𝑥𝐴 𝜑 ) → ( ∃! 𝑥𝐴𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵𝑥𝐴 𝜑 ) ) )
22 18 21 jaoi ( ( ∀ 𝑦𝐵 ∃* 𝑥𝐴 𝜑 ∨ ∀ 𝑥𝐴 ∃* 𝑦𝐵 𝜑 ) → ( ( ∃! 𝑥𝐴 ∃! 𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵 ∃! 𝑥𝐴 𝜑 ) → ( ∃! 𝑥𝐴𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵𝑥𝐴 𝜑 ) ) )
23 2rexreu ( ( ∃! 𝑥𝐴𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵𝑥𝐴 𝜑 ) → ∃! 𝑥𝐴 ∃! 𝑦𝐵 𝜑 )
24 2rexreu ( ( ∃! 𝑦𝐵𝑥𝐴 𝜑 ∧ ∃! 𝑥𝐴𝑦𝐵 𝜑 ) → ∃! 𝑦𝐵 ∃! 𝑥𝐴 𝜑 )
25 24 ancoms ( ( ∃! 𝑥𝐴𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵𝑥𝐴 𝜑 ) → ∃! 𝑦𝐵 ∃! 𝑥𝐴 𝜑 )
26 23 25 jca ( ( ∃! 𝑥𝐴𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵𝑥𝐴 𝜑 ) → ( ∃! 𝑥𝐴 ∃! 𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵 ∃! 𝑥𝐴 𝜑 ) )
27 22 26 impbid1 ( ( ∀ 𝑦𝐵 ∃* 𝑥𝐴 𝜑 ∨ ∀ 𝑥𝐴 ∃* 𝑦𝐵 𝜑 ) → ( ( ∃! 𝑥𝐴 ∃! 𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵 ∃! 𝑥𝐴 𝜑 ) ↔ ( ∃! 𝑥𝐴𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵𝑥𝐴 𝜑 ) ) )
28 13 27 sylbi ( ∀ 𝑥𝐴𝑦𝐵 ( ∃* 𝑥𝐴 𝜑 ∨ ∃* 𝑦𝐵 𝜑 ) → ( ( ∃! 𝑥𝐴 ∃! 𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵 ∃! 𝑥𝐴 𝜑 ) ↔ ( ∃! 𝑥𝐴𝑦𝐵 𝜑 ∧ ∃! 𝑦𝐵𝑥𝐴 𝜑 ) ) )