MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  ccatco Structured version   Unicode version

Theorem ccatco 12751
Description: Mapping of words commutes with concatenation. (Contributed by Stefan O'Rear, 27-Aug-2015.)
Assertion
Ref Expression
ccatco  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( F  o.  ( S concat  T ) )  =  ( ( F  o.  S ) concat  ( F  o.  T ) ) )

Proof of Theorem ccatco
Dummy variables  x  y are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 lenco 12748 . . . . . . 7  |-  ( ( S  e. Word  A  /\  F : A --> B )  ->  ( # `  ( F  o.  S )
)  =  ( # `  S ) )
213adant2 1010 . . . . . 6  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( # `  ( F  o.  S ) )  =  ( # `  S
) )
3 lenco 12748 . . . . . . 7  |-  ( ( T  e. Word  A  /\  F : A --> B )  ->  ( # `  ( F  o.  T )
)  =  ( # `  T ) )
433adant1 1009 . . . . . 6  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( # `  ( F  o.  T ) )  =  ( # `  T
) )
52, 4oveq12d 6293 . . . . 5  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( ( # `  ( F  o.  S )
)  +  ( # `  ( F  o.  T
) ) )  =  ( ( # `  S
)  +  ( # `  T ) ) )
65oveq2d 6291 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( 0..^ ( (
# `  ( F  o.  S ) )  +  ( # `  ( F  o.  T )
) ) )  =  ( 0..^ ( (
# `  S )  +  ( # `  T
) ) ) )
76mpteq1d 4521 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( x  e.  ( 0..^ ( ( # `  ( F  o.  S
) )  +  (
# `  ( F  o.  T ) ) ) )  |->  if ( x  e.  ( 0..^ (
# `  ( F  o.  S ) ) ) ,  ( ( F  o.  S ) `  x ) ,  ( ( F  o.  T
) `  ( x  -  ( # `  ( F  o.  S )
) ) ) ) )  =  ( x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) ) 
|->  if ( x  e.  ( 0..^ ( # `  ( F  o.  S
) ) ) ,  ( ( F  o.  S ) `  x
) ,  ( ( F  o.  T ) `
 ( x  -  ( # `  ( F  o.  S ) ) ) ) ) ) )
82oveq2d 6291 . . . . . . . 8  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( 0..^ ( # `  ( F  o.  S
) ) )  =  ( 0..^ ( # `  S ) ) )
98adantr 465 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  -> 
( 0..^ ( # `  ( F  o.  S
) ) )  =  ( 0..^ ( # `  S ) ) )
109eleq2d 2530 . . . . . 6  |-  ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  -> 
( x  e.  ( 0..^ ( # `  ( F  o.  S )
) )  <->  x  e.  ( 0..^ ( # `  S
) ) ) )
1110ifbid 3954 . . . . 5  |-  ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  ->  if ( x  e.  ( 0..^ ( # `  ( F  o.  S )
) ) ,  ( ( F  o.  S
) `  x ) ,  ( ( F  o.  T ) `  ( x  -  ( # `
 ( F  o.  S ) ) ) ) )  =  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( ( F  o.  S
) `  x ) ,  ( ( F  o.  T ) `  ( x  -  ( # `
 ( F  o.  S ) ) ) ) ) )
12 eqeq1 2464 . . . . . 6  |-  ( ( ( F  o.  S
) `  x )  =  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( ( F  o.  S ) `  x
) ,  ( ( F  o.  T ) `
 ( x  -  ( # `  ( F  o.  S ) ) ) ) )  -> 
( ( ( F  o.  S ) `  x )  =  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) )  <->  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( ( F  o.  S ) `  x
) ,  ( ( F  o.  T ) `
 ( x  -  ( # `  ( F  o.  S ) ) ) ) )  =  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( F `  ( S `  x )
) ,  ( F `
 ( T `  ( x  -  ( # `
 S ) ) ) ) ) ) )
13 eqeq1 2464 . . . . . 6  |-  ( ( ( F  o.  T
) `  ( x  -  ( # `  ( F  o.  S )
) ) )  =  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( ( F  o.  S ) `  x
) ,  ( ( F  o.  T ) `
 ( x  -  ( # `  ( F  o.  S ) ) ) ) )  -> 
( ( ( F  o.  T ) `  ( x  -  ( # `
 ( F  o.  S ) ) ) )  =  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) )  <->  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( ( F  o.  S ) `  x
) ,  ( ( F  o.  T ) `
 ( x  -  ( # `  ( F  o.  S ) ) ) ) )  =  if ( x  e.  ( 0..^ ( # `  S ) ) ,  ( F `  ( S `  x )
) ,  ( F `
 ( T `  ( x  -  ( # `
 S ) ) ) ) ) ) )
