| 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 ..^ ( 𝑁  −  𝑀 ) ) ) |