| Step | 
						Hyp | 
						Ref | 
						Expression | 
					
						
							| 1 | 
							
								
							 | 
							ccatcl | 
							⊢ ( ( 𝐴  ∈  Word  𝑉  ∧  𝐵  ∈  Word  𝑉 )  →  ( 𝐴  ++  𝐵 )  ∈  Word  𝑉 )  | 
						
						
							| 2 | 
							
								1
							 | 
							adantr | 
							⊢ ( ( ( 𝐴  ∈  Word  𝑉  ∧  𝐵  ∈  Word  𝑉 )  ∧  ( 𝑀  ∈  ( 0 ... 𝑁 )  ∧  𝑁  ∈  ( 0 ... ( ( ♯ ‘ 𝐴 )  +  ( ♯ ‘ 𝐵 ) ) ) ) )  →  ( 𝐴  ++  𝐵 )  ∈  Word  𝑉 )  | 
						
						
							| 3 | 
							
								
							 | 
							simprl | 
							⊢ ( ( ( 𝐴  ∈  Word  𝑉  ∧  𝐵  ∈  Word  𝑉 )  ∧  ( 𝑀  ∈  ( 0 ... 𝑁 )  ∧  𝑁  ∈  ( 0 ... ( ( ♯ ‘ 𝐴 )  +  ( ♯ ‘ 𝐵 ) ) ) ) )  →  𝑀  ∈  ( 0 ... 𝑁 ) )  | 
						
						
							| 4 | 
							
								
							 | 
							ccatlen | 
							⊢ ( ( 𝐴  ∈  Word  𝑉  ∧  𝐵  ∈  Word  𝑉 )  →  ( ♯ ‘ ( 𝐴  ++  𝐵 ) )  =  ( ( ♯ ‘ 𝐴 )  +  ( ♯ ‘ 𝐵 ) ) )  | 
						
						
							| 5 | 
							
								4
							 | 
							oveq2d | 
							⊢ ( ( 𝐴  ∈  Word  𝑉  ∧  𝐵  ∈  Word  𝑉 )  →  ( 0 ... ( ♯ ‘ ( 𝐴  ++  𝐵 ) ) )  =  ( 0 ... ( ( ♯ ‘ 𝐴 )  +  ( ♯ ‘ 𝐵 ) ) ) )  | 
						
						
							| 6 | 
							
								5
							 | 
							eleq2d | 
							⊢ ( ( 𝐴  ∈  Word  𝑉  ∧  𝐵  ∈  Word  𝑉 )  →  ( 𝑁  ∈  ( 0 ... ( ♯ ‘ ( 𝐴  ++  𝐵 ) ) )  ↔  𝑁  ∈  ( 0 ... ( ( ♯ ‘ 𝐴 )  +  ( ♯ ‘ 𝐵 ) ) ) ) )  | 
						
						
							| 7 | 
							
								6
							 | 
							biimpar | 
							⊢ ( ( ( 𝐴  ∈  Word  𝑉  ∧  𝐵  ∈  Word  𝑉 )  ∧  𝑁  ∈  ( 0 ... ( ( ♯ ‘ 𝐴 )  +  ( ♯ ‘ 𝐵 ) ) ) )  →  𝑁  ∈  ( 0 ... ( ♯ ‘ ( 𝐴  ++  𝐵 ) ) ) )  | 
						
						
							| 8 | 
							
								7
							 | 
							adantrl | 
							⊢ ( ( ( 𝐴  ∈  Word  𝑉  ∧  𝐵  ∈  Word  𝑉 )  ∧  ( 𝑀  ∈  ( 0 ... 𝑁 )  ∧  𝑁  ∈  ( 0 ... ( ( ♯ ‘ 𝐴 )  +  ( ♯ ‘ 𝐵 ) ) ) ) )  →  𝑁  ∈  ( 0 ... ( ♯ ‘ ( 𝐴  ++  𝐵 ) ) ) )  | 
						
						
							| 9 | 
							
								
							 | 
							swrdvalfn | 
							⊢ ( ( ( 𝐴  ++  𝐵 )  ∈  Word  𝑉  ∧  𝑀  ∈  ( 0 ... 𝑁 )  ∧  𝑁  ∈  ( 0 ... ( ♯ ‘ ( 𝐴  ++  𝐵 ) ) ) )  →  ( ( 𝐴  ++  𝐵 )  substr  〈 𝑀 ,  𝑁 〉 )  Fn  ( 0 ..^ ( 𝑁  −  𝑀 ) ) )  | 
						
						
							| 10 | 
							
								2 3 8 9
							 | 
							syl3anc | 
							⊢ ( ( ( 𝐴  ∈  Word  𝑉  ∧  𝐵  ∈  Word  𝑉 )  ∧  ( 𝑀  ∈  ( 0 ... 𝑁 )  ∧  𝑁  ∈  ( 0 ... ( ( ♯ ‘ 𝐴 )  +  ( ♯ ‘ 𝐵 ) ) ) ) )  →  ( ( 𝐴  ++  𝐵 )  substr  〈 𝑀 ,  𝑁 〉 )  Fn  ( 0 ..^ ( 𝑁  −  𝑀 ) ) )  |