14 wrdf 12506 . . . . . . . . . . 11  |-  ( S  e. Word  A  ->  S : ( 0..^ (
# `  S )
) --> A )
15143ad2ant1 1012 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  S : ( 0..^ (
# `  S )
) --> A )
1615adantr 465 . . . . . . . . 9  |-  ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  ->  S : ( 0..^ (
# `  S )
) --> A )
17 ffn 5722 . . . . . . . . 9  |-  ( S : ( 0..^ (
# `  S )
) --> A  ->  S  Fn  ( 0..^ ( # `  S ) ) )
1816, 17syl 16 . . . . . . . 8  |-  ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  ->  S  Fn  ( 0..^ ( # `  S
) ) )
19 fvco2 5933 . . . . . . . 8  |-  ( ( S  Fn  ( 0..^ ( # `  S
) )  /\  x  e.  ( 0..^ ( # `  S ) ) )  ->  ( ( F  o.  S ) `  x )  =  ( F `  ( S `
 x ) ) )
2018, 19sylan 471 . . . . . . 7  |-  ( ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  /\  x  e.  ( 0..^ ( # `  S
) ) )  -> 
( ( F  o.  S ) `  x
)  =  ( F `
 ( S `  x ) ) )
21 iftrue 3938 . . . . . . . 8  |-  ( x  e.  ( 0..^ (
# `  S )
)  ->  if (
x  e.  ( 0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) )  =  ( F `
 ( S `  x ) ) )
2221adantl 466 . . . . . . 7  |-  ( ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  /\  x  e.  ( 0..^ ( # `  S
) ) )  ->  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) )  =  ( F `
 ( S `  x ) ) )
