Metamath Proof Explorer


Theorem dfatcolem

Description: Lemma for dfatco . (Contributed by AV, 8-Sep-2022)

Ref Expression
Assertion dfatcolem ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ∃! 𝑦 𝑋 ( 𝐹𝐺 ) 𝑦 )

Proof

Step Hyp Ref Expression
1 dfdfat2 ( 𝐹 defAt ( 𝐺 '''' 𝑋 ) ↔ ( ( 𝐺 '''' 𝑋 ) ∈ dom 𝐹 ∧ ∃! 𝑦 ( 𝐺 '''' 𝑋 ) 𝐹 𝑦 ) )
2 eqidd ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( 𝐺 '''' 𝑋 ) = ( 𝐺 '''' 𝑋 ) )
3 df-dfat ( 𝐹 defAt ( 𝐺 '''' 𝑋 ) ↔ ( ( 𝐺 '''' 𝑋 ) ∈ dom 𝐹 ∧ Fun ( 𝐹 ↾ { ( 𝐺 '''' 𝑋 ) } ) ) )
4 3 simplbi ( 𝐹 defAt ( 𝐺 '''' 𝑋 ) → ( 𝐺 '''' 𝑋 ) ∈ dom 𝐹 )
5 dfatbrafv2b ( ( 𝐺 defAt 𝑋 ∧ ( 𝐺 '''' 𝑋 ) ∈ dom 𝐹 ) → ( ( 𝐺 '''' 𝑋 ) = ( 𝐺 '''' 𝑋 ) ↔ 𝑋 𝐺 ( 𝐺 '''' 𝑋 ) ) )
6 4 5 sylan2 ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( ( 𝐺 '''' 𝑋 ) = ( 𝐺 '''' 𝑋 ) ↔ 𝑋 𝐺 ( 𝐺 '''' 𝑋 ) ) )
7 2 6 mpbid ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → 𝑋 𝐺 ( 𝐺 '''' 𝑋 ) )
8 eqidd ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) = ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) )
9 simpr ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → 𝐹 defAt ( 𝐺 '''' 𝑋 ) )
10 dfatafv2ex ( 𝐹 defAt ( 𝐺 '''' 𝑋 ) → ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ∈ V )
11 10 adantl ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ∈ V )
12 dfatbrafv2b ( ( 𝐹 defAt ( 𝐺 '''' 𝑋 ) ∧ ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ∈ V ) → ( ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) = ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ↔ ( 𝐺 '''' 𝑋 ) 𝐹 ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ) )
13 9 11 12 syl2anc ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) = ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ↔ ( 𝐺 '''' 𝑋 ) 𝐹 ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ) )
14 8 13 mpbid ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( 𝐺 '''' 𝑋 ) 𝐹 ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) )
15 4 adantl ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( 𝐺 '''' 𝑋 ) ∈ dom 𝐹 )
16 breq2 ( 𝑧 = ( 𝐺 '''' 𝑋 ) → ( 𝑋 𝐺 𝑧𝑋 𝐺 ( 𝐺 '''' 𝑋 ) ) )
17 16 adantl ( ( 𝑦 = ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ∧ 𝑧 = ( 𝐺 '''' 𝑋 ) ) → ( 𝑋 𝐺 𝑧𝑋 𝐺 ( 𝐺 '''' 𝑋 ) ) )
18 breq12 ( ( 𝑧 = ( 𝐺 '''' 𝑋 ) ∧ 𝑦 = ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ) → ( 𝑧 𝐹 𝑦 ↔ ( 𝐺 '''' 𝑋 ) 𝐹 ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ) )
19 18 ancoms ( ( 𝑦 = ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ∧ 𝑧 = ( 𝐺 '''' 𝑋 ) ) → ( 𝑧 𝐹 𝑦 ↔ ( 𝐺 '''' 𝑋 ) 𝐹 ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ) )
20 17 19 anbi12d ( ( 𝑦 = ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ∧ 𝑧 = ( 𝐺 '''' 𝑋 ) ) → ( ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) ↔ ( 𝑋 𝐺 ( 𝐺 '''' 𝑋 ) ∧ ( 𝐺 '''' 𝑋 ) 𝐹 ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ) ) )
21 20 spc2egv ( ( ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ∈ V ∧ ( 𝐺 '''' 𝑋 ) ∈ dom 𝐹 ) → ( ( 𝑋 𝐺 ( 𝐺 '''' 𝑋 ) ∧ ( 𝐺 '''' 𝑋 ) 𝐹 ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ) → ∃ 𝑦𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) ) )
22 11 15 21 syl2anc ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( ( 𝑋 𝐺 ( 𝐺 '''' 𝑋 ) ∧ ( 𝐺 '''' 𝑋 ) 𝐹 ( 𝐹 '''' ( 𝐺 '''' 𝑋 ) ) ) → ∃ 𝑦𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) ) )
23 7 14 22 mp2and ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ∃ 𝑦𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) )
24 dfdfat2 ( 𝐺 defAt 𝑋 ↔ ( 𝑋 ∈ dom 𝐺 ∧ ∃! 𝑧 𝑋 𝐺 𝑧 ) )
25 tz6.12c-afv2 ( ∃! 𝑧 𝑋 𝐺 𝑧 → ( ( 𝐺 '''' 𝑋 ) = 𝑧𝑋 𝐺 𝑧 ) )
26 25 adantl ( ( 𝑋 ∈ dom 𝐺 ∧ ∃! 𝑧 𝑋 𝐺 𝑧 ) → ( ( 𝐺 '''' 𝑋 ) = 𝑧𝑋 𝐺 𝑧 ) )
27 24 26 sylbi ( 𝐺 defAt 𝑋 → ( ( 𝐺 '''' 𝑋 ) = 𝑧𝑋 𝐺 𝑧 ) )
28 27 adantr ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( ( 𝐺 '''' 𝑋 ) = 𝑧𝑋 𝐺 𝑧 ) )
29 breq1 ( ( 𝐺 '''' 𝑋 ) = 𝑧 → ( ( 𝐺 '''' 𝑋 ) 𝐹 𝑦𝑧 𝐹 𝑦 ) )
30 29 adantl ( ( 𝐹 defAt ( 𝐺 '''' 𝑋 ) ∧ ( 𝐺 '''' 𝑋 ) = 𝑧 ) → ( ( 𝐺 '''' 𝑋 ) 𝐹 𝑦𝑧 𝐹 𝑦 ) )
31 30 exbiri ( 𝐹 defAt ( 𝐺 '''' 𝑋 ) → ( ( 𝐺 '''' 𝑋 ) = 𝑧 → ( 𝑧 𝐹 𝑦 → ( 𝐺 '''' 𝑋 ) 𝐹 𝑦 ) ) )
32 31 adantl ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( ( 𝐺 '''' 𝑋 ) = 𝑧 → ( 𝑧 𝐹 𝑦 → ( 𝐺 '''' 𝑋 ) 𝐹 𝑦 ) ) )
33 28 32 sylbird ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( 𝑋 𝐺 𝑧 → ( 𝑧 𝐹 𝑦 → ( 𝐺 '''' 𝑋 ) 𝐹 𝑦 ) ) )
34 33 impd ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) → ( 𝐺 '''' 𝑋 ) 𝐹 𝑦 ) )
35 34 exlimdv ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( ∃ 𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) → ( 𝐺 '''' 𝑋 ) 𝐹 𝑦 ) )
36 35 alrimiv ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ∀ 𝑦 ( ∃ 𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) → ( 𝐺 '''' 𝑋 ) 𝐹 𝑦 ) )
37 euim ( ( ∃ 𝑦𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) ∧ ∀ 𝑦 ( ∃ 𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) → ( 𝐺 '''' 𝑋 ) 𝐹 𝑦 ) ) → ( ∃! 𝑦 ( 𝐺 '''' 𝑋 ) 𝐹 𝑦 → ∃! 𝑦𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) ) )
38 23 36 37 syl2anc ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( ∃! 𝑦 ( 𝐺 '''' 𝑋 ) 𝐹 𝑦 → ∃! 𝑦𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) ) )
39 38 com12 ( ∃! 𝑦 ( 𝐺 '''' 𝑋 ) 𝐹 𝑦 → ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ∃! 𝑦𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) ) )
40 39 adantl ( ( ( 𝐺 '''' 𝑋 ) ∈ dom 𝐹 ∧ ∃! 𝑦 ( 𝐺 '''' 𝑋 ) 𝐹 𝑦 ) → ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ∃! 𝑦𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) ) )
41 40 adantl ( ( 𝐺 defAt 𝑋 ∧ ( ( 𝐺 '''' 𝑋 ) ∈ dom 𝐹 ∧ ∃! 𝑦 ( 𝐺 '''' 𝑋 ) 𝐹 𝑦 ) ) → ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ∃! 𝑦𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) ) )
42 1 41 sylan2b ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ∃! 𝑦𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) ) )
43 42 pm2.43i ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ∃! 𝑦𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) )
44 df-dfat ( 𝐺 defAt 𝑋 ↔ ( 𝑋 ∈ dom 𝐺 ∧ Fun ( 𝐺 ↾ { 𝑋 } ) ) )
45 44 simplbi ( 𝐺 defAt 𝑋𝑋 ∈ dom 𝐺 )
46 vex 𝑦 ∈ V
47 46 a1i ( 𝐹 defAt ( 𝐺 '''' 𝑋 ) → 𝑦 ∈ V )
48 brcog ( ( 𝑋 ∈ dom 𝐺𝑦 ∈ V ) → ( 𝑋 ( 𝐹𝐺 ) 𝑦 ↔ ∃ 𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) ) )
49 45 47 48 syl2an ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( 𝑋 ( 𝐹𝐺 ) 𝑦 ↔ ∃ 𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) ) )
50 49 eubidv ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ( ∃! 𝑦 𝑋 ( 𝐹𝐺 ) 𝑦 ↔ ∃! 𝑦𝑧 ( 𝑋 𝐺 𝑧𝑧 𝐹 𝑦 ) ) )
51 43 50 mpbird ( ( 𝐺 defAt 𝑋𝐹 defAt ( 𝐺 '''' 𝑋 ) ) → ∃! 𝑦 𝑋 ( 𝐹𝐺 ) 𝑦 )