Metamath Proof Explorer


Theorem tfrlem12

Description: Lemma for transfinite recursion. Show C is an acceptable function. (Contributed by NM, 15-Aug-1994) (Revised by Mario Carneiro, 9-May-2015)

Ref Expression
Hypotheses tfrlem.1 𝐴 = { 𝑓 ∣ ∃ 𝑥 ∈ On ( 𝑓 Fn 𝑥 ∧ ∀ 𝑦𝑥 ( 𝑓𝑦 ) = ( 𝐹 ‘ ( 𝑓𝑦 ) ) ) }
tfrlem.3 𝐶 = ( recs ( 𝐹 ) ∪ { ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ recs ( 𝐹 ) ) ⟩ } )
Assertion tfrlem12 ( recs ( 𝐹 ) ∈ V → 𝐶𝐴 )

Proof

Step Hyp Ref Expression
1 tfrlem.1 𝐴 = { 𝑓 ∣ ∃ 𝑥 ∈ On ( 𝑓 Fn 𝑥 ∧ ∀ 𝑦𝑥 ( 𝑓𝑦 ) = ( 𝐹 ‘ ( 𝑓𝑦 ) ) ) }
2 tfrlem.3 𝐶 = ( recs ( 𝐹 ) ∪ { ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ recs ( 𝐹 ) ) ⟩ } )
3 1 tfrlem8 Ord dom recs ( 𝐹 )
4 3 a1i ( recs ( 𝐹 ) ∈ V → Ord dom recs ( 𝐹 ) )
5 dmexg ( recs ( 𝐹 ) ∈ V → dom recs ( 𝐹 ) ∈ V )
6 elon2 ( dom recs ( 𝐹 ) ∈ On ↔ ( Ord dom recs ( 𝐹 ) ∧ dom recs ( 𝐹 ) ∈ V ) )
7 4 5 6 sylanbrc ( recs ( 𝐹 ) ∈ V → dom recs ( 𝐹 ) ∈ On )
8 suceloni ( dom recs ( 𝐹 ) ∈ On → suc dom recs ( 𝐹 ) ∈ On )
9 1 2 tfrlem10 ( dom recs ( 𝐹 ) ∈ On → 𝐶 Fn suc dom recs ( 𝐹 ) )
10 1 2 tfrlem11 ( dom recs ( 𝐹 ) ∈ On → ( 𝑧 ∈ suc dom recs ( 𝐹 ) → ( 𝐶𝑧 ) = ( 𝐹 ‘ ( 𝐶𝑧 ) ) ) )
11 10 ralrimiv ( dom recs ( 𝐹 ) ∈ On → ∀ 𝑧 ∈ suc dom recs ( 𝐹 ) ( 𝐶𝑧 ) = ( 𝐹 ‘ ( 𝐶𝑧 ) ) )
12 fveq2 ( 𝑧 = 𝑦 → ( 𝐶𝑧 ) = ( 𝐶𝑦 ) )
13 reseq2 ( 𝑧 = 𝑦 → ( 𝐶𝑧 ) = ( 𝐶𝑦 ) )
14 13 fveq2d ( 𝑧 = 𝑦 → ( 𝐹 ‘ ( 𝐶𝑧 ) ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) )
15 12 14 eqeq12d ( 𝑧 = 𝑦 → ( ( 𝐶𝑧 ) = ( 𝐹 ‘ ( 𝐶𝑧 ) ) ↔ ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) ) )
16 15 cbvralvw ( ∀ 𝑧 ∈ suc dom recs ( 𝐹 ) ( 𝐶𝑧 ) = ( 𝐹 ‘ ( 𝐶𝑧 ) ) ↔ ∀ 𝑦 ∈ suc dom recs ( 𝐹 ) ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) )
17 11 16 sylib ( dom recs ( 𝐹 ) ∈ On → ∀ 𝑦 ∈ suc dom recs ( 𝐹 ) ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) )
18 fneq2 ( 𝑥 = suc dom recs ( 𝐹 ) → ( 𝐶 Fn 𝑥𝐶 Fn suc dom recs ( 𝐹 ) ) )
19 raleq ( 𝑥 = suc dom recs ( 𝐹 ) → ( ∀ 𝑦𝑥 ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) ↔ ∀ 𝑦 ∈ suc dom recs ( 𝐹 ) ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) ) )
20 18 19 anbi12d ( 𝑥 = suc dom recs ( 𝐹 ) → ( ( 𝐶 Fn 𝑥 ∧ ∀ 𝑦𝑥 ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) ) ↔ ( 𝐶 Fn suc dom recs ( 𝐹 ) ∧ ∀ 𝑦 ∈ suc dom recs ( 𝐹 ) ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) ) ) )
21 20 rspcev ( ( suc dom recs ( 𝐹 ) ∈ On ∧ ( 𝐶 Fn suc dom recs ( 𝐹 ) ∧ ∀ 𝑦 ∈ suc dom recs ( 𝐹 ) ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) ) ) → ∃ 𝑥 ∈ On ( 𝐶 Fn 𝑥 ∧ ∀ 𝑦𝑥 ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) ) )
22 8 9 17 21 syl12anc ( dom recs ( 𝐹 ) ∈ On → ∃ 𝑥 ∈ On ( 𝐶 Fn 𝑥 ∧ ∀ 𝑦𝑥 ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) ) )
23 7 22 syl ( recs ( 𝐹 ) ∈ V → ∃ 𝑥 ∈ On ( 𝐶 Fn 𝑥 ∧ ∀ 𝑦𝑥 ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) ) )
24 snex { ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ recs ( 𝐹 ) ) ⟩ } ∈ V
25 unexg ( ( recs ( 𝐹 ) ∈ V ∧ { ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ recs ( 𝐹 ) ) ⟩ } ∈ V ) → ( recs ( 𝐹 ) ∪ { ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ recs ( 𝐹 ) ) ⟩ } ) ∈ V )
26 24 25 mpan2 ( recs ( 𝐹 ) ∈ V → ( recs ( 𝐹 ) ∪ { ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ recs ( 𝐹 ) ) ⟩ } ) ∈ V )
27 2 26 eqeltrid ( recs ( 𝐹 ) ∈ V → 𝐶 ∈ V )
28 fneq1 ( 𝑓 = 𝐶 → ( 𝑓 Fn 𝑥𝐶 Fn 𝑥 ) )
29 fveq1 ( 𝑓 = 𝐶 → ( 𝑓𝑦 ) = ( 𝐶𝑦 ) )
30 reseq1 ( 𝑓 = 𝐶 → ( 𝑓𝑦 ) = ( 𝐶𝑦 ) )
31 30 fveq2d ( 𝑓 = 𝐶 → ( 𝐹 ‘ ( 𝑓𝑦 ) ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) )
32 29 31 eqeq12d ( 𝑓 = 𝐶 → ( ( 𝑓𝑦 ) = ( 𝐹 ‘ ( 𝑓𝑦 ) ) ↔ ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) ) )
33 32 ralbidv ( 𝑓 = 𝐶 → ( ∀ 𝑦𝑥 ( 𝑓𝑦 ) = ( 𝐹 ‘ ( 𝑓𝑦 ) ) ↔ ∀ 𝑦𝑥 ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) ) )
34 28 33 anbi12d ( 𝑓 = 𝐶 → ( ( 𝑓 Fn 𝑥 ∧ ∀ 𝑦𝑥 ( 𝑓𝑦 ) = ( 𝐹 ‘ ( 𝑓𝑦 ) ) ) ↔ ( 𝐶 Fn 𝑥 ∧ ∀ 𝑦𝑥 ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) ) ) )
35 34 rexbidv ( 𝑓 = 𝐶 → ( ∃ 𝑥 ∈ On ( 𝑓 Fn 𝑥 ∧ ∀ 𝑦𝑥 ( 𝑓𝑦 ) = ( 𝐹 ‘ ( 𝑓𝑦 ) ) ) ↔ ∃ 𝑥 ∈ On ( 𝐶 Fn 𝑥 ∧ ∀ 𝑦𝑥 ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) ) ) )
36 35 1 elab2g ( 𝐶 ∈ V → ( 𝐶𝐴 ↔ ∃ 𝑥 ∈ On ( 𝐶 Fn 𝑥 ∧ ∀ 𝑦𝑥 ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) ) ) )
37 27 36 syl ( recs ( 𝐹 ) ∈ V → ( 𝐶𝐴 ↔ ∃ 𝑥 ∈ On ( 𝐶 Fn 𝑥 ∧ ∀ 𝑦𝑥 ( 𝐶𝑦 ) = ( 𝐹 ‘ ( 𝐶𝑦 ) ) ) ) )
38 23 37 mpbird ( recs ( 𝐹 ) ∈ V → 𝐶𝐴 )