2320, 22eqtr4d 2504 . . . . . 6  |-  ( ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  /\  x  e.  ( 0..^ ( # `  S
) ) )  -> 
( ( F  o.  S ) `  x
)  =  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) ) )
24 wrdf 12506 . . . . . . . . . . 11  |-  ( T  e. Word  A  ->  T : ( 0..^ (
# `  T )
) --> A )
25243ad2ant2 1013 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  T : ( 0..^ (
# `  T )
) --> A )
2625ad2antrr 725 . . . . . . . . 9  |-  ( ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  /\  -.  x  e.  (
0..^ ( # `  S
) ) )  ->  T : ( 0..^ (
# `  T )
) --> A )
27 ffn 5722 . . . . . . . . 9  |-  ( T : ( 0..^ (
# `  T )
) --> A  ->  T  Fn  ( 0..^ ( # `  T ) ) )
2826, 27syl 16 . . . . . . . 8  |-  ( ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  /\  -.  x  e.  (
0..^ ( # `  S
) ) )  ->  T  Fn  ( 0..^ ( # `  T
) ) )
29 lencl 12515 . . . . . . . . . . . . 13  |-  ( S  e. Word  A  ->  ( # `
 S )  e. 
NN0 )
3029nn0zd 10953 . . . . . . . . . . . 12  |-  ( S  e. Word  A  ->  ( # `
 S )  e.  ZZ )
31303ad2ant1 1012 . . . . . . . . . . 11  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( # `  S )  e.  ZZ )
32 fzospliti 11814 . . . . . . . . . . . 12  |-  ( ( x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) )  /\  ( # `  S
)  e.  ZZ )  ->  ( x  e.  ( 0..^ ( # `  S ) )  \/  x  e.  ( (
# `  S )..^ ( ( # `  S
)  +  ( # `  T ) ) ) ) )
3332ancoms 453 . . . . . . . . . . 11  |-  ( ( ( # `  S
)  e.  ZZ  /\  x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) ) )  ->  ( x  e.  ( 0..^ ( # `  S ) )  \/  x  e.  ( (
# `  S )..^ ( ( # `  S
)  +  ( # `  T ) ) ) ) )
3431, 33sylan 471 . . . . . . . . . 10  |-  ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  -> 
( x  e.  ( 0..^ ( # `  S
) )  \/  x  e.  ( ( # `  S
)..^ ( ( # `  S )  +  (
# `  T )
) ) ) )
3534orcanai 906 . . . . . . . . 9  |-  ( ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  /\  -.  x  e.  (
0..^ ( # `  S
) ) )  ->  x  e.  ( ( # `
 S )..^ ( ( # `  S
)  +  ( # `  T ) ) ) )
36 lencl 12515 . . . . . . . . . . . 12  |-  ( T  e. Word  A  ->  ( # `
 T )  e. 
NN0 )
3736nn0zd 10953 . . . . . . . . . . 11  |-  ( T  e. Word  A  ->  ( # `
 T )  e.  ZZ )
38373ad2ant2 1013 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( # `  T )  e.  ZZ )
3938ad2antrr 725 . . . . . . . . 9  |-  ( ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  /\  -.  x  e.  (
0..^ ( # `  S
) ) )  -> 
( # `  T )  e.  ZZ )
40 fzosubel3 11834 . . . . . . . . 9  |-  ( ( x  e.  ( (
# `  S )..^ ( ( # `  S
)  +  ( # `  T ) ) )  /\  ( # `  T
)  e.  ZZ )  ->  ( x  -  ( # `  S ) )  e.  ( 0..^ ( # `  T
) ) )
4135, 39, 40syl2anc 661 . . . . . . . 8  |-  ( ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  /\  -.  x  e.  (
0..^ ( # `  S
) ) )  -> 
( x  -  ( # `
 S ) )  e.  ( 0..^ (
# `  T )
) )
42 fvco2 5933 . . . . . . . 8  |-  ( ( T  Fn  ( 0..^ ( # `  T
) )  /\  (
x  -  ( # `  S ) )  e.  ( 0..^ ( # `  T ) ) )  ->  ( ( F  o.  T ) `  ( x  -  ( # `
 S ) ) )  =  ( F `
 ( T `  ( x  -  ( # `
 S ) ) ) ) )
4328, 41, 42syl2anc 661 . . . . . . 7  |-  ( ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  /\  -.  x  e.  (
0..^ ( # `  S
) ) )  -> 
( ( F  o.  T ) `  (
x  -  ( # `  S ) ) )  =  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) )
442oveq2d 6291 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( x  -  ( # `
 ( F  o.  S ) ) )  =  ( x  -  ( # `  S ) ) )
4544fveq2d 5861 . . . . . . . 8  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( ( F  o.  T ) `  (
x  -  ( # `  ( F  o.  S
) ) ) )  =  ( ( F  o.  T ) `  ( x  -  ( # `
 S ) ) ) )
4645ad2antrr 725 . . . . . . 7  |-  ( ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  /\  -.  x  e.  (
0..^ ( # `  S
) ) )  -> 
( ( F  o.  T ) `  (
x  -  ( # `  ( F  o.  S
) ) ) )  =  ( ( F  o.  T ) `  ( x  -  ( # `
 S ) ) ) )
47 iffalse 3941 . . . . . . . 8  |-  ( -.  x  e.  ( 0..^ ( # `  S
) )  ->  if ( x  e.  (
0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) )  =  ( F `
 ( T `  ( x  -  ( # `
 S ) ) ) ) )
4847adantl 466 . . . . . . 7  |-  ( ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  /\  -.  x  e.  (
0..^ ( # `  S
) ) )  ->  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) )  =  ( F `
 ( T `  ( x  -  ( # `
 S ) ) ) ) )
4943, 46, 483eqtr4d 2511 . . . . . 6  |-  ( ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  /\  -.  x  e.  (
0..^ ( # `  S
) ) )  -> 
( ( F  o.  T ) `  (
x  -  ( # `  ( F  o.  S
) ) ) )  =  if ( x  e.  ( 0..^ (
# `  S )
) ,  ( F `
 ( S `  x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) ) )
5012, 13, 23, 49ifbothda 3967 . . . . 5  |-  ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  ->  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( ( F  o.  S
) `  x ) ,  ( ( F  o.  T ) `  ( x  -  ( # `
 ( F  o.  S ) ) ) ) )  =  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) ) )
5111, 50eqtrd 2501 . . . 4  |-  ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  ->  if ( x  e.  ( 0..^ ( # `  ( F  o.  S )
) ) ,  ( ( F  o.  S
) `  x ) ,  ( ( F  o.  T ) `  ( x  -  ( # `
 ( F  o.  S ) ) ) ) )  =  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) ) )
