Metamath Proof Explorer


Theorem reu3

Description: A way to express restricted uniqueness. (Contributed by NM, 24-Oct-2006)

Ref Expression
Assertion reu3 ( ∃! 𝑥𝐴 𝜑 ↔ ( ∃ 𝑥𝐴 𝜑 ∧ ∃ 𝑦𝐴𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ) )

Proof

Step Hyp Ref Expression
1 reurex ( ∃! 𝑥𝐴 𝜑 → ∃ 𝑥𝐴 𝜑 )
2 reu6 ( ∃! 𝑥𝐴 𝜑 ↔ ∃ 𝑦𝐴𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) )
3 biimp ( ( 𝜑𝑥 = 𝑦 ) → ( 𝜑𝑥 = 𝑦 ) )
4 3 ralimi ( ∀ 𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) → ∀ 𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) )
5 4 reximi ( ∃ 𝑦𝐴𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) → ∃ 𝑦𝐴𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) )
6 2 5 sylbi ( ∃! 𝑥𝐴 𝜑 → ∃ 𝑦𝐴𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) )
7 1 6 jca ( ∃! 𝑥𝐴 𝜑 → ( ∃ 𝑥𝐴 𝜑 ∧ ∃ 𝑦𝐴𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ) )
8 rexex ( ∃ 𝑦𝐴𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) → ∃ 𝑦𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) )
9 8 anim2i ( ( ∃ 𝑥𝐴 𝜑 ∧ ∃ 𝑦𝐴𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ) → ( ∃ 𝑥𝐴 𝜑 ∧ ∃ 𝑦𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ) )
10 eu3v ( ∃! 𝑥 ( 𝑥𝐴𝜑 ) ↔ ( ∃ 𝑥 ( 𝑥𝐴𝜑 ) ∧ ∃ 𝑦𝑥 ( ( 𝑥𝐴𝜑 ) → 𝑥 = 𝑦 ) ) )
11 df-reu ( ∃! 𝑥𝐴 𝜑 ↔ ∃! 𝑥 ( 𝑥𝐴𝜑 ) )
12 df-rex ( ∃ 𝑥𝐴 𝜑 ↔ ∃ 𝑥 ( 𝑥𝐴𝜑 ) )
13 df-ral ( ∀ 𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ↔ ∀ 𝑥 ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) )
14 impexp ( ( ( 𝑥𝐴𝜑 ) → 𝑥 = 𝑦 ) ↔ ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) )
15 14 albii ( ∀ 𝑥 ( ( 𝑥𝐴𝜑 ) → 𝑥 = 𝑦 ) ↔ ∀ 𝑥 ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) )
16 13 15 bitr4i ( ∀ 𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ↔ ∀ 𝑥 ( ( 𝑥𝐴𝜑 ) → 𝑥 = 𝑦 ) )
17 16 exbii ( ∃ 𝑦𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ↔ ∃ 𝑦𝑥 ( ( 𝑥𝐴𝜑 ) → 𝑥 = 𝑦 ) )
18 12 17 anbi12i ( ( ∃ 𝑥𝐴 𝜑 ∧ ∃ 𝑦𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ) ↔ ( ∃ 𝑥 ( 𝑥𝐴𝜑 ) ∧ ∃ 𝑦𝑥 ( ( 𝑥𝐴𝜑 ) → 𝑥 = 𝑦 ) ) )
19 10 11 18 3bitr4i ( ∃! 𝑥𝐴 𝜑 ↔ ( ∃ 𝑥𝐴 𝜑 ∧ ∃ 𝑦𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ) )
20 9 19 sylibr ( ( ∃ 𝑥𝐴 𝜑 ∧ ∃ 𝑦𝐴𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ) → ∃! 𝑥𝐴 𝜑 )
21 7 20 impbii ( ∃! 𝑥𝐴 𝜑 ↔ ( ∃ 𝑥𝐴 𝜑 ∧ ∃ 𝑦𝐴𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ) )