| Step | Hyp | Ref | Expression | 
						
							| 1 |  | naddcnff | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) : ( 𝑆  ×  𝑆 ) ⟶ 𝑆 ) | 
						
							| 2 |  | simpr | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  𝑓  ∈  𝑆 )  →  𝑓  ∈  𝑆 ) | 
						
							| 3 |  | peano1 | ⊢ ∅  ∈  ω | 
						
							| 4 |  | fconst6g | ⊢ ( ∅  ∈  ω  →  ( 𝑋  ×  { ∅ } ) : 𝑋 ⟶ ω ) | 
						
							| 5 | 3 4 | mp1i | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  ( 𝑋  ×  { ∅ } ) : 𝑋 ⟶ ω ) | 
						
							| 6 |  | simpl | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  𝑋  ∈  On ) | 
						
							| 7 | 3 | a1i | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  ∅  ∈  ω ) | 
						
							| 8 | 6 7 | fczfsuppd | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  ( 𝑋  ×  { ∅ } )  finSupp  ∅ ) | 
						
							| 9 |  | simpr | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  𝑆  =  dom  ( ω  CNF  𝑋 ) ) | 
						
							| 10 | 9 | eleq2d | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  ( ( 𝑋  ×  { ∅ } )  ∈  𝑆  ↔  ( 𝑋  ×  { ∅ } )  ∈  dom  ( ω  CNF  𝑋 ) ) ) | 
						
							| 11 |  | eqid | ⊢ dom  ( ω  CNF  𝑋 )  =  dom  ( ω  CNF  𝑋 ) | 
						
							| 12 |  | omelon | ⊢ ω  ∈  On | 
						
							| 13 | 12 | a1i | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  ω  ∈  On ) | 
						
							| 14 | 11 13 6 | cantnfs | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  ( ( 𝑋  ×  { ∅ } )  ∈  dom  ( ω  CNF  𝑋 )  ↔  ( ( 𝑋  ×  { ∅ } ) : 𝑋 ⟶ ω  ∧  ( 𝑋  ×  { ∅ } )  finSupp  ∅ ) ) ) | 
						
							| 15 | 10 14 | bitrd | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  ( ( 𝑋  ×  { ∅ } )  ∈  𝑆  ↔  ( ( 𝑋  ×  { ∅ } ) : 𝑋 ⟶ ω  ∧  ( 𝑋  ×  { ∅ } )  finSupp  ∅ ) ) ) | 
						
							| 16 | 5 8 15 | mpbir2and | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) | 
						
							| 17 | 16 | adantr | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  𝑓  ∈  𝑆 )  →  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) | 
						
							| 18 |  | simpl | ⊢ ( ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 )  →  𝑓  ∈  𝑆 ) | 
						
							| 19 | 18 | adantl | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  →  𝑓  ∈  𝑆 ) | 
						
							| 20 |  | simpr | ⊢ ( ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 )  →  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) | 
						
							| 21 | 20 | adantl | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  →  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) | 
						
							| 22 | 19 21 | ovresd | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  →  ( 𝑓 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) ( 𝑋  ×  { ∅ } ) )  =  ( 𝑓  ∘f   +o  ( 𝑋  ×  { ∅ } ) ) ) | 
						
							| 23 | 9 | eleq2d | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  ( 𝑓  ∈  𝑆  ↔  𝑓  ∈  dom  ( ω  CNF  𝑋 ) ) ) | 
						
							| 24 | 11 13 6 | cantnfs | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  ( 𝑓  ∈  dom  ( ω  CNF  𝑋 )  ↔  ( 𝑓 : 𝑋 ⟶ ω  ∧  𝑓  finSupp  ∅ ) ) ) | 
						
							| 25 | 23 24 | bitrd | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  ( 𝑓  ∈  𝑆  ↔  ( 𝑓 : 𝑋 ⟶ ω  ∧  𝑓  finSupp  ∅ ) ) ) | 
						
							| 26 | 25 | biimpd | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  ( 𝑓  ∈  𝑆  →  ( 𝑓 : 𝑋 ⟶ ω  ∧  𝑓  finSupp  ∅ ) ) ) | 
						
							| 27 |  | simpl | ⊢ ( ( 𝑓 : 𝑋 ⟶ ω  ∧  𝑓  finSupp  ∅ )  →  𝑓 : 𝑋 ⟶ ω ) | 
						
							| 28 | 18 26 27 | syl56 | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  ( ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 )  →  𝑓 : 𝑋 ⟶ ω ) ) | 
						
							| 29 | 28 | imp | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  →  𝑓 : 𝑋 ⟶ ω ) | 
						
							| 30 | 29 | ffnd | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  →  𝑓  Fn  𝑋 ) | 
						
							| 31 |  | fnconstg | ⊢ ( ∅  ∈  ω  →  ( 𝑋  ×  { ∅ } )  Fn  𝑋 ) | 
						
							| 32 | 3 31 | mp1i | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  →  ( 𝑋  ×  { ∅ } )  Fn  𝑋 ) | 
						
							| 33 | 6 | adantr | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  →  𝑋  ∈  On ) | 
						
							| 34 |  | inidm | ⊢ ( 𝑋  ∩  𝑋 )  =  𝑋 | 
						
							| 35 | 30 32 33 33 34 | offn | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  →  ( 𝑓  ∘f   +o  ( 𝑋  ×  { ∅ } ) )  Fn  𝑋 ) | 
						
							| 36 | 30 | adantr | ⊢ ( ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  ∧  𝑥  ∈  𝑋 )  →  𝑓  Fn  𝑋 ) | 
						
							| 37 | 3 31 | mp1i | ⊢ ( ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  ∧  𝑥  ∈  𝑋 )  →  ( 𝑋  ×  { ∅ } )  Fn  𝑋 ) | 
						
							| 38 |  | simplll | ⊢ ( ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  ∧  𝑥  ∈  𝑋 )  →  𝑋  ∈  On ) | 
						
							| 39 |  | simpr | ⊢ ( ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  ∧  𝑥  ∈  𝑋 )  →  𝑥  ∈  𝑋 ) | 
						
							| 40 |  | fnfvof | ⊢ ( ( ( 𝑓  Fn  𝑋  ∧  ( 𝑋  ×  { ∅ } )  Fn  𝑋 )  ∧  ( 𝑋  ∈  On  ∧  𝑥  ∈  𝑋 ) )  →  ( ( 𝑓  ∘f   +o  ( 𝑋  ×  { ∅ } ) ) ‘ 𝑥 )  =  ( ( 𝑓 ‘ 𝑥 )  +o  ( ( 𝑋  ×  { ∅ } ) ‘ 𝑥 ) ) ) | 
						
							| 41 | 36 37 38 39 40 | syl22anc | ⊢ ( ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  ∧  𝑥  ∈  𝑋 )  →  ( ( 𝑓  ∘f   +o  ( 𝑋  ×  { ∅ } ) ) ‘ 𝑥 )  =  ( ( 𝑓 ‘ 𝑥 )  +o  ( ( 𝑋  ×  { ∅ } ) ‘ 𝑥 ) ) ) | 
						
							| 42 | 3 | a1i | ⊢ ( ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  ∧  𝑥  ∈  𝑋 )  →  ∅  ∈  ω ) | 
						
							| 43 |  | fvconst2g | ⊢ ( ( ∅  ∈  ω  ∧  𝑥  ∈  𝑋 )  →  ( ( 𝑋  ×  { ∅ } ) ‘ 𝑥 )  =  ∅ ) | 
						
							| 44 | 42 39 43 | syl2anc | ⊢ ( ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  ∧  𝑥  ∈  𝑋 )  →  ( ( 𝑋  ×  { ∅ } ) ‘ 𝑥 )  =  ∅ ) | 
						
							| 45 | 44 | oveq2d | ⊢ ( ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  ∧  𝑥  ∈  𝑋 )  →  ( ( 𝑓 ‘ 𝑥 )  +o  ( ( 𝑋  ×  { ∅ } ) ‘ 𝑥 ) )  =  ( ( 𝑓 ‘ 𝑥 )  +o  ∅ ) ) | 
						
							| 46 | 29 | ffvelcdmda | ⊢ ( ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  ∧  𝑥  ∈  𝑋 )  →  ( 𝑓 ‘ 𝑥 )  ∈  ω ) | 
						
							| 47 |  | nnon | ⊢ ( ( 𝑓 ‘ 𝑥 )  ∈  ω  →  ( 𝑓 ‘ 𝑥 )  ∈  On ) | 
						
							| 48 |  | oa0 | ⊢ ( ( 𝑓 ‘ 𝑥 )  ∈  On  →  ( ( 𝑓 ‘ 𝑥 )  +o  ∅ )  =  ( 𝑓 ‘ 𝑥 ) ) | 
						
							| 49 | 46 47 48 | 3syl | ⊢ ( ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  ∧  𝑥  ∈  𝑋 )  →  ( ( 𝑓 ‘ 𝑥 )  +o  ∅ )  =  ( 𝑓 ‘ 𝑥 ) ) | 
						
							| 50 | 41 45 49 | 3eqtrd | ⊢ ( ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  ∧  𝑥  ∈  𝑋 )  →  ( ( 𝑓  ∘f   +o  ( 𝑋  ×  { ∅ } ) ) ‘ 𝑥 )  =  ( 𝑓 ‘ 𝑥 ) ) | 
						
							| 51 | 35 30 50 | eqfnfvd | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  →  ( 𝑓  ∘f   +o  ( 𝑋  ×  { ∅ } ) )  =  𝑓 ) | 
						
							| 52 | 22 51 | eqtr2d | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  ( 𝑓  ∈  𝑆  ∧  ( 𝑋  ×  { ∅ } )  ∈  𝑆 ) )  →  𝑓  =  ( 𝑓 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) ( 𝑋  ×  { ∅ } ) ) ) | 
						
							| 53 | 52 | expr | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  𝑓  ∈  𝑆 )  →  ( ( 𝑋  ×  { ∅ } )  ∈  𝑆  →  𝑓  =  ( 𝑓 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) ( 𝑋  ×  { ∅ } ) ) ) ) | 
						
							| 54 | 17 53 | jcai | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  𝑓  ∈  𝑆 )  →  ( ( 𝑋  ×  { ∅ } )  ∈  𝑆  ∧  𝑓  =  ( 𝑓 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) ( 𝑋  ×  { ∅ } ) ) ) ) | 
						
							| 55 |  | oveq2 | ⊢ ( 𝑧  =  ( 𝑋  ×  { ∅ } )  →  ( 𝑓 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) 𝑧 )  =  ( 𝑓 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) ( 𝑋  ×  { ∅ } ) ) ) | 
						
							| 56 | 55 | rspceeqv | ⊢ ( ( ( 𝑋  ×  { ∅ } )  ∈  𝑆  ∧  𝑓  =  ( 𝑓 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) ( 𝑋  ×  { ∅ } ) ) )  →  ∃ 𝑧  ∈  𝑆 𝑓  =  ( 𝑓 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) 𝑧 ) ) | 
						
							| 57 | 54 56 | syl | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  𝑓  ∈  𝑆 )  →  ∃ 𝑧  ∈  𝑆 𝑓  =  ( 𝑓 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) 𝑧 ) ) | 
						
							| 58 |  | oveq1 | ⊢ ( 𝑔  =  𝑓  →  ( 𝑔 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) 𝑧 )  =  ( 𝑓 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) 𝑧 ) ) | 
						
							| 59 | 58 | eqeq2d | ⊢ ( 𝑔  =  𝑓  →  ( 𝑓  =  ( 𝑔 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) 𝑧 )  ↔  𝑓  =  ( 𝑓 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) 𝑧 ) ) ) | 
						
							| 60 | 59 | rexbidv | ⊢ ( 𝑔  =  𝑓  →  ( ∃ 𝑧  ∈  𝑆 𝑓  =  ( 𝑔 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) 𝑧 )  ↔  ∃ 𝑧  ∈  𝑆 𝑓  =  ( 𝑓 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) 𝑧 ) ) ) | 
						
							| 61 | 60 | rspcev | ⊢ ( ( 𝑓  ∈  𝑆  ∧  ∃ 𝑧  ∈  𝑆 𝑓  =  ( 𝑓 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) 𝑧 ) )  →  ∃ 𝑔  ∈  𝑆 ∃ 𝑧  ∈  𝑆 𝑓  =  ( 𝑔 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) 𝑧 ) ) | 
						
							| 62 | 2 57 61 | syl2anc | ⊢ ( ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  ∧  𝑓  ∈  𝑆 )  →  ∃ 𝑔  ∈  𝑆 ∃ 𝑧  ∈  𝑆 𝑓  =  ( 𝑔 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) 𝑧 ) ) | 
						
							| 63 | 62 | ralrimiva | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  ∀ 𝑓  ∈  𝑆 ∃ 𝑔  ∈  𝑆 ∃ 𝑧  ∈  𝑆 𝑓  =  ( 𝑔 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) 𝑧 ) ) | 
						
							| 64 |  | foov | ⊢ ( (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) : ( 𝑆  ×  𝑆 ) –onto→ 𝑆  ↔  ( (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) : ( 𝑆  ×  𝑆 ) ⟶ 𝑆  ∧  ∀ 𝑓  ∈  𝑆 ∃ 𝑔  ∈  𝑆 ∃ 𝑧  ∈  𝑆 𝑓  =  ( 𝑔 (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) 𝑧 ) ) ) | 
						
							| 65 | 1 63 64 | sylanbrc | ⊢ ( ( 𝑋  ∈  On  ∧  𝑆  =  dom  ( ω  CNF  𝑋 ) )  →  (  ∘f   +o   ↾  ( 𝑆  ×  𝑆 ) ) : ( 𝑆  ×  𝑆 ) –onto→ 𝑆 ) |