5251mpteq2dva 4526 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) )  |->  if ( x  e.  ( 0..^ ( # `  ( F  o.  S )
) ) ,  ( ( F  o.  S
) `  x ) ,  ( ( F  o.  T ) `  ( x  -  ( # `
 ( F  o.  S ) ) ) ) ) )  =  ( x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) )  |->  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) ) ) )
537, 52eqtr2d 2502 . 2  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) )  |->  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) ) )  =  ( x  e.  ( 0..^ ( ( # `  ( F  o.  S )
)  +  ( # `  ( F  o.  T
) ) ) ) 
|->  if ( x  e.  ( 0..^ ( # `  ( F  o.  S
) ) ) ,  ( ( F  o.  S ) `  x
) ,  ( ( F  o.  T ) `
 ( x  -  ( # `  ( F  o.  S ) ) ) ) ) ) )
5416ffvelrnda 6012 . . . 4  |-  ( ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  /\  x  e.  ( 0..^ ( # `  S
) ) )  -> 
( S `  x
)  e.  A )
5526, 41ffvelrnd 6013 . . . 4  |-  ( ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  /\  -.  x  e.  (
0..^ ( # `  S
) ) )  -> 
( T `  (
x  -  ( # `  S ) ) )  e.  A )
5654, 55ifclda 3964 . . 3  |-  ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  ->  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( # `
 S ) ) ) )  e.  A
)
57 ccatfval 12544 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A )  ->  ( S concat  T )  =  ( x  e.  ( 0..^ ( (
# `  S )  +  ( # `  T
) ) )  |->  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( # `
 S ) ) ) ) ) )
58573adant3 1011 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( S concat  T )  =  ( x  e.  ( 0..^ ( (
# `  S )  +  ( # `  T
) ) )  |->  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( # `
 S ) ) ) ) ) )
59 simp3 993 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  F : A --> B )
6059feqmptd 5911 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  F  =  ( y  e.  A  |->  ( F `
 y ) ) )
61 fveq2 5857 . . . 4  |-  ( y  =  if ( x  e.  ( 0..^ (
# `  S )
) ,  ( S `
 x ) ,  ( T `  (
x  -  ( # `  S ) ) ) )  ->  ( F `  y )  =  ( F `  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( S `  x ) ,  ( T `  ( x  -  ( # `
 S ) ) ) ) ) )
