Metamath Proof Explorer


Theorem sbiota1

Description: Theorem *14.25 in WhiteheadRussell p. 192. (Contributed by Andrew Salmon, 12-Jul-2011)

Ref Expression
Assertion sbiota1 ( ∃! 𝑥 𝜑 → ( ∀ 𝑥 ( 𝜑𝜓 ) ↔ [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 ) )

Proof

Step Hyp Ref Expression
1 eu6 ( ∃! 𝑥 𝜑 ↔ ∃ 𝑦𝑥 ( 𝜑𝑥 = 𝑦 ) )
2 1 biimpi ( ∃! 𝑥 𝜑 → ∃ 𝑦𝑥 ( 𝜑𝑥 = 𝑦 ) )
3 iota4 ( ∃! 𝑥 𝜑[ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜑 )
4 iotaval ( ∀ 𝑥 ( 𝜑𝑥 = 𝑦 ) → ( ℩ 𝑥 𝜑 ) = 𝑦 )
5 4 eqcomd ( ∀ 𝑥 ( 𝜑𝑥 = 𝑦 ) → 𝑦 = ( ℩ 𝑥 𝜑 ) )
6 spsbim ( ∀ 𝑥 ( 𝜑𝜓 ) → ( [ 𝑦 / 𝑥 ] 𝜑 → [ 𝑦 / 𝑥 ] 𝜓 ) )
7 sbsbc ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜑 )
8 sbsbc ( [ 𝑦 / 𝑥 ] 𝜓[ 𝑦 / 𝑥 ] 𝜓 )
9 6 7 8 3imtr3g ( ∀ 𝑥 ( 𝜑𝜓 ) → ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜓 ) )
10 dfsbcq ( 𝑦 = ( ℩ 𝑥 𝜑 ) → ( [ 𝑦 / 𝑥 ] 𝜑[ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜑 ) )
11 dfsbcq ( 𝑦 = ( ℩ 𝑥 𝜑 ) → ( [ 𝑦 / 𝑥 ] 𝜓[ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 ) )
12 10 11 imbi12d ( 𝑦 = ( ℩ 𝑥 𝜑 ) → ( ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜓 ) ↔ ( [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜑[ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 ) ) )
13 9 12 syl5ib ( 𝑦 = ( ℩ 𝑥 𝜑 ) → ( ∀ 𝑥 ( 𝜑𝜓 ) → ( [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜑[ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 ) ) )
14 13 com23 ( 𝑦 = ( ℩ 𝑥 𝜑 ) → ( [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜑 → ( ∀ 𝑥 ( 𝜑𝜓 ) → [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 ) ) )
15 5 14 syl ( ∀ 𝑥 ( 𝜑𝑥 = 𝑦 ) → ( [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜑 → ( ∀ 𝑥 ( 𝜑𝜓 ) → [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 ) ) )
16 15 exlimiv ( ∃ 𝑦𝑥 ( 𝜑𝑥 = 𝑦 ) → ( [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜑 → ( ∀ 𝑥 ( 𝜑𝜓 ) → [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 ) ) )
17 2 3 16 sylc ( ∃! 𝑥 𝜑 → ( ∀ 𝑥 ( 𝜑𝜓 ) → [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 ) )
18 iotaexeu ( ∃! 𝑥 𝜑 → ( ℩ 𝑥 𝜑 ) ∈ V )
19 10 11 anbi12d ( 𝑦 = ( ℩ 𝑥 𝜑 ) → ( ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜓 ) ↔ ( [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜑[ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 ) ) )
20 19 imbi1d ( 𝑦 = ( ℩ 𝑥 𝜑 ) → ( ( ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜓 ) → ∃ 𝑥 ( 𝜑𝜓 ) ) ↔ ( ( [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜑[ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 ) → ∃ 𝑥 ( 𝜑𝜓 ) ) ) )
21 sbcan ( [ 𝑦 / 𝑥 ] ( 𝜑𝜓 ) ↔ ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜓 ) )
22 spesbc ( [ 𝑦 / 𝑥 ] ( 𝜑𝜓 ) → ∃ 𝑥 ( 𝜑𝜓 ) )
23 21 22 sylbir ( ( [ 𝑦 / 𝑥 ] 𝜑[ 𝑦 / 𝑥 ] 𝜓 ) → ∃ 𝑥 ( 𝜑𝜓 ) )
24 20 23 vtoclg ( ( ℩ 𝑥 𝜑 ) ∈ V → ( ( [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜑[ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 ) → ∃ 𝑥 ( 𝜑𝜓 ) ) )
25 24 expd ( ( ℩ 𝑥 𝜑 ) ∈ V → ( [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜑 → ( [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 → ∃ 𝑥 ( 𝜑𝜓 ) ) ) )
26 18 3 25 sylc ( ∃! 𝑥 𝜑 → ( [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 → ∃ 𝑥 ( 𝜑𝜓 ) ) )
27 26 anc2li ( ∃! 𝑥 𝜑 → ( [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 → ( ∃! 𝑥 𝜑 ∧ ∃ 𝑥 ( 𝜑𝜓 ) ) ) )
28 eupicka ( ( ∃! 𝑥 𝜑 ∧ ∃ 𝑥 ( 𝜑𝜓 ) ) → ∀ 𝑥 ( 𝜑𝜓 ) )
29 27 28 syl6 ( ∃! 𝑥 𝜑 → ( [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 → ∀ 𝑥 ( 𝜑𝜓 ) ) )
30 17 29 impbid ( ∃! 𝑥 𝜑 → ( ∀ 𝑥 ( 𝜑𝜓 ) ↔ [ ( ℩ 𝑥 𝜑 ) / 𝑥 ] 𝜓 ) )