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

Theorem ccatco 12455
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 12452 . . . . . . 7  |-  ( ( S  e. Word  A  /\  F : A --> B )  ->  ( # `  ( F  o.  S )
)  =  ( # `  S ) )
213adant2 1007 . . . . . 6  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( # `  ( F  o.  S ) )  =  ( # `  S
) )
3 lenco 12452 . . . . . . 7  |-  ( ( T  e. Word  A  /\  F : A --> B )  ->  ( # `  ( F  o.  T )
)  =  ( # `  T ) )
433adant1 1006 . . . . . 6  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( # `  ( F  o.  T ) )  =  ( # `  T
) )
52, 4oveq12d 6104 . . . . 5  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( ( # `  ( F  o.  S )
)  +  ( # `  ( F  o.  T
) ) )  =  ( ( # `  S
)  +  ( # `  T ) ) )
65oveq2d 6102 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( 0..^ ( (
# `  ( F  o.  S ) )  +  ( # `  ( F  o.  T )
) ) )  =  ( 0..^ ( (
# `  S )  +  ( # `  T
) ) ) )
76mpteq1d 4368 . . 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 6102 . . . . . . . 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 2505 . . . . . 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 3806 . . . . 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 2444 . . . . . 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 2444 . . . . . 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 12232 . . . . . . . . . . 11  |-  ( S  e. Word  A  ->  S : ( 0..^ (
# `  S )
) --> A )
15143ad2ant1 1009 . . . . . . . . . 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 5554 . . . . . . . . 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 5761 . . . . . . . 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 3792 . . . . . . . 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 2473 . . . . . 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 12232 . . . . . . . . . . 11  |-  ( T  e. Word  A  ->  T : ( 0..^ (
# `  T )
) --> A )
25243ad2ant2 1010 . . . . . . . . . 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 5554 . . . . . . . . 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 12241 . . . . . . . . . . . . 13  |-  ( S  e. Word  A  ->  ( # `
 S )  e. 
NN0 )
3029nn0zd 10737 . . . . . . . . . . . 12  |-  ( S  e. Word  A  ->  ( # `
 S )  e.  ZZ )
31303ad2ant1 1009 . . . . . . . . . . 11  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( # `  S )  e.  ZZ )
32 fzospliti 11573 . . . . . . . . . . . 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 904 . . . . . . . . 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 12241 . . . . . . . . . . . 12  |-  ( T  e. Word  A  ->  ( # `
 T )  e. 
NN0 )
3736nn0zd 10737 . . . . . . . . . . 11  |-  ( T  e. Word  A  ->  ( # `
 T )  e.  ZZ )
38373ad2ant2 1010 . . . . . . . . . 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 11593 . . . . . . . . 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 5761 . . . . . . . 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 6102 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( x  -  ( # `
 ( F  o.  S ) ) )  =  ( x  -  ( # `  S ) ) )
4544fveq2d 5690 . . . . . . . 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 3794 . . . . . . . 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 2480 . . . . . 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 3819 . . . . 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 2470 . . . 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 4373 . . 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 2471 . 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 5838 . . . 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 5839 . . . 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 3816 . . 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 12265 . . . 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 1008 . . 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 990 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  F : A --> B )
6059feqmptd 5739 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  F  =  ( y  e.  A  |->  ( F `
 y ) ) )
61 fveq2 5686 . . . 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 5697 . . . 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 2486 . . 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 5871 . 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 5556 . . . . 5  |-  ( F : A --> B  ->  Fun  F )
66653ad2ant3 1011 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  Fun  F )
67 simp1 988 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  S  e. Word  A )
68 cofunexg 6536 . . . 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 989 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  T  e. Word  A )
71 cofunexg 6536 . . . 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 12265 . . 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 2480 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 965    = wceq 1369    e. wcel 1756   _Vcvv 2967   ifcif 3786    e. cmpt 4345    o. ccom 4839   Fun wfun 5407    Fn wfn 5408   -->wf 5409   ` cfv 5413  (class class class)co 6086   0cc0 9274    + caddc 9277    - cmin 9587   ZZcz 10638  ..^cfzo 11540   #chash 12095  Word cword 12213   concat cconcat 12215
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1591  ax-4 1602  ax-5 1670  ax-6 1708  ax-7 1728  ax-8 1758  ax-9 1760  ax-10 1775  ax-11 1780  ax-12 1792  ax-13 1943  ax-ext 2419  ax-rep 4398  ax-sep 4408  ax-nul 4416  ax-pow 4465  ax-pr 4526  ax-un 6367  ax-cnex 9330  ax-resscn 9331  ax-1cn 9332  ax-icn 9333  ax-addcl 9334  ax-addrcl 9335  ax-mulcl 9336  ax-mulrcl 9337  ax-mulcom 9338  ax-addass 9339  ax-mulass 9340  ax-distr 9341  ax-i2m1 9342  ax-1ne0 9343  ax-1rid 9344  ax-rnegex 9345  ax-rrecex 9346  ax-cnre 9347  ax-pre-lttri 9348  ax-pre-lttrn 9349  ax-pre-ltadd 9350  ax-pre-mulgt0 9351
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 966  df-3an 967  df-tru 1372  df-ex 1587  df-nf 1590  df-sb 1701  df-eu 2256  df-mo 2257  df-clab 2425  df-cleq 2431  df-clel 2434  df-nfc 2563  df-ne 2603  df-nel 2604  df-ral 2715  df-rex 2716  df-reu 2717  df-rab 2719  df-v 2969  df-sbc 3182  df-csb 3284  df-dif 3326  df-un 3328  df-in 3330  df-ss 3337  df-pss 3339  df-nul 3633  df-if 3787  df-pw 3857  df-sn 3873  df-pr 3875  df-tp 3877  df-op 3879  df-uni 4087  df-int 4124  df-iun 4168  df-br 4288  df-opab 4346  df-mpt 4347  df-tr 4381  df-eprel 4627  df-id 4631  df-po 4636  df-so 4637  df-fr 4674  df-we 4676  df-ord 4717  df-on 4718  df-lim 4719  df-suc 4720  df-xp 4841  df-rel 4842  df-cnv 4843  df-co 4844  df-dm 4845  df-rn 4846  df-res 4847  df-ima 4848  df-iota 5376  df-fun 5415  df-fn 5416  df-f 5417  df-f1 5418  df-fo 5419  df-f1o 5420  df-fv 5421  df-riota 6047  df-ov 6089  df-oprab 6090  df-mpt2 6091  df-om 6472  df-1st 6572  df-2nd 6573  df-recs 6824  df-rdg 6858  df-1o 6912  df-oadd 6916  df-er 7093  df-en 7303  df-dom 7304  df-sdom 7305  df-fin 7306  df-card 8101  df-pnf 9412  df-mnf 9413  df-xr 9414  df-ltxr 9415  df-le 9416  df-sub 9589  df-neg 9590  df-nn 10315  df-n0 10572  df-z 10639  df-uz 10854  df-fz 11430  df-fzo 11541  df-hash 12096  df-word 12221  df-concat 12223
This theorem is referenced by:  cats1co  12475  frmdgsum  15531  frmdup1  15533  efginvrel2  16215  frgpuplem  16260  frgpup1  16263
  Copyright terms: Public domain W3C validator