Metamath Proof Explorer


Theorem reu6

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

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

Proof

Step Hyp Ref Expression
1 df-reu ( ∃! 𝑥𝐴 𝜑 ↔ ∃! 𝑥 ( 𝑥𝐴𝜑 ) )
2 19.28v ( ∀ 𝑥 ( 𝑦𝐴 ∧ ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) ↔ ( 𝑦𝐴 ∧ ∀ 𝑥 ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) )
3 eleq1w ( 𝑥 = 𝑦 → ( 𝑥𝐴𝑦𝐴 ) )
4 sbequ12 ( 𝑥 = 𝑦 → ( 𝜑 ↔ [ 𝑦 / 𝑥 ] 𝜑 ) )
5 3 4 anbi12d ( 𝑥 = 𝑦 → ( ( 𝑥𝐴𝜑 ) ↔ ( 𝑦𝐴 ∧ [ 𝑦 / 𝑥 ] 𝜑 ) ) )
6 equequ1 ( 𝑥 = 𝑦 → ( 𝑥 = 𝑦𝑦 = 𝑦 ) )
7 5 6 bibi12d ( 𝑥 = 𝑦 → ( ( ( 𝑥𝐴𝜑 ) ↔ 𝑥 = 𝑦 ) ↔ ( ( 𝑦𝐴 ∧ [ 𝑦 / 𝑥 ] 𝜑 ) ↔ 𝑦 = 𝑦 ) ) )
8 equid 𝑦 = 𝑦
9 8 tbt ( ( 𝑦𝐴 ∧ [ 𝑦 / 𝑥 ] 𝜑 ) ↔ ( ( 𝑦𝐴 ∧ [ 𝑦 / 𝑥 ] 𝜑 ) ↔ 𝑦 = 𝑦 ) )
10 simpl ( ( 𝑦𝐴 ∧ [ 𝑦 / 𝑥 ] 𝜑 ) → 𝑦𝐴 )
11 9 10 sylbir ( ( ( 𝑦𝐴 ∧ [ 𝑦 / 𝑥 ] 𝜑 ) ↔ 𝑦 = 𝑦 ) → 𝑦𝐴 )
12 7 11 syl6bi ( 𝑥 = 𝑦 → ( ( ( 𝑥𝐴𝜑 ) ↔ 𝑥 = 𝑦 ) → 𝑦𝐴 ) )
13 12 spimvw ( ∀ 𝑥 ( ( 𝑥𝐴𝜑 ) ↔ 𝑥 = 𝑦 ) → 𝑦𝐴 )
14 ibar ( 𝑥𝐴 → ( 𝜑 ↔ ( 𝑥𝐴𝜑 ) ) )
15 14 bibi1d ( 𝑥𝐴 → ( ( 𝜑𝑥 = 𝑦 ) ↔ ( ( 𝑥𝐴𝜑 ) ↔ 𝑥 = 𝑦 ) ) )
16 15 biimprcd ( ( ( 𝑥𝐴𝜑 ) ↔ 𝑥 = 𝑦 ) → ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) )
17 16 sps ( ∀ 𝑥 ( ( 𝑥𝐴𝜑 ) ↔ 𝑥 = 𝑦 ) → ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) )
18 13 17 jca ( ∀ 𝑥 ( ( 𝑥𝐴𝜑 ) ↔ 𝑥 = 𝑦 ) → ( 𝑦𝐴 ∧ ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) )
19 18 axc4i ( ∀ 𝑥 ( ( 𝑥𝐴𝜑 ) ↔ 𝑥 = 𝑦 ) → ∀ 𝑥 ( 𝑦𝐴 ∧ ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) )
20 biimp ( ( 𝜑𝑥 = 𝑦 ) → ( 𝜑𝑥 = 𝑦 ) )
21 20 imim2i ( ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) → ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) )
22 21 impd ( ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) → ( ( 𝑥𝐴𝜑 ) → 𝑥 = 𝑦 ) )
23 22 adantl ( ( 𝑦𝐴 ∧ ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) → ( ( 𝑥𝐴𝜑 ) → 𝑥 = 𝑦 ) )
24 3 biimprcd ( 𝑦𝐴 → ( 𝑥 = 𝑦𝑥𝐴 ) )
25 24 adantr ( ( 𝑦𝐴 ∧ ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) → ( 𝑥 = 𝑦𝑥𝐴 ) )
26 25 imp ( ( ( 𝑦𝐴 ∧ ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) ∧ 𝑥 = 𝑦 ) → 𝑥𝐴 )
27 simplr ( ( ( 𝑦𝐴 ∧ ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) ∧ 𝑥 = 𝑦 ) → ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) )
28 simpr ( ( ( 𝑦𝐴 ∧ ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) ∧ 𝑥 = 𝑦 ) → 𝑥 = 𝑦 )
29 biimpr ( ( 𝜑𝑥 = 𝑦 ) → ( 𝑥 = 𝑦𝜑 ) )
30 27 28 29 syl6ci ( ( ( 𝑦𝐴 ∧ ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) ∧ 𝑥 = 𝑦 ) → ( 𝑥𝐴𝜑 ) )
31 26 30 jcai ( ( ( 𝑦𝐴 ∧ ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) ∧ 𝑥 = 𝑦 ) → ( 𝑥𝐴𝜑 ) )
32 31 ex ( ( 𝑦𝐴 ∧ ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) → ( 𝑥 = 𝑦 → ( 𝑥𝐴𝜑 ) ) )
33 23 32 impbid ( ( 𝑦𝐴 ∧ ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) → ( ( 𝑥𝐴𝜑 ) ↔ 𝑥 = 𝑦 ) )
34 33 alimi ( ∀ 𝑥 ( 𝑦𝐴 ∧ ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) → ∀ 𝑥 ( ( 𝑥𝐴𝜑 ) ↔ 𝑥 = 𝑦 ) )
35 19 34 impbii ( ∀ 𝑥 ( ( 𝑥𝐴𝜑 ) ↔ 𝑥 = 𝑦 ) ↔ ∀ 𝑥 ( 𝑦𝐴 ∧ ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) )
36 df-ral ( ∀ 𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ↔ ∀ 𝑥 ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) )
37 36 anbi2i ( ( 𝑦𝐴 ∧ ∀ 𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ) ↔ ( 𝑦𝐴 ∧ ∀ 𝑥 ( 𝑥𝐴 → ( 𝜑𝑥 = 𝑦 ) ) ) )
38 2 35 37 3bitr4i ( ∀ 𝑥 ( ( 𝑥𝐴𝜑 ) ↔ 𝑥 = 𝑦 ) ↔ ( 𝑦𝐴 ∧ ∀ 𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ) )
39 38 exbii ( ∃ 𝑦𝑥 ( ( 𝑥𝐴𝜑 ) ↔ 𝑥 = 𝑦 ) ↔ ∃ 𝑦 ( 𝑦𝐴 ∧ ∀ 𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ) )
40 eu6 ( ∃! 𝑥 ( 𝑥𝐴𝜑 ) ↔ ∃ 𝑦𝑥 ( ( 𝑥𝐴𝜑 ) ↔ 𝑥 = 𝑦 ) )
41 df-rex ( ∃ 𝑦𝐴𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ↔ ∃ 𝑦 ( 𝑦𝐴 ∧ ∀ 𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) ) )
42 39 40 41 3bitr4i ( ∃! 𝑥 ( 𝑥𝐴𝜑 ) ↔ ∃ 𝑦𝐴𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) )
43 1 42 bitri ( ∃! 𝑥𝐴 𝜑 ↔ ∃ 𝑦𝐴𝑥𝐴 ( 𝜑𝑥 = 𝑦 ) )