62 fvif 5868 . . . 4  |-  ( F `
 if ( x  e.  ( 0..^ (
# `  S )
) ,  ( S `
 x ) ,  ( T `  (
x  -  ( # `  S ) ) ) ) )  =  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) )
6361, 62syl6eq 2517 . . 3  |-  ( y  =  if ( x  e.  ( 0..^ (
# `  S )
) ,  ( S `
 x ) ,  ( T `  (
x  -  ( # `  S ) ) ) )  ->  ( F `  y )  =  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) ) )
6456, 58, 60, 63fmptco 6045 . 2  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( F  o.  ( S concat  T ) )  =  ( x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) )  |->  if ( x  e.  ( 0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) ) ) )
65 ffun 5724 . . . . 5  |-  ( F : A --> B  ->  Fun  F )
66653ad2ant3 1014 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  Fun  F )
67 simp1 991 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  S  e. Word  A )
68 cofunexg 6738 . . . 4  |-  ( ( Fun  F  /\  S  e. Word  A )  ->  ( F  o.  S )  e.  _V )
6966, 67, 68syl2anc 661 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( F  o.  S
)  e.  _V )
70 simp2 992 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  T  e. Word  A )
71 cofunexg 6738 . . . 4  |-  ( ( Fun  F  /\  T  e. Word  A )  ->  ( F  o.  T )  e.  _V )
7266, 70, 71syl2anc 661 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( F  o.  T
)  e.  _V )
73 ccatfval 12544 . . 3  |-  ( ( ( F  o.  S
)  e.  _V  /\  ( F  o.  T
)  e.  _V )  ->  ( ( F  o.  S ) concat  ( F  o.  T ) )  =  ( x  e.  ( 0..^ ( ( # `  ( F  o.  S
) )  +  (
# `  ( F  o.  T ) ) ) )  |->  if ( x  e.  ( 0..^ (
# `  ( F  o.  S ) ) ) ,  ( ( F  o.  S ) `  x ) ,  ( ( F  o.  T
) `  ( x  -  ( # `  ( F  o.  S )
) ) ) ) ) )
7469, 72, 73syl2anc 661 . 2  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( ( F  o.  S ) concat  ( F  o.  T ) )  =  ( x  e.  ( 0..^ ( ( # `  ( F  o.  S
) )  +  (
# `  ( F  o.  T ) ) ) )  |->  if ( x  e.  ( 0..^ (
# `  ( F  o.  S ) ) ) ,  ( ( F  o.  S ) `  x ) ,  ( ( F  o.  T
) `  ( x  -  ( # `  ( F  o.  S )
) ) ) ) ) )
7553, 64, 743eqtr4d 2511 1  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( F  o.  ( S concat  T ) )  =  ( ( F  o.  S ) concat  ( F  o.  T ) ) )
Colors of variables: wff setvar class
Syntax hints:   -. wn 3    -> wi 4    \/ wo 368    /\ wa 369    /\ w3a 968    = wceq 1374    e. wcel 1762   _Vcvv 3106   ifcif 3932    |-> cmpt 4498    o. ccom 4996   Fun wfun 5573    Fn wfn 5574   -->wf 5575   ` cfv 5579  (class class class)co 6275   0cc0 9481    + caddc 9484    - cmin 9794   ZZcz 10853  ..^cfzo 11781   #chash 12360  Word cword 12487   concat cconcat 12489
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1596  ax-4 1607  ax-5 1675  ax-6 1714  ax-7 1734  ax-8 1764  ax-9 1766  ax-10 1781  ax-11 1786  ax-12 1798  ax-13 1961  ax-ext 2438  ax-rep 4551  ax-sep 4561  ax-nul 4569  ax-pow 4618  ax-pr 4679  ax-un 6567  ax-cnex 9537  ax-resscn 9538  ax-1cn 9539  ax-icn 9540  ax-addcl 9541  ax-addrcl 9542  ax-mulcl 9543  ax-mulrcl 9544  ax-mulcom 9545  ax-addass 9546  ax-mulass 9547  ax-distr 9548  ax-i2m1 9549  ax-1ne0 9550  ax-1rid 9551  ax-rnegex 9552  ax-rrecex 9553  ax-cnre 9554  ax-pre-lttri 9555  ax-pre-lttrn 9556  ax-pre-ltadd 9557  ax-pre-mulgt0 9558
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 969  df-3an 970  df-tru 1377  df-ex 1592  df-nf 1595  df-sb 1707  df-eu 2272  df-mo 2273  df-clab 2446  df-cleq 2452  df-clel 2455  df-nfc 2610  df-ne 2657  df-nel 2658  df-ral 2812  df-rex 2813  df-reu 2814  df-rab 2816  df-v 3108  df-sbc 3325  df-csb 3429  df-dif 3472  df-un 3474  df-in 3476  df-ss 3483  df-pss 3485  df-nul 3779  df-if 3933  df-pw 4005  df-sn 4021  df-pr 4023  df-tp 4025  df-op 4027  df-uni 4239  df-int 4276  df-iun 4320  df-br 4441  df-opab 4499  df-mpt 4500  df-tr 4534  df-eprel 4784  df-id 4788  df-po 4793  df-so 4794  df-fr 4831  df-we 4833  df-ord 4874  df-on 4875  df-lim 4876  df-suc 4877  df-xp 4998  df-rel 4999  df-cnv 5000  df-co 5001  df-dm 5002  df-rn 5003  df-res 5004  df-ima 5005  df-iota 5542  df-fun 5581  df-fn 5582  df-f 5583  df-f1 5584  df-fo 5585  df-f1o 5586  df-fv 5587  df-riota 6236  df-ov 6278  df-oprab 6279  df-mpt2 6280  df-om 6672  df-1st 6774  df-2nd 6775  df-recs 7032  df-rdg 7066  df-1o 7120  df-oadd 7124  df-er 7301  df-en 7507  df-dom 7508  df-sdom 7509  df-fin 7510  df-card 8309  df-pnf 9619  df-mnf 9620  df-xr 9621  df-ltxr 9622  df-le 9623  df-sub 9796  df-neg 9797  df-nn 10526  df-n0 10785  df-z 10854  df-uz 11072  df-fz 11662  df-fzo 11782  df-hash 12361  df-word 12495  df-concat 12497
This theorem is referenced by:  cats1co  12771  frmdgsum  15846  frmdup1  15848  efginvrel2  16534  frgpuplem  16579  frgpup1  16582
  Copyright terms: Public domain W3C validator