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

Theorem ccatco 12447
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 12444 . . . . . . 7  |-  ( ( S  e. Word  A  /\  F : A --> B )  ->  ( # `  ( F  o.  S )
)  =  ( # `  S ) )
213adant2 1000 . . . . . 6  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( # `  ( F  o.  S ) )  =  ( # `  S
) )
3 lenco 12444 . . . . . . 7  |-  ( ( T  e. Word  A  /\  F : A --> B )  ->  ( # `  ( F  o.  T )
)  =  ( # `  T ) )
433adant1 999 . . . . . 6  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( # `  ( F  o.  T ) )  =  ( # `  T
) )
52, 4oveq12d 6098 . . . . 5  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( ( # `  ( F  o.  S )
)  +  ( # `  ( F  o.  T
) ) )  =  ( ( # `  S
)  +  ( # `  T ) ) )
65oveq2d 6096 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( 0..^ ( (
# `  ( F  o.  S ) )  +  ( # `  ( F  o.  T )
) ) )  =  ( 0..^ ( (
# `  S )  +  ( # `  T
) ) ) )
76mpteq1d 4361 . . 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 6096 . . . . . . . 8  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( 0..^ ( # `  ( F  o.  S
) ) )  =  ( 0..^ ( # `  S ) ) )
98adantr 462 . . . . . . 7  |-  ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  -> 
( 0..^ ( # `  ( F  o.  S
) ) )  =  ( 0..^ ( # `  S ) ) )
109eleq2d 2500 . . . . . 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 3799 . . . . 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 2439 . . . . . 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 2439 . . . . . 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 12224 . . . . . . . . . . 11  |-  ( S  e. Word  A  ->  S : ( 0..^ (
# `  S )
) --> A )
15143ad2ant1 1002 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  S : ( 0..^ (
# `  S )
) --> A )
1615adantr 462 . . . . . . . . 9  |-  ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  ->  S : ( 0..^ (
# `  S )
) --> A )
17 ffn 5547 . . . . . . . . 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 5754 . . . . . . . 8  |-  ( ( S  Fn  ( 0..^ ( # `  S
) )  /\  x  e.  ( 0..^ ( # `  S ) ) )  ->  ( ( F  o.  S ) `  x )  =  ( F `  ( S `
 x ) ) )
2018, 19sylan 468 . . . . . . 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 3785 . . . . . . . 8  |-  ( x  e.  ( 0..^ (
# `  S )
)  ->  if (
x  e.  ( 0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) )  =  ( F `
 ( S `  x ) ) )
2221adantl 463 . . . . . . 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 2468 . . . . . 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 12224 . . . . . . . . . . 11  |-  ( T  e. Word  A  ->  T : ( 0..^ (
# `  T )
) --> A )
25243ad2ant2 1003 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  T : ( 0..^ (
# `  T )
) --> A )
2625ad2antrr 718 . . . . . . . . 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 5547 . . . . . . . . 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 12233 . . . . . . . . . . . . 13  |-  ( S  e. Word  A  ->  ( # `
 S )  e. 
NN0 )
3029nn0zd 10733 . . . . . . . . . . . 12  |-  ( S  e. Word  A  ->  ( # `
 S )  e.  ZZ )
31303ad2ant1 1002 . . . . . . . . . . 11  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( # `  S )  e.  ZZ )
32 fzospliti 11565 . . . . . . . . . . . 12  |-  ( ( x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) )  /\  ( # `  S
)  e.  ZZ )  ->  ( x  e.  ( 0..^ ( # `  S ) )  \/  x  e.  ( (
# `  S )..^ ( ( # `  S
)  +  ( # `  T ) ) ) ) )
3332ancoms 450 . . . . . . . . . . 11  |-  ( ( ( # `  S
)  e.  ZZ  /\  x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) ) )  ->  ( x  e.  ( 0..^ ( # `  S ) )  \/  x  e.  ( (
# `  S )..^ ( ( # `  S
)  +  ( # `  T ) ) ) ) )
3431, 33sylan 468 . . . . . . . . . 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 897 . . . . . . . . 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 12233 . . . . . . . . . . . 12  |-  ( T  e. Word  A  ->  ( # `
 T )  e. 
NN0 )
3736nn0zd 10733 . . . . . . . . . . 11  |-  ( T  e. Word  A  ->  ( # `
 T )  e.  ZZ )
38373ad2ant2 1003 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( # `  T )  e.  ZZ )
3938ad2antrr 718 . . . . . . . . 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 11585 . . . . . . . . 9  |-  ( ( x  e.  ( (
# `  S )..^ ( ( # `  S
)  +  ( # `  T ) ) )  /\  ( # `  T
)  e.  ZZ )  ->  ( x  -  ( # `  S ) )  e.  ( 0..^ ( # `  T
) ) )
4135, 39, 40syl2anc 654 . . . . . . . 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 5754 . . . . . . . 8  |-  ( ( T  Fn  ( 0..^ ( # `  T
) )  /\  (
x  -  ( # `  S ) )  e.  ( 0..^ ( # `  T ) ) )  ->  ( ( F  o.  T ) `  ( x  -  ( # `
 S ) ) )  =  ( F `
 ( T `  ( x  -  ( # `
 S ) ) ) ) )
4328, 41, 42syl2anc 654 . . . . . . 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 6096 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( x  -  ( # `
 ( F  o.  S ) ) )  =  ( x  -  ( # `  S ) ) )
4544fveq2d 5683 . . . . . . . 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 718 . . . . . . 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 3787 . . . . . . . 8  |-  ( -.  x  e.  ( 0..^ ( # `  S
) )  ->  if ( x  e.  (
0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) )  =  ( F `
 ( T `  ( x  -  ( # `
 S ) ) ) ) )
4847adantl 463 . . . . . . 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 2475 . . . . . 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 3812 . . . . 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 2465 . . . 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 4366 . . 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 2466 . 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 5831 . . . 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 5832 . . . 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 3809 . . 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 12257 . . . 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 1001 . . 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 983 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  F : A --> B )
6059feqmptd 5732 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  F  =  ( y  e.  A  |->  ( F `
 y ) ) )
61 fveq2 5679 . . . 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 5690 . . . 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 2481 . . 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 5863 . 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 5549 . . . . 5  |-  ( F : A --> B  ->  Fun  F )
66653ad2ant3 1004 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  Fun  F )
67 simp1 981 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  S  e. Word  A )
68 cofunexg 6530 . . . 4  |-  ( ( Fun  F  /\  S  e. Word  A )  ->  ( F  o.  S )  e.  _V )
6966, 67, 68syl2anc 654 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( F  o.  S
)  e.  _V )
70 simp2 982 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  T  e. Word  A )
71 cofunexg 6530 . . . 4  |-  ( ( Fun  F  /\  T  e. Word  A )  ->  ( F  o.  T )  e.  _V )
7266, 70, 71syl2anc 654 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( F  o.  T
)  e.  _V )
73 ccatfval 12257 . . 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 654 . 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 2475 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 958    = wceq 1362    e. wcel 1755   _Vcvv 2962   ifcif 3779    e. cmpt 4338    o. ccom 4831   Fun wfun 5400    Fn wfn 5401   -->wf 5402   ` cfv 5406  (class class class)co 6080   0cc0 9270    + caddc 9273    - cmin 9583   ZZcz 10634  ..^cfzo 11532   #chash 12087  Word cword 12205   concat cconcat 12207
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1594  ax-4 1605  ax-5 1669  ax-6 1707  ax-7 1727  ax-8 1757  ax-9 1759  ax-10 1774  ax-11 1779  ax-12 1791  ax-13 1942  ax-ext 2414  ax-rep 4391  ax-sep 4401  ax-nul 4409  ax-pow 4458  ax-pr 4519  ax-un 6361  ax-cnex 9326  ax-resscn 9327  ax-1cn 9328  ax-icn 9329  ax-addcl 9330  ax-addrcl 9331  ax-mulcl 9332  ax-mulrcl 9333  ax-mulcom 9334  ax-addass 9335  ax-mulass 9336  ax-distr 9337  ax-i2m1 9338  ax-1ne0 9339  ax-1rid 9340  ax-rnegex 9341  ax-rrecex 9342  ax-cnre 9343  ax-pre-lttri 9344  ax-pre-lttrn 9345  ax-pre-ltadd 9346  ax-pre-mulgt0 9347
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 959  df-3an 960  df-tru 1365  df-ex 1590  df-nf 1593  df-sb 1700  df-eu 2258  df-mo 2259  df-clab 2420  df-cleq 2426  df-clel 2429  df-nfc 2558  df-ne 2598  df-nel 2599  df-ral 2710  df-rex 2711  df-reu 2712  df-rab 2714  df-v 2964  df-sbc 3176  df-csb 3277  df-dif 3319  df-un 3321  df-in 3323  df-ss 3330  df-pss 3332  df-nul 3626  df-if 3780  df-pw 3850  df-sn 3866  df-pr 3868  df-tp 3870  df-op 3872  df-uni 4080  df-int 4117  df-iun 4161  df-br 4281  df-opab 4339  df-mpt 4340  df-tr 4374  df-eprel 4619  df-id 4623  df-po 4628  df-so 4629  df-fr 4666  df-we 4668  df-ord 4709  df-on 4710  df-lim 4711  df-suc 4712  df-xp 4833  df-rel 4834  df-cnv 4835  df-co 4836  df-dm 4837  df-rn 4838  df-res 4839  df-ima 4840  df-iota 5369  df-fun 5408  df-fn 5409  df-f 5410  df-f1 5411  df-fo 5412  df-f1o 5413  df-fv 5414  df-riota 6039  df-ov 6083  df-oprab 6084  df-mpt2 6085  df-om 6466  df-1st 6566  df-2nd 6567  df-recs 6818  df-rdg 6852  df-1o 6908  df-oadd 6912  df-er 7089  df-en 7299  df-dom 7300  df-sdom 7301  df-fin 7302  df-card 8097  df-pnf 9408  df-mnf 9409  df-xr 9410  df-ltxr 9411  df-le 9412  df-sub 9585  df-neg 9586  df-nn 10311  df-n0 10568  df-z 10635  df-uz 10850  df-fz 11425  df-fzo 11533  df-hash 12088  df-word 12213  df-concat 12215
This theorem is referenced by:  cats1co  12467  frmdgsum  15520  frmdup1  15522  efginvrel2  16204  frgpuplem  16249  frgpup1  16252
  Copyright terms: Public domain W3C validator