| Step | 
						Hyp | 
						Ref | 
						Expression | 
					
						
							| 1 | 
							
								
							 | 
							peano2nn0 | 
							⊢ ( 𝑁  ∈  ℕ0  →  ( 𝑁  +  1 )  ∈  ℕ0 )  | 
						
						
							| 2 | 
							
								
							 | 
							ackvalsuc1 | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  ( 𝑁  +  1 )  ∈  ℕ0 )  →  ( ( Ack ‘ ( 𝑀  +  1 ) ) ‘ ( 𝑁  +  1 ) )  =  ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( ( 𝑁  +  1 )  +  1 ) ) ‘ 1 ) )  | 
						
						
							| 3 | 
							
								1 2
							 | 
							sylan2 | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( Ack ‘ ( 𝑀  +  1 ) ) ‘ ( 𝑁  +  1 ) )  =  ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( ( 𝑁  +  1 )  +  1 ) ) ‘ 1 ) )  | 
						
						
							| 4 | 
							
								
							 | 
							fvexd | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( Ack ‘ 𝑀 )  ∈  V )  | 
						
						
							| 5 | 
							
								1
							 | 
							adantl | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( 𝑁  +  1 )  ∈  ℕ0 )  | 
						
						
							| 6 | 
							
								
							 | 
							eqidd | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) )  =  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) ) )  | 
						
						
							| 7 | 
							
								
							 | 
							itcovalsucov | 
							⊢ ( ( ( Ack ‘ 𝑀 )  ∈  V  ∧  ( 𝑁  +  1 )  ∈  ℕ0  ∧  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) )  =  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) ) )  →  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( ( 𝑁  +  1 )  +  1 ) )  =  ( ( Ack ‘ 𝑀 )  ∘  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) ) ) )  | 
						
						
							| 8 | 
							
								4 5 6 7
							 | 
							syl3anc | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( ( 𝑁  +  1 )  +  1 ) )  =  ( ( Ack ‘ 𝑀 )  ∘  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) ) ) )  | 
						
						
							| 9 | 
							
								8
							 | 
							fveq1d | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( ( 𝑁  +  1 )  +  1 ) ) ‘ 1 )  =  ( ( ( Ack ‘ 𝑀 )  ∘  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) ) ) ‘ 1 ) )  | 
						
						
							| 10 | 
							
								
							 | 
							ackfnnn0 | 
							⊢ ( 𝑀  ∈  ℕ0  →  ( Ack ‘ 𝑀 )  Fn  ℕ0 )  | 
						
						
							| 11 | 
							
								10
							 | 
							adantr | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( Ack ‘ 𝑀 )  Fn  ℕ0 )  | 
						
						
							| 12 | 
							
								
							 | 
							nn0ex | 
							⊢ ℕ0  ∈  V  | 
						
						
							| 13 | 
							
								12
							 | 
							a1i | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ℕ0  ∈  V )  | 
						
						
							| 14 | 
							
								
							 | 
							ackendofnn0 | 
							⊢ ( 𝑀  ∈  ℕ0  →  ( Ack ‘ 𝑀 ) : ℕ0 ⟶ ℕ0 )  | 
						
						
							| 15 | 
							
								14
							 | 
							adantr | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( Ack ‘ 𝑀 ) : ℕ0 ⟶ ℕ0 )  | 
						
						
							| 16 | 
							
								
							 | 
							simpr | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  𝑁  ∈  ℕ0 )  | 
						
						
							| 17 | 
							
								13 15 16
							 | 
							itcovalendof | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) : ℕ0 ⟶ ℕ0 )  | 
						
						
							| 18 | 
							
								17
							 | 
							ffnd | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 )  Fn  ℕ0 )  | 
						
						
							| 19 | 
							
								17
							 | 
							frnd | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ran  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 )  ⊆  ℕ0 )  | 
						
						
							| 20 | 
							
								
							 | 
							fnco | 
							⊢ ( ( ( Ack ‘ 𝑀 )  Fn  ℕ0  ∧  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 )  Fn  ℕ0  ∧  ran  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 )  ⊆  ℕ0 )  →  ( ( Ack ‘ 𝑀 )  ∘  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) )  Fn  ℕ0 )  | 
						
						
							| 21 | 
							
								11 18 19 20
							 | 
							syl3anc | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( Ack ‘ 𝑀 )  ∘  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) )  Fn  ℕ0 )  | 
						
						
							| 22 | 
							
								
							 | 
							eqidd | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 )  =  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) )  | 
						
						
							| 23 | 
							
								
							 | 
							itcovalsucov | 
							⊢ ( ( ( Ack ‘ 𝑀 )  ∈  V  ∧  𝑁  ∈  ℕ0  ∧  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 )  =  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) )  →  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) )  =  ( ( Ack ‘ 𝑀 )  ∘  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) ) )  | 
						
						
							| 24 | 
							
								4 16 22 23
							 | 
							syl3anc | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) )  =  ( ( Ack ‘ 𝑀 )  ∘  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) ) )  | 
						
						
							| 25 | 
							
								24
							 | 
							fneq1d | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) )  Fn  ℕ0  ↔  ( ( Ack ‘ 𝑀 )  ∘  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) )  Fn  ℕ0 ) )  | 
						
						
							| 26 | 
							
								21 25
							 | 
							mpbird | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) )  Fn  ℕ0 )  | 
						
						
							| 27 | 
							
								
							 | 
							1nn0 | 
							⊢ 1  ∈  ℕ0  | 
						
						
							| 28 | 
							
								
							 | 
							fvco2 | 
							⊢ ( ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) )  Fn  ℕ0  ∧  1  ∈  ℕ0 )  →  ( ( ( Ack ‘ 𝑀 )  ∘  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) ) ) ‘ 1 )  =  ( ( Ack ‘ 𝑀 ) ‘ ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) ) ‘ 1 ) ) )  | 
						
						
							| 29 | 
							
								26 27 28
							 | 
							sylancl | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( ( Ack ‘ 𝑀 )  ∘  ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) ) ) ‘ 1 )  =  ( ( Ack ‘ 𝑀 ) ‘ ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) ) ‘ 1 ) ) )  | 
						
						
							| 30 | 
							
								9 29
							 | 
							eqtrd | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( ( 𝑁  +  1 )  +  1 ) ) ‘ 1 )  =  ( ( Ack ‘ 𝑀 ) ‘ ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) ) ‘ 1 ) ) )  | 
						
						
							| 31 | 
							
								
							 | 
							ackvalsuc1 | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( Ack ‘ ( 𝑀  +  1 ) ) ‘ 𝑁 )  =  ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) ) ‘ 1 ) )  | 
						
						
							| 32 | 
							
								31
							 | 
							eqcomd | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) ) ‘ 1 )  =  ( ( Ack ‘ ( 𝑀  +  1 ) ) ‘ 𝑁 ) )  | 
						
						
							| 33 | 
							
								32
							 | 
							fveq2d | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( Ack ‘ 𝑀 ) ‘ ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁  +  1 ) ) ‘ 1 ) )  =  ( ( Ack ‘ 𝑀 ) ‘ ( ( Ack ‘ ( 𝑀  +  1 ) ) ‘ 𝑁 ) ) )  | 
						
						
							| 34 | 
							
								3 30 33
							 | 
							3eqtrd | 
							⊢ ( ( 𝑀  ∈  ℕ0  ∧  𝑁  ∈  ℕ0 )  →  ( ( Ack ‘ ( 𝑀  +  1 ) ) ‘ ( 𝑁  +  1 ) )  =  ( ( Ack ‘ 𝑀 ) ‘ ( ( Ack ‘ ( 𝑀  +  1 ) ) ‘ 𝑁 ) ) )  |