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

Theorem ccatco 11809
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 11806 . . . . . . 7  |-  ( ( S  e. Word  A  /\  F : A --> B )  ->  ( # `  ( F  o.  S )
)  =  ( # `  S ) )
213adant2 977 . . . . . 6  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( # `  ( F  o.  S ) )  =  ( # `  S
) )
3 lenco 11806 . . . . . . 7  |-  ( ( T  e. Word  A  /\  F : A --> B )  ->  ( # `  ( F  o.  T )
)  =  ( # `  T ) )
433adant1 976 . . . . . 6  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( # `  ( F  o.  T ) )  =  ( # `  T
) )
52, 4oveq12d 6102 . . . . 5  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( ( # `  ( F  o.  S )
)  +  ( # `  ( F  o.  T
) ) )  =  ( ( # `  S
)  +  ( # `  T ) ) )
65oveq2d 6100 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( 0..^ ( (
# `  ( F  o.  S ) )  +  ( # `  ( F  o.  T )
) ) )  =  ( 0..^ ( (
# `  S )  +  ( # `  T
) ) ) )
76mpteq1d 4293 . . 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 6100 . . . . . . . 8  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( 0..^ ( # `  ( F  o.  S
) ) )  =  ( 0..^ ( # `  S ) ) )
98adantr 453 . . . . . . 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 3759 . . . . 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 11738 . . . . . . . . . . 11  |-  ( S  e. Word  A  ->  S : ( 0..^ (
# `  S )
) --> A )
15143ad2ant1 979 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  S : ( 0..^ (
# `  S )
) --> A )
1615adantr 453 . . . . . . . . 9  |-  ( ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  /\  x  e.  ( 0..^ ( ( # `  S )  +  (
# `  T )
) ) )  ->  S : ( 0..^ (
# `  S )
) --> A )
17 ffn 5594 . . . . . . . . 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 5801 . . . . . . . 8  |-  ( ( S  Fn  ( 0..^ ( # `  S
) )  /\  x  e.  ( 0..^ ( # `  S ) ) )  ->  ( ( F  o.  S ) `  x )  =  ( F `  ( S `
 x ) ) )
2018, 19sylan 459 . . . . . . 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 3747 . . . . . . . 8  |-  ( x  e.  ( 0..^ (
# `  S )
)  ->  if (
x  e.  ( 0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) )  =  ( F `
 ( S `  x ) ) )
2221adantl 454 . . . . . . 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 11738 . . . . . . . . . . 11  |-  ( T  e. Word  A  ->  T : ( 0..^ (
# `  T )
) --> A )
25243ad2ant2 980 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  T : ( 0..^ (
# `  T )
) --> A )
2625ad2antrr 708 . . . . . . . . 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 5594 . . . . . . . . 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 11740 . . . . . . . . . . . . 13  |-  ( S  e. Word  A  ->  ( # `
 S )  e. 
NN0 )
3029nn0zd 10378 . . . . . . . . . . . 12  |-  ( S  e. Word  A  ->  ( # `
 S )  e.  ZZ )
31303ad2ant1 979 . . . . . . . . . . 11  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( # `  S )  e.  ZZ )
32 fzospliti 11170 . . . . . . . . . . . 12  |-  ( ( x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) )  /\  ( # `  S
)  e.  ZZ )  ->  ( x  e.  ( 0..^ ( # `  S ) )  \/  x  e.  ( (
# `  S )..^ ( ( # `  S
)  +  ( # `  T ) ) ) ) )
3332ancoms 441 . . . . . . . . . . 11  |-  ( ( ( # `  S
)  e.  ZZ  /\  x  e.  ( 0..^ ( ( # `  S
)  +  ( # `  T ) ) ) )  ->  ( x  e.  ( 0..^ ( # `  S ) )  \/  x  e.  ( (
# `  S )..^ ( ( # `  S
)  +  ( # `  T ) ) ) ) )
3431, 33sylan 459 . . . . . . . . . 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 881 . . . . . . . . 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 11740 . . . . . . . . . . . 12  |-  ( T  e. Word  A  ->  ( # `
 T )  e. 
NN0 )
3736nn0zd 10378 . . . . . . . . . . 11  |-  ( T  e. Word  A  ->  ( # `
 T )  e.  ZZ )
38373ad2ant2 980 . . . . . . . . . 10  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( # `  T )  e.  ZZ )
3938ad2antrr 708 . . . . . . . . 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 11184 . . . . . . . . 9  |-  ( ( x  e.  ( (
# `  S )..^ ( ( # `  S
)  +  ( # `  T ) ) )  /\  ( # `  T
)  e.  ZZ )  ->  ( x  -  ( # `  S ) )  e.  ( 0..^ ( # `  T
) ) )
4135, 39, 40syl2anc 644 . . . . . . . 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 5801 . . . . . . . 8  |-  ( ( T  Fn  ( 0..^ ( # `  T
) )  /\  (
x  -  ( # `  S ) )  e.  ( 0..^ ( # `  T ) ) )  ->  ( ( F  o.  T ) `  ( x  -  ( # `
 S ) ) )  =  ( F `
 ( T `  ( x  -  ( # `
 S ) ) ) ) )
4328, 41, 42syl2anc 644 . . . . . . 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 6100 . . . . . . . . 9  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( x  -  ( # `
 ( F  o.  S ) ) )  =  ( x  -  ( # `  S ) ) )
4544fveq2d 5735 . . . . . . . 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 708 . . . . . . 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 3748 . . . . . . . 8  |-  ( -.  x  e.  ( 0..^ ( # `  S
) )  ->  if ( x  e.  (
0..^ ( # `  S
) ) ,  ( F `  ( S `
 x ) ) ,  ( F `  ( T `  ( x  -  ( # `  S
) ) ) ) )  =  ( F `
 ( T `  ( x  -  ( # `
 S ) ) ) ) )
4847adantl 454 . . . . . . 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 3771 . . . . 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 4298 . . 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 5873 . . . 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 5874 . . . 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 3768 . . 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 11747 . . . 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 978 . . 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 960 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  F : A --> B )
6059feqmptd 5782 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  F  =  ( y  e.  A  |->  ( F `
 y ) ) )
61 fveq2 5731 . . . 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 5746 . . . 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 5904 . 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 5596 . . . . 5  |-  ( F : A --> B  ->  Fun  F )
66653ad2ant3 981 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  Fun  F )
67 simp1 958 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  S  e. Word  A )
68 cofunexg 5962 . . . 4  |-  ( ( Fun  F  /\  S  e. Word  A )  ->  ( F  o.  S )  e.  _V )
6966, 67, 68syl2anc 644 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( F  o.  S
)  e.  _V )
70 simp2 959 . . . 4  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  ->  T  e. Word  A )
71 cofunexg 5962 . . . 4  |-  ( ( Fun  F  /\  T  e. Word  A )  ->  ( F  o.  T )  e.  _V )
7266, 70, 71syl2anc 644 . . 3  |-  ( ( S  e. Word  A  /\  T  e. Word  A  /\  F : A --> B )  -> 
( F  o.  T
)  e.  _V )
73 ccatfval 11747 . . 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 644 . 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 set class
Syntax hints:   -. wn 3    -> wi 4    \/ wo 359    /\ wa 360    /\ w3a 937    = wceq 1653    e. wcel 1726   _Vcvv 2958   ifcif 3741    e. cmpt 4269    o. ccom 4885   Fun wfun 5451    Fn wfn 5452   -->wf 5453   ` cfv 5457  (class class class)co 6084   0cc0 8995    + caddc 8998    - cmin 9296   ZZcz 10287  ..^cfzo 11140   #chash 11623  Word cword 11722   concat cconcat 11723
This theorem is referenced by:  cats1co  11825  frmdgsum  14812  frmdup1  14814  efginvrel2  15364  frgpuplem  15409  frgpup1  15412
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1556  ax-5 1567  ax-17 1627  ax-9 1667  ax-8 1688  ax-13 1728  ax-14 1730  ax-6 1745  ax-7 1750  ax-11 1762  ax-12 1951  ax-ext 2419  ax-rep 4323  ax-sep 4333  ax-nul 4341  ax-pow 4380  ax-pr 4406  ax-un 4704  ax-cnex 9051  ax-resscn 9052  ax-1cn 9053  ax-icn 9054  ax-addcl 9055  ax-addrcl 9056  ax-mulcl 9057  ax-mulrcl 9058  ax-mulcom 9059  ax-addass 9060  ax-mulass 9061  ax-distr 9062  ax-i2m1 9063  ax-1ne0 9064  ax-1rid 9065  ax-rnegex 9066  ax-rrecex 9067  ax-cnre 9068  ax-pre-lttri 9069  ax-pre-lttrn 9070  ax-pre-ltadd 9071  ax-pre-mulgt0 9072
This theorem depends on definitions:  df-bi 179  df-or 361  df-an 362  df-3or 938  df-3an 939  df-tru 1329  df-ex 1552  df-nf 1555  df-sb 1660  df-eu 2287  df-mo 2288  df-clab 2425  df-cleq 2431  df-clel 2434  df-nfc 2563  df-ne 2603  df-nel 2604  df-ral 2712  df-rex 2713  df-reu 2714  df-rab 2716  df-v 2960  df-sbc 3164  df-csb 3254  df-dif 3325  df-un 3327  df-in 3329  df-ss 3336  df-pss 3338  df-nul 3631  df-if 3742  df-pw 3803  df-sn 3822  df-pr 3823  df-tp 3824  df-op 3825  df-uni 4018  df-int 4053  df-iun 4097  df-br 4216  df-opab 4270  df-mpt 4271  df-tr 4306  df-eprel 4497  df-id 4501  df-po 4506  df-so 4507  df-fr 4544  df-we 4546  df-ord 4587  df-on 4588  df-lim 4589  df-suc 4590  df-om 4849  df-xp 4887  df-rel 4888  df-cnv 4889  df-co 4890  df-dm 4891  df-rn 4892  df-res 4893  df-ima 4894  df-iota 5421  df-fun 5459  df-fn 5460  df-f 5461  df-f1 5462  df-fo 5463  df-f1o 5464  df-fv 5465  df-ov 6087  df-oprab 6088  df-mpt2 6089  df-1st 6352  df-2nd 6353  df-riota 6552  df-recs 6636  df-rdg 6671  df-1o 6727  df-oadd 6731  df-er 6908  df-en 7113  df-dom 7114  df-sdom 7115  df-fin 7116  df-card 7831  df-pnf 9127  df-mnf 9128  df-xr 9129  df-ltxr 9130  df-le 9131  df-sub 9298  df-neg 9299  df-nn 10006  df-n0 10227  df-z 10288  df-uz 10494  df-fz 11049  df-fzo 11141  df-hash 11624  df-word 11728  df-concat 11729
  Copyright terms: Public domain W3C validator