Metamath Proof Explorer


Theorem tfrlem11

Description: Lemma for transfinite recursion. Compute the value of C . (Contributed by NM, 18-Aug-1994) (Revised by Mario Carneiro, 9-May-2015)

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

Proof

Step Hyp Ref Expression
1 tfrlem.1 𝐴 = { 𝑓 ∣ ∃ 𝑥 ∈ On ( 𝑓 Fn 𝑥 ∧ ∀ 𝑦𝑥 ( 𝑓𝑦 ) = ( 𝐹 ‘ ( 𝑓𝑦 ) ) ) }
2 tfrlem.3 𝐶 = ( recs ( 𝐹 ) ∪ { ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ recs ( 𝐹 ) ) ⟩ } )
3 elsuci ( 𝐵 ∈ suc dom recs ( 𝐹 ) → ( 𝐵 ∈ dom recs ( 𝐹 ) ∨ 𝐵 = dom recs ( 𝐹 ) ) )
4 1 2 tfrlem10 ( dom recs ( 𝐹 ) ∈ On → 𝐶 Fn suc dom recs ( 𝐹 ) )
5 fnfun ( 𝐶 Fn suc dom recs ( 𝐹 ) → Fun 𝐶 )
6 4 5 syl ( dom recs ( 𝐹 ) ∈ On → Fun 𝐶 )
7 ssun1 recs ( 𝐹 ) ⊆ ( recs ( 𝐹 ) ∪ { ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ recs ( 𝐹 ) ) ⟩ } )
8 7 2 sseqtrri recs ( 𝐹 ) ⊆ 𝐶
9 1 tfrlem9 ( 𝐵 ∈ dom recs ( 𝐹 ) → ( recs ( 𝐹 ) ‘ 𝐵 ) = ( 𝐹 ‘ ( recs ( 𝐹 ) ↾ 𝐵 ) ) )
10 funssfv ( ( Fun 𝐶 ∧ recs ( 𝐹 ) ⊆ 𝐶𝐵 ∈ dom recs ( 𝐹 ) ) → ( 𝐶𝐵 ) = ( recs ( 𝐹 ) ‘ 𝐵 ) )
11 10 3expa ( ( ( Fun 𝐶 ∧ recs ( 𝐹 ) ⊆ 𝐶 ) ∧ 𝐵 ∈ dom recs ( 𝐹 ) ) → ( 𝐶𝐵 ) = ( recs ( 𝐹 ) ‘ 𝐵 ) )
12 11 adantrl ( ( ( Fun 𝐶 ∧ recs ( 𝐹 ) ⊆ 𝐶 ) ∧ ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 ∈ dom recs ( 𝐹 ) ) ) → ( 𝐶𝐵 ) = ( recs ( 𝐹 ) ‘ 𝐵 ) )
13 onelss ( dom recs ( 𝐹 ) ∈ On → ( 𝐵 ∈ dom recs ( 𝐹 ) → 𝐵 ⊆ dom recs ( 𝐹 ) ) )
14 13 imp ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 ∈ dom recs ( 𝐹 ) ) → 𝐵 ⊆ dom recs ( 𝐹 ) )
15 fun2ssres ( ( Fun 𝐶 ∧ recs ( 𝐹 ) ⊆ 𝐶𝐵 ⊆ dom recs ( 𝐹 ) ) → ( 𝐶𝐵 ) = ( recs ( 𝐹 ) ↾ 𝐵 ) )
16 15 3expa ( ( ( Fun 𝐶 ∧ recs ( 𝐹 ) ⊆ 𝐶 ) ∧ 𝐵 ⊆ dom recs ( 𝐹 ) ) → ( 𝐶𝐵 ) = ( recs ( 𝐹 ) ↾ 𝐵 ) )
17 16 fveq2d ( ( ( Fun 𝐶 ∧ recs ( 𝐹 ) ⊆ 𝐶 ) ∧ 𝐵 ⊆ dom recs ( 𝐹 ) ) → ( 𝐹 ‘ ( 𝐶𝐵 ) ) = ( 𝐹 ‘ ( recs ( 𝐹 ) ↾ 𝐵 ) ) )
18 14 17 sylan2 ( ( ( Fun 𝐶 ∧ recs ( 𝐹 ) ⊆ 𝐶 ) ∧ ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 ∈ dom recs ( 𝐹 ) ) ) → ( 𝐹 ‘ ( 𝐶𝐵 ) ) = ( 𝐹 ‘ ( recs ( 𝐹 ) ↾ 𝐵 ) ) )
19 12 18 eqeq12d ( ( ( Fun 𝐶 ∧ recs ( 𝐹 ) ⊆ 𝐶 ) ∧ ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 ∈ dom recs ( 𝐹 ) ) ) → ( ( 𝐶𝐵 ) = ( 𝐹 ‘ ( 𝐶𝐵 ) ) ↔ ( recs ( 𝐹 ) ‘ 𝐵 ) = ( 𝐹 ‘ ( recs ( 𝐹 ) ↾ 𝐵 ) ) ) )
20 9 19 syl5ibr ( ( ( Fun 𝐶 ∧ recs ( 𝐹 ) ⊆ 𝐶 ) ∧ ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 ∈ dom recs ( 𝐹 ) ) ) → ( 𝐵 ∈ dom recs ( 𝐹 ) → ( 𝐶𝐵 ) = ( 𝐹 ‘ ( 𝐶𝐵 ) ) ) )
21 8 20 mpanl2 ( ( Fun 𝐶 ∧ ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 ∈ dom recs ( 𝐹 ) ) ) → ( 𝐵 ∈ dom recs ( 𝐹 ) → ( 𝐶𝐵 ) = ( 𝐹 ‘ ( 𝐶𝐵 ) ) ) )
22 6 21 sylan ( ( dom recs ( 𝐹 ) ∈ On ∧ ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 ∈ dom recs ( 𝐹 ) ) ) → ( 𝐵 ∈ dom recs ( 𝐹 ) → ( 𝐶𝐵 ) = ( 𝐹 ‘ ( 𝐶𝐵 ) ) ) )
23 22 exp32 ( dom recs ( 𝐹 ) ∈ On → ( dom recs ( 𝐹 ) ∈ On → ( 𝐵 ∈ dom recs ( 𝐹 ) → ( 𝐵 ∈ dom recs ( 𝐹 ) → ( 𝐶𝐵 ) = ( 𝐹 ‘ ( 𝐶𝐵 ) ) ) ) ) )
24 23 pm2.43i ( dom recs ( 𝐹 ) ∈ On → ( 𝐵 ∈ dom recs ( 𝐹 ) → ( 𝐵 ∈ dom recs ( 𝐹 ) → ( 𝐶𝐵 ) = ( 𝐹 ‘ ( 𝐶𝐵 ) ) ) ) )
25 24 pm2.43d ( dom recs ( 𝐹 ) ∈ On → ( 𝐵 ∈ dom recs ( 𝐹 ) → ( 𝐶𝐵 ) = ( 𝐹 ‘ ( 𝐶𝐵 ) ) ) )
26 opex 𝐵 , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ ∈ V
27 26 snid 𝐵 , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ ∈ { ⟨ 𝐵 , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ }
28 opeq1 ( 𝐵 = dom recs ( 𝐹 ) → ⟨ 𝐵 , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ = ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ )
29 28 adantl ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → ⟨ 𝐵 , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ = ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ )
30 eqimss ( 𝐵 = dom recs ( 𝐹 ) → 𝐵 ⊆ dom recs ( 𝐹 ) )
31 8 15 mp3an2 ( ( Fun 𝐶𝐵 ⊆ dom recs ( 𝐹 ) ) → ( 𝐶𝐵 ) = ( recs ( 𝐹 ) ↾ 𝐵 ) )
32 6 30 31 syl2an ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → ( 𝐶𝐵 ) = ( recs ( 𝐹 ) ↾ 𝐵 ) )
33 reseq2 ( 𝐵 = dom recs ( 𝐹 ) → ( recs ( 𝐹 ) ↾ 𝐵 ) = ( recs ( 𝐹 ) ↾ dom recs ( 𝐹 ) ) )
34 1 tfrlem6 Rel recs ( 𝐹 )
35 resdm ( Rel recs ( 𝐹 ) → ( recs ( 𝐹 ) ↾ dom recs ( 𝐹 ) ) = recs ( 𝐹 ) )
36 34 35 ax-mp ( recs ( 𝐹 ) ↾ dom recs ( 𝐹 ) ) = recs ( 𝐹 )
37 33 36 eqtrdi ( 𝐵 = dom recs ( 𝐹 ) → ( recs ( 𝐹 ) ↾ 𝐵 ) = recs ( 𝐹 ) )
38 37 adantl ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → ( recs ( 𝐹 ) ↾ 𝐵 ) = recs ( 𝐹 ) )
39 32 38 eqtrd ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → ( 𝐶𝐵 ) = recs ( 𝐹 ) )
40 39 fveq2d ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → ( 𝐹 ‘ ( 𝐶𝐵 ) ) = ( 𝐹 ‘ recs ( 𝐹 ) ) )
41 40 opeq2d ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ = ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ recs ( 𝐹 ) ) ⟩ )
42 29 41 eqtrd ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → ⟨ 𝐵 , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ = ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ recs ( 𝐹 ) ) ⟩ )
43 42 sneqd ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → { ⟨ 𝐵 , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ } = { ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ recs ( 𝐹 ) ) ⟩ } )
44 27 43 eleqtrid ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → ⟨ 𝐵 , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ ∈ { ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ recs ( 𝐹 ) ) ⟩ } )
45 elun2 ( ⟨ 𝐵 , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ ∈ { ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ recs ( 𝐹 ) ) ⟩ } → ⟨ 𝐵 , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ ∈ ( recs ( 𝐹 ) ∪ { ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ recs ( 𝐹 ) ) ⟩ } ) )
46 44 45 syl ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → ⟨ 𝐵 , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ ∈ ( recs ( 𝐹 ) ∪ { ⟨ dom recs ( 𝐹 ) , ( 𝐹 ‘ recs ( 𝐹 ) ) ⟩ } ) )
47 46 2 eleqtrrdi ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → ⟨ 𝐵 , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ ∈ 𝐶 )
48 simpr ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → 𝐵 = dom recs ( 𝐹 ) )
49 sucidg ( dom recs ( 𝐹 ) ∈ On → dom recs ( 𝐹 ) ∈ suc dom recs ( 𝐹 ) )
50 49 adantr ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → dom recs ( 𝐹 ) ∈ suc dom recs ( 𝐹 ) )
51 48 50 eqeltrd ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → 𝐵 ∈ suc dom recs ( 𝐹 ) )
52 fnopfvb ( ( 𝐶 Fn suc dom recs ( 𝐹 ) ∧ 𝐵 ∈ suc dom recs ( 𝐹 ) ) → ( ( 𝐶𝐵 ) = ( 𝐹 ‘ ( 𝐶𝐵 ) ) ↔ ⟨ 𝐵 , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ ∈ 𝐶 ) )
53 4 51 52 syl2an2r ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → ( ( 𝐶𝐵 ) = ( 𝐹 ‘ ( 𝐶𝐵 ) ) ↔ ⟨ 𝐵 , ( 𝐹 ‘ ( 𝐶𝐵 ) ) ⟩ ∈ 𝐶 ) )
54 47 53 mpbird ( ( dom recs ( 𝐹 ) ∈ On ∧ 𝐵 = dom recs ( 𝐹 ) ) → ( 𝐶𝐵 ) = ( 𝐹 ‘ ( 𝐶𝐵 ) ) )
55 54 ex ( dom recs ( 𝐹 ) ∈ On → ( 𝐵 = dom recs ( 𝐹 ) → ( 𝐶𝐵 ) = ( 𝐹 ‘ ( 𝐶𝐵 ) ) ) )
56 25 55 jaod ( dom recs ( 𝐹 ) ∈ On → ( ( 𝐵 ∈ dom recs ( 𝐹 ) ∨ 𝐵 = dom recs ( 𝐹 ) ) → ( 𝐶𝐵 ) = ( 𝐹 ‘ ( 𝐶𝐵 ) ) ) )
57 3 56 syl5 ( dom recs ( 𝐹 ) ∈ On → ( 𝐵 ∈ suc dom recs ( 𝐹 ) → ( 𝐶𝐵 ) = ( 𝐹 ‘ ( 𝐶𝐵 ) ) ) )