| Step | Hyp | Ref | Expression | 
						
							| 1 |  | ccatcl |  |-  ( ( A e. Word V /\ B e. Word V ) -> ( A ++ B ) e. Word V ) | 
						
							| 2 | 1 | adantr |  |-  ( ( ( A e. Word V /\ B e. Word V ) /\ ( M e. ( 0 ... N ) /\ N e. ( 0 ... ( ( # ` A ) + ( # ` B ) ) ) ) ) -> ( A ++ B ) e. Word V ) | 
						
							| 3 |  | simprl |  |-  ( ( ( A e. Word V /\ B e. Word V ) /\ ( M e. ( 0 ... N ) /\ N e. ( 0 ... ( ( # ` A ) + ( # ` B ) ) ) ) ) -> M e. ( 0 ... N ) ) | 
						
							| 4 |  | ccatlen |  |-  ( ( A e. Word V /\ B e. Word V ) -> ( # ` ( A ++ B ) ) = ( ( # ` A ) + ( # ` B ) ) ) | 
						
							| 5 | 4 | oveq2d |  |-  ( ( A e. Word V /\ B e. Word V ) -> ( 0 ... ( # ` ( A ++ B ) ) ) = ( 0 ... ( ( # ` A ) + ( # ` B ) ) ) ) | 
						
							| 6 | 5 | eleq2d |  |-  ( ( A e. Word V /\ B e. Word V ) -> ( N e. ( 0 ... ( # ` ( A ++ B ) ) ) <-> N e. ( 0 ... ( ( # ` A ) + ( # ` B ) ) ) ) ) | 
						
							| 7 | 6 | biimpar |  |-  ( ( ( A e. Word V /\ B e. Word V ) /\ N e. ( 0 ... ( ( # ` A ) + ( # ` B ) ) ) ) -> N e. ( 0 ... ( # ` ( A ++ B ) ) ) ) | 
						
							| 8 | 7 | adantrl |  |-  ( ( ( A e. Word V /\ B e. Word V ) /\ ( M e. ( 0 ... N ) /\ N e. ( 0 ... ( ( # ` A ) + ( # ` B ) ) ) ) ) -> N e. ( 0 ... ( # ` ( A ++ B ) ) ) ) | 
						
							| 9 |  | swrdvalfn |  |-  ( ( ( A ++ B ) e. Word V /\ M e. ( 0 ... N ) /\ N e. ( 0 ... ( # ` ( A ++ B ) ) ) ) -> ( ( A ++ B ) substr <. M , N >. ) Fn ( 0 ..^ ( N - M ) ) ) | 
						
							| 10 | 2 3 8 9 | syl3anc |  |-  ( ( ( A e. Word V /\ B e. Word V ) /\ ( M e. ( 0 ... N ) /\ N e. ( 0 ... ( ( # ` A ) + ( # ` B ) ) ) ) ) -> ( ( A ++ B ) substr <. M , N >. ) Fn ( 0 ..^ ( N - M ) ) ) |