Metamath Proof Explorer


Theorem unisngl

Description: Taking the union of the set of singletons recovers the initial set. (Contributed by Thierry Arnoux, 9-Jan-2020)

Ref Expression
Hypothesis dissnref.c 𝐶 = { 𝑢 ∣ ∃ 𝑥𝑋 𝑢 = { 𝑥 } }
Assertion unisngl 𝑋 = 𝐶

Proof

Step Hyp Ref Expression
1 dissnref.c 𝐶 = { 𝑢 ∣ ∃ 𝑥𝑋 𝑢 = { 𝑥 } }
2 1 unieqi 𝐶 = { 𝑢 ∣ ∃ 𝑥𝑋 𝑢 = { 𝑥 } }
3 simpl ( ( 𝑦𝑢𝑢 = { 𝑥 } ) → 𝑦𝑢 )
4 simpr ( ( 𝑦𝑢𝑢 = { 𝑥 } ) → 𝑢 = { 𝑥 } )
5 3 4 eleqtrd ( ( 𝑦𝑢𝑢 = { 𝑥 } ) → 𝑦 ∈ { 𝑥 } )
6 5 exlimiv ( ∃ 𝑢 ( 𝑦𝑢𝑢 = { 𝑥 } ) → 𝑦 ∈ { 𝑥 } )
7 eqid { 𝑥 } = { 𝑥 }
8 snex { 𝑥 } ∈ V
9 eleq2 ( 𝑢 = { 𝑥 } → ( 𝑦𝑢𝑦 ∈ { 𝑥 } ) )
10 eqeq1 ( 𝑢 = { 𝑥 } → ( 𝑢 = { 𝑥 } ↔ { 𝑥 } = { 𝑥 } ) )
11 9 10 anbi12d ( 𝑢 = { 𝑥 } → ( ( 𝑦𝑢𝑢 = { 𝑥 } ) ↔ ( 𝑦 ∈ { 𝑥 } ∧ { 𝑥 } = { 𝑥 } ) ) )
12 8 11 spcev ( ( 𝑦 ∈ { 𝑥 } ∧ { 𝑥 } = { 𝑥 } ) → ∃ 𝑢 ( 𝑦𝑢𝑢 = { 𝑥 } ) )
13 7 12 mpan2 ( 𝑦 ∈ { 𝑥 } → ∃ 𝑢 ( 𝑦𝑢𝑢 = { 𝑥 } ) )
14 6 13 impbii ( ∃ 𝑢 ( 𝑦𝑢𝑢 = { 𝑥 } ) ↔ 𝑦 ∈ { 𝑥 } )
15 velsn ( 𝑦 ∈ { 𝑥 } ↔ 𝑦 = 𝑥 )
16 equcom ( 𝑦 = 𝑥𝑥 = 𝑦 )
17 14 15 16 3bitri ( ∃ 𝑢 ( 𝑦𝑢𝑢 = { 𝑥 } ) ↔ 𝑥 = 𝑦 )
18 17 rexbii ( ∃ 𝑥𝑋𝑢 ( 𝑦𝑢𝑢 = { 𝑥 } ) ↔ ∃ 𝑥𝑋 𝑥 = 𝑦 )
19 r19.42v ( ∃ 𝑥𝑋 ( 𝑦𝑢𝑢 = { 𝑥 } ) ↔ ( 𝑦𝑢 ∧ ∃ 𝑥𝑋 𝑢 = { 𝑥 } ) )
20 19 exbii ( ∃ 𝑢𝑥𝑋 ( 𝑦𝑢𝑢 = { 𝑥 } ) ↔ ∃ 𝑢 ( 𝑦𝑢 ∧ ∃ 𝑥𝑋 𝑢 = { 𝑥 } ) )
21 rexcom4 ( ∃ 𝑥𝑋𝑢 ( 𝑦𝑢𝑢 = { 𝑥 } ) ↔ ∃ 𝑢𝑥𝑋 ( 𝑦𝑢𝑢 = { 𝑥 } ) )
22 eluniab ( 𝑦 { 𝑢 ∣ ∃ 𝑥𝑋 𝑢 = { 𝑥 } } ↔ ∃ 𝑢 ( 𝑦𝑢 ∧ ∃ 𝑥𝑋 𝑢 = { 𝑥 } ) )
23 20 21 22 3bitr4ri ( 𝑦 { 𝑢 ∣ ∃ 𝑥𝑋 𝑢 = { 𝑥 } } ↔ ∃ 𝑥𝑋𝑢 ( 𝑦𝑢𝑢 = { 𝑥 } ) )
24 risset ( 𝑦𝑋 ↔ ∃ 𝑥𝑋 𝑥 = 𝑦 )
25 18 23 24 3bitr4i ( 𝑦 { 𝑢 ∣ ∃ 𝑥𝑋 𝑢 = { 𝑥 } } ↔ 𝑦𝑋 )
26 25 eqriv { 𝑢 ∣ ∃ 𝑥𝑋 𝑢 = { 𝑥 } } = 𝑋
27 2 26 eqtr2i 𝑋 = 𝐶