HomeHome Metamath Proof Explorer
Theorem List (p. 129 of 410)
< Previous  Next >
Browser slow? Try the
Unicode version.

Mirrors  >  Metamath Home Page  >  MPE Home Page  >  Theorem List Contents  >  Recent Proofs       This page: Page List

Color key:    Metamath Proof Explorer  Metamath Proof Explorer
(1-26627)
  Hilbert Space Explorer  Hilbert Space Explorer
(26628-28150)
  Users' Mathboxes  Users' Mathboxes
(28151-40909)
 

Theorem List for Metamath Proof Explorer - 12801-12900   *Has distinct variable group(s)
TypeLabelDescription
Statement
 
Theoremccatw2s1len 12801 The length of the concatenation of a word with two singleton words. (Contributed by Alexander van der Vekens, 22-Sep-2018.)
 |-  ( ( W  e. Word  V 
 /\  X  e.  V  /\  Y  e.  V ) 
 ->  ( # `  (
 ( W ++  <" X "> ) ++  <" Y "> ) )  =  ( ( # `  W )  +  2 )
 )
 
Theoremccats1val1 12802 Value of a symbol in the left half of a word concatenated with a single symbol. (Contributed by Alexander van der Vekens, 5-Aug-2018.)
 |-  ( ( W  e. Word  V 
 /\  S  e.  V  /\  I  e.  (
 0..^ ( # `  W ) ) )  ->  ( ( W ++  <" S "> ) `  I )  =  ( W `  I ) )
 
Theoremccats1val2 12803 Value of the symbol concatenated with a word. (Contributed by Alexander van der Vekens, 5-Aug-2018.) (Proof shortened by Alexander van der Vekens, 14-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  S  e.  V  /\  I  =  ( # `
  W ) ) 
 ->  ( ( W ++  <" S "> ) `  I )  =  S )
 
Theoremccat2s1p1 12804 Extract the first of two concatenated singleton words. (Contributed by Alexander van der Vekens, 22-Sep-2018.)
 |-  ( ( X  e.  V  /\  Y  e.  V )  ->  ( ( <" X "> ++  <" Y "> ) `  0
 )  =  X )
 
Theoremccat2s1p2 12805 Extract the second of two concatenated singleton words. (Contributed by Alexander van der Vekens, 22-Sep-2018.)
 |-  ( ( X  e.  V  /\  Y  e.  V )  ->  ( ( <" X "> ++  <" Y "> ) `  1
 )  =  Y )
 
Theoremccatw2s1ass 12806 Associative law for a concatenation of a word with two singleton words. (Contributed by Alexander van der Vekens, 22-Sep-2018.)
 |-  ( ( W  e. Word  V 
 /\  X  e.  V  /\  Y  e.  V ) 
 ->  ( ( W ++  <" X "> ) ++  <" Y "> )  =  ( W ++  ( <" X "> ++  <" Y "> ) ) )
 
Theoremccatws1lenrev 12807 The length of a word concatenated with a singleton word. (Contributed by Alexander van der Vekens, 3-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  X  e.  V )  ->  ( ( # `  ( W ++  <" X "> ) )  =  N  ->  ( # `  W )  =  ( N  -  1 ) ) )
 
Theoremccatws1n0 12808 The concatenation of a word with a singleton word is not the empty set. (Contributed by Alexander van der Vekens, 29-Sep-2018.)
 |-  ( ( W  e. Word  V 
 /\  X  e.  V )  ->  ( W ++  <" X "> )  =/= 
 (/) )
 
Theoremccatws1ls 12809 The last symbol of the concatenation of a word with a singleton word is the symbol of the singleton word. (Contributed by AV, 29-Sep-2018.) (Proof shortened by AV, 14-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  X  e.  V )  ->  ( ( W ++ 
 <" X "> ) `  ( # `  W ) )  =  X )
 
Theoremlswccats1 12810 The last symbol of a word concatenated with a singleton word is the symbol of the singleton word. (Contributed by AV, 6-Aug-2018.) (Proof shortened by AV, 22-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  S  e.  V )  ->  ( lastS  `  ( W ++ 
 <" S "> ) )  =  S )
 
Theoremlswccats1fst 12811 The last symbol of a nonempty word concatenated with its first symbol is the first symbol. (Contributed by AV, 28-Jun-2018.) (Proof shortened by AV, 1-May-2020.)
 |-  ( ( P  e. Word  V 
 /\  1  <_  ( # `
  P ) ) 
 ->  ( lastS  `  ( P ++ 
 <" ( P `  0 ) "> ) )  =  (
 ( P ++  <" ( P `  0 ) "> ) `  0 ) )
 
Theoremccatw2s1p1 12812 Extract the symbol of the first singleton word of a word concatenated with this singleton word and another singleton word. (Contributed by Alexander van der Vekens, 22-Sep-2018.) (Proof shortened by AV, 1-May-2020.)
 |-  ( ( ( W  e. Word  V  /\  ( # `  W )  =  N )  /\  ( X  e.  V  /\  Y  e.  V ) )  ->  ( ( ( W ++  <" X "> ) ++  <" Y "> ) `  N )  =  X )
 
Theoremccatw2s1p2 12813 Extract the second of two single symbols concatenated with a word. (Contributed by Alexander van der Vekens, 22-Sep-2018.) (Proof shortened by AV, 1-May-2020.)
 |-  ( ( ( W  e. Word  V  /\  ( # `  W )  =  N )  /\  ( X  e.  V  /\  Y  e.  V ) )  ->  ( ( ( W ++  <" X "> ) ++  <" Y "> ) `  ( N  +  1 )
 )  =  Y )
 
Theoremccat2s1fvw 12814 Extract a symbol of a word from the concatenation of the word with two single symbols. (Contributed by AV, 22-Sep-2018.) (Revised by AV, 13-Jan-2020.) (Proof shortened by AV, 1-May-2020.)
 |-  ( ( ( W  e. Word  V  /\  I  e. 
 NN0  /\  I  <  ( # `
  W ) ) 
 /\  ( X  e.  V  /\  Y  e.  V ) )  ->  ( ( ( W ++  <" X "> ) ++  <" Y "> ) `  I
 )  =  ( W `
  I ) )
 
Theoremccat2s1fst 12815 The first symbol of the concatenation of a word with two single symbols. (Contributed by Alexander van der Vekens, 22-Sep-2018.)
 |-  ( ( ( W  e. Word  V  /\  0  <  ( # `  W ) )  /\  ( X  e.  V  /\  Y  e.  V ) )  ->  ( ( ( W ++ 
 <" X "> ) ++  <" Y "> ) `  0 )  =  ( W `  0 ) )
 
5.7.6  Subwords
 
Theoremswrdval 12816* Value of a subword. (Contributed by Stefan O'Rear, 15-Aug-2015.)
 |-  ( ( S  e.  V  /\  F  e.  ZZ  /\  L  e.  ZZ )  ->  ( S substr  <. F ,  L >. )  =  if ( ( F..^ L )  C_  dom  S ,  ( x  e.  (
 0..^ ( L  -  F ) )  |->  ( S `  ( x  +  F ) ) ) ,  (/) ) )
 
Theoremswrd00 12817 A zero length substring. (Contributed by Stefan O'Rear, 27-Aug-2015.)
 |-  ( S substr  <. X ,  X >. )  =  (/)
 
Theoremswrdcl 12818 Closure of the subword extractor. (Contributed by Stefan O'Rear, 16-Aug-2015.) (Revised by Mario Carneiro, 26-Feb-2016.)
 |-  ( S  e. Word  A  ->  ( S substr  <. F ,  L >. )  e. Word  A )
 
Theoremswrdval2 12819* Value of the subword extractor in its intended domain. (Contributed by Stefan O'Rear, 15-Aug-2015.) (Proof shortened by AV, 2-May-2020.)
 |-  ( ( S  e. Word  A 
 /\  F  e.  (
 0 ... L )  /\  L  e.  ( 0 ... ( # `  S ) ) )  ->  ( S substr  <. F ,  L >. )  =  ( x  e.  ( 0..^ ( L  -  F ) )  |->  ( S `
  ( x  +  F ) ) ) )
 
Theoremswrd0val 12820 Value of the subword extractor for left-anchored subwords. (Contributed by Stefan O'Rear, 24-Aug-2015.)
 |-  ( ( S  e. Word  A 
 /\  L  e.  (
 0 ... ( # `  S ) ) )  ->  ( S substr  <. 0 ,  L >. )  =  ( S  |`  ( 0..^ L ) ) )
 
Theoremswrd0len 12821 Length of a left-anchored subword. (Contributed by Stefan O'Rear, 24-Aug-2015.)
 |-  ( ( S  e. Word  A 
 /\  L  e.  (
 0 ... ( # `  S ) ) )  ->  ( # `  ( S substr  <. 0 ,  L >. ) )  =  L )
 
Theoremswrdlen 12822 Length of an extracted subword. (Contributed by Stefan O'Rear, 16-Aug-2015.)
 |-  ( ( S  e. Word  A 
 /\  F  e.  (
 0 ... L )  /\  L  e.  ( 0 ... ( # `  S ) ) )  ->  ( # `  ( S substr  <. F ,  L >. ) )  =  ( L  -  F ) )
 
Theoremswrdfv 12823 A symbol in an extracted subword, indexed using the subword's indices. (Contributed by Stefan O'Rear, 16-Aug-2015.)
 |-  ( ( ( S  e. Word  A  /\  F  e.  ( 0 ... L )  /\  L  e.  (
 0 ... ( # `  S ) ) )  /\  X  e.  ( 0..^ ( L  -  F ) ) )  ->  ( ( S substr  <. F ,  L >. ) `  X )  =  ( S `  ( X  +  F ) ) )
 
Theoremswrdf 12824 A subword of a word is a function from a half-open range of nonnegative integers of the same length as the subword to the set of symbols for the original word. (Contributed by AV, 13-Nov-2018.)
 |-  ( ( W  e. Word  V 
 /\  M  e.  (
 0 ... N )  /\  N  e.  ( 0 ... ( # `  W ) ) )  ->  ( W substr  <. M ,  N >. ) : ( 0..^ ( N  -  M ) ) --> V )
 
Theoremswrdvalfn 12825 Value of the subword extractor as function with domain. (Contributed by Alexander van der Vekens, 28-Mar-2018.) (Proof shortened by AV, 2-May-2020.)
 |-  ( ( S  e. Word  V 
 /\  F  e.  (
 0 ... L )  /\  L  e.  ( 0 ... ( # `  S ) ) )  ->  ( S substr  <. F ,  L >. )  Fn  (
 0..^ ( L  -  F ) ) )
 
Theoremswrd0f 12826 A left-anchored subword of a word is a function from a half-open range of nonnegative integers of the same length as the subword to the set of symbols for the original word. (Contributed by AV, 2-May-2020.)
 |-  ( ( W  e. Word  V 
 /\  N  e.  (
 0 ... ( # `  W ) ) )  ->  ( W substr  <. 0 ,  N >. ) : ( 0..^ N ) --> V )
 
Theoremswrdid 12827 A word is a subword of itself. (Contributed by Stefan O'Rear, 16-Aug-2015.) (Proof shortened by AV, 2-May-2020.)
 |-  ( S  e. Word  A  ->  ( S substr  <. 0 ,  ( # `  S ) >. )  =  S )
 
Theoremswrdrn 12828 The range of a subword of a word is a subset of the set of symbols for the word. (Contributed by AV, 13-Nov-2018.)
 |-  ( ( W  e. Word  V 
 /\  M  e.  (
 0 ... N )  /\  N  e.  ( 0 ... ( # `  W ) ) )  ->  ran  ( W substr  <. M ,  N >. )  C_  V )
 
Theoremswrdn0 12829 A prefixing subword consisting of at least one symbol is not empty. (Contributed by Alexander van der Vekens, 4-Aug-2018.) (Proof shortened by AV, 2-May-2020.)
 |-  ( ( W  e. Word  V 
 /\  N  e.  NN  /\  N  <_  ( # `  W ) )  ->  ( W substr  <. 0 ,  N >. )  =/=  (/) )
 
Theoremswrdlend 12830 The value of the subword extractor is the empty set (undefined) if the range is not valid. (Contributed by Alexander van der Vekens, 16-Mar-2018.) (Proof shortened by AV, 2-May-2020.)
 |-  ( ( W  e. Word  V 
 /\  F  e.  ZZ  /\  L  e.  ZZ )  ->  ( L  <_  F  ->  ( W substr  <. F ,  L >. )  =  (/) ) )
 
Theoremswrdnd 12831 The value of the subword extractor is the empty set (undefined) if the range is not valid. (Contributed by Alexander van der Vekens, 16-Mar-2018.) (Proof shortened by AV, 2-May-2020.)
 |-  ( ( W  e. Word  V 
 /\  F  e.  ZZ  /\  L  e.  ZZ )  ->  ( ( F  <  0  \/  L  <_  F  \/  ( # `  W )  <  L )  ->  ( W substr  <. F ,  L >. )  =  (/) ) )
 
Theoremswrdnd2 12832 Value of the subword extractor outside its intended domain. (Contributed by Alexander van der Vekens, 24-May-2018.)
 |-  ( ( W  e. Word  V 
 /\  A  e.  ZZ  /\  B  e.  ZZ )  ->  ( ( B  <_  A  \/  ( # `  W )  <_  A  \/  B  <_  0 )  ->  ( W substr 
 <. A ,  B >. )  =  (/) ) )
 
Theoremswrd0 12833 A subword of an empty set is always the empty set. (Contributed by AV, 31-Mar-2018.) (Revised by AV, 20-Oct-2018.) (Proof shortened by AV, 2-May-2020.)
 |-  ( (/) substr  <. F ,  L >. )  =  (/)
 
Theoremswrdrlen 12834 Length of a right-anchored subword. (Contributed by Alexander van der Vekens, 5-Apr-2018.)
 |-  ( ( W  e. Word  V 
 /\  I  e.  (
 0 ... ( # `  W ) ) )  ->  ( # `  ( W substr  <. I ,  ( # `  W ) >. ) )  =  ( ( # `  W )  -  I
 ) )
 
Theoremswrd0len0 12835 Length of a prefix of a word reduced by a single symbol, analogous to swrd0len 12821. (Contributed by AV, 4-Aug-2018.) (Proof shortened by AV, 14-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  N  e.  NN0  /\  ( # `  W )  =  ( N  +  1 ) ) 
 ->  ( # `  ( W substr 
 <. 0 ,  N >. ) )  =  N )
 
Theoremaddlenrevswrd 12836 The sum of the lengths of two reversed parts of a word is the length of the word. (Contributed by Alexander van der Vekens, 1-Apr-2018.)
 |-  ( ( W  e. Word  V 
 /\  M  e.  (
 0 ... ( # `  W ) ) )  ->  ( ( # `  ( W substr 
 <. M ,  ( # `  W ) >. ) )  +  ( # `  ( W substr 
 <. 0 ,  M >. ) ) )  =  ( # `  W ) )
 
Theoremaddlenswrd 12837 The sum of the lengths of two parts of a word is the length of the word. (Contributed by AV, 21-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  M  e.  (
 0 ... ( # `  W ) ) )  ->  ( ( # `  ( W substr 
 <. 0 ,  M >. ) )  +  ( # `  ( W substr  <. M ,  ( # `  W )
 >. ) ) )  =  ( # `  W ) )
 
Theoremswrd0fv 12838 A symbol in an left-anchored subword, indexed using the subword's indices. (Contributed by Alexander van der Vekens, 16-Jun-2018.)
 |-  ( ( W  e. Word  V 
 /\  L  e.  (
 0 ... ( # `  W ) )  /\  I  e.  ( 0..^ L ) )  ->  ( ( W substr 
 <. 0 ,  L >. ) `
  I )  =  ( W `  I
 ) )
 
Theoremswrd0fv0 12839 The first symbol in a left-anchored subword. (Contributed by Alexander van der Vekens, 16-Jun-2018.)
 |-  ( ( W  e. Word  V 
 /\  I  e.  (
 1 ... ( # `  W ) ) )  ->  ( ( W substr  <. 0 ,  I >. ) `  0
 )  =  ( W `
  0 ) )
 
Theoremswrdtrcfv 12840 A symbol in a word truncated by one symbol. (Contributed by Alexander van der Vekens, 16-Jun-2018.)
 |-  ( ( W  e. Word  V 
 /\  W  =/=  (/)  /\  I  e.  ( 0..^ ( ( # `  W )  -  1 ) ) ) 
 ->  ( ( W substr  <. 0 ,  ( ( # `  W )  -  1 ) >. ) `
  I )  =  ( W `  I
 ) )
 
Theoremswrdtrcfv0 12841 The first symbol in a word truncated by one symbol. (Contributed by Alexander van der Vekens, 16-Jun-2018.)
 |-  ( ( W  e. Word  V 
 /\  2  <_  ( # `
  W ) ) 
 ->  ( ( W substr  <. 0 ,  ( ( # `  W )  -  1 ) >. ) `
  0 )  =  ( W `  0
 ) )
 
Theoremswrd0fvlsw 12842 The last symbol in a left-anchored subword. (Contributed by Alexander van der Vekens, 24-Jun-2018.)
 |-  ( ( W  e. Word  V 
 /\  L  e.  (
 1 ... ( # `  W ) ) )  ->  ( lastS  `  ( W substr  <. 0 ,  L >. ) )  =  ( W `  ( L  -  1 ) ) )
 
Theoremswrdeq 12843* Two subwords of words are equal iff they have the same length and the same symbols at each position. (Contributed by Alexander van der Vekens, 7-Aug-2018.)
 |-  ( ( ( W  e. Word  V  /\  U  e. Word  V )  /\  ( M  e.  NN0  /\  N  e.  NN0 )  /\  ( M 
 <_  ( # `  W )  /\  N  <_  ( # `
  U ) ) )  ->  ( ( W substr 
 <. 0 ,  M >. )  =  ( U substr  <. 0 ,  N >. )  <->  ( M  =  N  /\  A. i  e.  ( 0..^ M ) ( W `  i
 )  =  ( U `
  i ) ) ) )
 
Theoremswrdlen2 12844 Length of an extracted subword. (Contributed by AV, 5-May-2020.)
 |-  ( ( S  e. Word  V 
 /\  ( F  e.  NN0  /\  L  e.  ( ZZ>= `  F ) )  /\  L  <_  ( # `  S ) )  ->  ( # `  ( S substr  <. F ,  L >. ) )  =  ( L  -  F ) )
 
Theoremswrdfv2 12845 A symbol in an extracted subword, indexed using the word's indices. (Contributed by AV, 5-May-2020.)
 |-  ( ( ( S  e. Word  V  /\  ( F  e.  NN0  /\  L  e.  ( ZZ>= `  F )
 )  /\  L  <_  ( # `  S ) ) 
 /\  X  e.  ( F..^ L ) )  ->  ( ( S substr  <. F ,  L >. ) `  ( X  -  F ) )  =  ( S `  X ) )
 
Theoremswrdsb0eq 12846 Two subwords with the same bounds are equal if the range is not valid. (Contributed by AV, 4-May-2020.)
 |-  ( ( ( W  e. Word  V  /\  U  e. Word  V )  /\  ( M  e.  NN0  /\  N  e.  NN0 )  /\  N  <_  M )  ->  ( W substr  <. M ,  N >. )  =  ( U substr  <. M ,  N >. ) )
 
Theoremswrdsbslen 12847 Two subwords with the same bounds have the same length. (Contributed by AV, 4-May-2020.)
 |-  ( ( ( W  e. Word  V  /\  U  e. Word  V )  /\  ( M  e.  NN0  /\  N  e.  NN0 )  /\  ( N 
 <_  ( # `  W )  /\  N  <_  ( # `
  U ) ) )  ->  ( # `  ( W substr 
 <. M ,  N >. ) )  =  ( # `  ( U substr  <. M ,  N >. ) ) )
 
Theoremswrdspsleq 12848* Two words have a common subword (starting at the same position with the same length) iff they have the same symbols at each position. (Contributed by Alexander van der Vekens, 7-Aug-2018.) (Proof shortened by AV, 7-May-2020.)
 |-  ( ( ( W  e. Word  V  /\  U  e. Word  V )  /\  ( M  e.  NN0  /\  N  e.  NN0 )  /\  ( N 
 <_  ( # `  W )  /\  N  <_  ( # `
  U ) ) )  ->  ( ( W substr 
 <. M ,  N >. )  =  ( U substr  <. M ,  N >. )  <->  A. i  e.  ( M..^ N ) ( W `
  i )  =  ( U `  i
 ) ) )
 
Theoremswrdtrcfvl 12849 The last symbol in a word truncated by one symbol. (Contributed by AV, 16-Jun-2018.) (Proof shortened by Mario Carneiro/AV, 14-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  2  <_  ( # `
  W ) ) 
 ->  ( lastS  `  ( W substr  <. 0 ,  ( ( # `  W )  -  1 ) >. ) )  =  ( W `  ( ( # `  W )  -  2 ) ) )
 
Theoremswrds1 12850 Extract a single symbol from a word. (Contributed by Stefan O'Rear, 23-Aug-2015.)
 |-  ( ( W  e. Word  A 
 /\  I  e.  (
 0..^ ( # `  W ) ) )  ->  ( W substr  <. I ,  ( I  +  1
 ) >. )  =  <" ( W `  I
 ) "> )
 
Theoremswrdlsw 12851 Extract the last single symbol from a word. (Contributed by Alexander van der Vekens, 23-Sep-2018.)
 |-  ( ( W  e. Word  V 
 /\  W  =/=  (/) )  ->  ( W substr  <. ( ( # `  W )  -  1 ) ,  ( # `
  W ) >. )  =  <" ( lastS  `  W ) "> )
 
Theorem2swrdeqwrdeq 12852 Two words are equal if and only if they have the same prefix and the same suffix. (Contributed by Alexander van der Vekens, 23-Sep-2018.)
 |-  ( ( W  e. Word  V 
 /\  S  e. Word  V  /\  I  e.  (
 0..^ ( # `  W ) ) )  ->  ( W  =  S  <->  ( ( # `  W )  =  ( # `  S )  /\  ( ( W substr  <. 0 ,  I >. )  =  ( S substr  <. 0 ,  I >. )  /\  ( W substr 
 <. I ,  ( # `  W ) >. )  =  ( S substr  <. I ,  ( # `  W )
 >. ) ) ) ) )
 
Theorem2swrd1eqwrdeq 12853 Two (nonempty) words are equal if and only if they have the same prefix and the same single symbol suffix. (Contributed by Alexander van der Vekens, 23-Sep-2018.) (Revised by Mario Carneiro/AV, 23-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  U  e. Word  V  /\  0  <  ( # `  W ) )  ->  ( W  =  U  <->  ( ( # `  W )  =  ( # `  U )  /\  ( ( W substr  <. 0 ,  ( ( # `  W )  -  1 ) >. )  =  ( U substr  <. 0 ,  ( ( # `  W )  -  1 ) >. ) 
 /\  ( lastS  `  W )  =  ( lastS  `  U ) ) ) ) )
 
Theoremdisjxwrd 12854* Sets of words are disjoint if each set contains extensions of distinct words of a fixed length. (Contributed by AV, 29-Jul-2018.) (Proof shortened by AV, 7-May-2020.)
 |- Disj  y  e.  W  { x  e. Word  V  |  ( x substr  <. 0 ,  N >. )  =  y }
 
Theoremccatswrd 12855 Joining two adjacent subwords makes a longer subword. (Contributed by Stefan O'Rear, 20-Aug-2015.)
 |-  ( ( S  e. Word  A 
 /\  ( X  e.  ( 0 ... Y )  /\  Y  e.  (
 0 ... Z )  /\  Z  e.  ( 0 ... ( # `  S ) ) ) ) 
 ->  ( ( S substr  <. X ,  Y >. ) ++  ( S substr  <. Y ,  Z >. ) )  =  ( S substr  <. X ,  Z >. ) )
 
Theoremswrdccat1 12856 Recover the left half of a concatenated word. (Contributed by Mario Carneiro, 27-Sep-2015.)
 |-  ( ( S  e. Word  B 
 /\  T  e. Word  B )  ->  ( ( S ++ 
 T ) substr  <. 0 ,  ( # `  S ) >. )  =  S )
 
Theoremswrdccat2 12857 Recover the right half of a concatenated word. (Contributed by Mario Carneiro, 27-Sep-2015.)
 |-  ( ( S  e. Word  B 
 /\  T  e. Word  B )  ->  ( ( S ++ 
 T ) substr  <. ( # `  S ) ,  (
 ( # `  S )  +  ( # `  T ) ) >. )  =  T )
 
5.7.7  Subwords of subwords
 
Theoremswrdswrdlem 12858 Lemma for swrdswrd 12859. (Contributed by Alexander van der Vekens, 4-Apr-2018.)
 |-  ( ( ( W  e. Word  V  /\  N  e.  ( 0 ... ( # `
  W ) ) 
 /\  M  e.  (
 0 ... N ) ) 
 /\  ( K  e.  ( 0 ... ( N  -  M ) ) 
 /\  L  e.  ( K ... ( N  -  M ) ) ) )  ->  ( W  e. Word  V  /\  ( M  +  K )  e.  ( 0 ... ( M  +  L )
 )  /\  ( M  +  L )  e.  (
 0 ... ( # `  W ) ) ) )
 
Theoremswrdswrd 12859 A subword of a subword. (Contributed by Alexander van der Vekens, 4-Apr-2018.)
 |-  ( ( W  e. Word  V 
 /\  N  e.  (
 0 ... ( # `  W ) )  /\  M  e.  ( 0 ... N ) )  ->  ( ( K  e.  ( 0
 ... ( N  -  M ) )  /\  L  e.  ( K ... ( N  -  M ) ) )  ->  ( ( W substr  <. M ,  N >. ) substr  <. K ,  L >. )  =  ( W substr  <. ( M  +  K ) ,  ( M  +  L ) >. ) ) )
 
Theoremswrd0swrd 12860 A prefix of a subword. (Contributed by AV, 2-Apr-2018.) (Proof shortened by AV, 21-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  N  e.  (
 0 ... ( # `  W ) )  /\  M  e.  ( 0 ... N ) )  ->  ( L  e.  ( 0 ... ( N  -  M ) )  ->  ( ( W substr  <. M ,  N >. ) substr  <. 0 ,  L >. )  =  ( W substr  <. M ,  ( M  +  L ) >. ) ) )
 
Theoremswrdswrd0 12861 A subword of a prefix. (Contributed by Alexander van der Vekens, 6-Apr-2018.)
 |-  ( ( W  e. Word  V 
 /\  N  e.  (
 0 ... ( # `  W ) ) )  ->  ( ( K  e.  ( 0 ... N )  /\  L  e.  ( K ... N ) ) 
 ->  ( ( W substr  <. 0 ,  N >. ) substr  <. K ,  L >. )  =  ( W substr  <. K ,  L >. ) ) )
 
Theoremswrd0swrd0 12862 A prefix of a prefix. (Contributed by Alexander van der Vekens, 7-Apr-2018.)
 |-  ( ( W  e. Word  V 
 /\  N  e.  (
 0 ... ( # `  W ) )  /\  L  e.  ( 0 ... N ) )  ->  ( ( W substr  <. 0 ,  N >. ) substr  <. 0 ,  L >. )  =  ( W substr  <. 0 ,  L >. ) )
 
Theoremswrd0swrdid 12863 A prefix of a prefix with the same length is the prefix. (Contributed by AV, 5-Apr-2018.) (Proof shortened by AV, 14-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  N  e.  (
 0 ... ( # `  W ) ) )  ->  ( ( W substr  <. 0 ,  N >. ) substr  <. 0 ,  N >. )  =  ( W substr  <. 0 ,  N >. ) )
 
5.7.8  Subwords and concatenations
 
Theoremwrdcctswrd 12864 The concatenation of two parts of a word yields the word itself. (Contributed by AV, 21-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  M  e.  (
 0 ... ( # `  W ) ) )  ->  ( ( W substr  <. 0 ,  M >. ) ++  ( W substr  <. M ,  ( # `  W ) >. ) )  =  W )
 
Theoremlencctswrd 12865 The length of two concatenated parts of a word is the length of the word. (Contributed by AV, 21-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  M  e.  (
 0 ... ( # `  W ) ) )  ->  ( # `  ( ( W substr  <. 0 ,  M >. ) ++  ( W substr  <. M ,  ( # `  W )
 >. ) ) )  =  ( # `  W ) )
 
Theoremlenrevcctswrd 12866 The length of two reversely concatenated parts of a word is the length of the word. (Contributed by Alexander van der Vekens, 1-Apr-2018.)
 |-  ( ( W  e. Word  V 
 /\  M  e.  (
 0 ... ( # `  W ) ) )  ->  ( # `  ( ( W substr  <. M ,  ( # `
  W ) >. ) ++  ( W substr  <. 0 ,  M >. ) ) )  =  ( # `  W ) )
 
Theoremswrdccatwrd 12867 Reconstruct a nonempty word from its prefix and last symbol. (Contributed by Alexander van der Vekens, 5-Aug-2018.)
 |-  ( ( W  e. Word  V 
 /\  W  =/=  (/) )  ->  ( ( W substr  <. 0 ,  ( ( # `  W )  -  1 ) >. ) ++ 
 <" ( lastS  `  W ) "> )  =  W )
 
Theoremccats1swrdeq 12868 The last symbol of a word concatenated with the subword of the word having length less by 1 than the word results in the word itself. (Contributed by Alexander van der Vekens, 24-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  U  e. Word  V  /\  ( # `  U )  =  ( ( # `
  W )  +  1 ) )  ->  ( W  =  ( U substr 
 <. 0 ,  ( # `  W ) >. )  ->  U  =  ( W ++  <" ( lastS  `  U ) "> ) ) )
 
Theoremccatopth 12869 An opth 4693-like theorem for recovering the two halves of a concatenated word. (Contributed by Mario Carneiro, 1-Oct-2015.)
 |-  ( ( ( A  e. Word  X  /\  B  e. Word  X )  /\  ( C  e. Word  X  /\  D  e. Word  X )  /\  ( # `  A )  =  ( # `  C ) ) 
 ->  ( ( A ++  B )  =  ( C ++  D )  <->  ( A  =  C  /\  B  =  D ) ) )
 
Theoremccatopth2 12870 An opth 4693-like theorem for recovering the two halves of a concatenated word. (Contributed by Mario Carneiro, 1-Oct-2015.)
 |-  ( ( ( A  e. Word  X  /\  B  e. Word  X )  /\  ( C  e. Word  X  /\  D  e. Word  X )  /\  ( # `  B )  =  ( # `  D ) ) 
 ->  ( ( A ++  B )  =  ( C ++  D )  <->  ( A  =  C  /\  B  =  D ) ) )
 
Theoremccatlcan 12871 Concatenation of words is left-cancellative. (Contributed by Mario Carneiro, 2-Oct-2015.)
 |-  ( ( A  e. Word  X 
 /\  B  e. Word  X  /\  C  e. Word  X )  ->  ( ( C ++  A )  =  ( C ++  B )  <->  A  =  B ) )
 
Theoremccatrcan 12872 Concatenation of words is right-cancellative. (Contributed by Mario Carneiro, 2-Oct-2015.)
 |-  ( ( A  e. Word  X 
 /\  B  e. Word  X  /\  C  e. Word  X )  ->  ( ( A ++  C )  =  ( B ++  C )  <->  A  =  B ) )
 
Theoremwrdeqcats1OLD 12873 Decompose a nonempty word by separating off the last symbol. (Contributed by Stefan O'Rear, 25-Aug-2015.) (Revised by Mario Carneiro, 1-Oct-2015.) (Proof shortened by AV, 26-Apr-2020.) Obsolete version of swrdccatwrd 12867 as of 9-May-2020. (Proof modification is discouraged.) (New usage is discouraged.)
 |-  ( ( W  e. Word  A 
 /\  W  =/=  (/) )  ->  W  =  ( ( W substr 
 <. 0 ,  ( ( # `  W )  -  1 ) >. ) ++  <" ( W `  (
 ( # `  W )  -  1 ) ) "> ) )
 
Theoremwrdeqs1cat 12874 Decompose a nonempty word by separating off the first symbol. (Contributed by Stefan O'Rear, 25-Aug-2015.) (Revised by Mario Carneiro, 1-Oct-2015.) (Proof shortened by AV, 9-May-2020.)
 |-  ( ( W  e. Word  A 
 /\  W  =/=  (/) )  ->  W  =  ( <" ( W `  0
 ) "> ++  ( W substr  <. 1 ,  ( # `  W ) >. ) ) )
 
Theoremcats1un 12875 Express a word with an extra symbol as the union of the word and the new value. (Contributed by Mario Carneiro, 28-Feb-2016.)
 |-  ( ( A  e. Word  X 
 /\  B  e.  X )  ->  ( A ++  <" B "> )  =  ( A  u.  { <. ( # `  A ) ,  B >. } ) )
 
Theoremwrdind 12876* Perform induction over the structure of a word. (Contributed by Mario Carneiro, 27-Sep-2015.) (Revised by Mario Carneiro, 26-Feb-2016.)
 |-  ( x  =  (/)  ->  ( ph  <->  ps ) )   &    |-  ( x  =  y  ->  (
 ph 
 <->  ch ) )   &    |-  ( x  =  ( y ++  <" z "> )  ->  ( ph  <->  th ) )   &    |-  ( x  =  A  ->  (
 ph 
 <->  ta ) )   &    |-  ps   &    |-  (
 ( y  e. Word  B  /\  z  e.  B )  ->  ( ch  ->  th ) )   =>    |-  ( A  e. Word  B  ->  ta )
 
Theoremwrd2ind 12877* Perform induction over the structure of two words of the same length. (Contributed by AV, 23-Jan-2019.)
 |-  ( ( x  =  (/)  /\  w  =  (/) )  ->  ( ph  <->  ps ) )   &    |-  (
 ( x  =  y 
 /\  w  =  u )  ->  ( ph  <->  ch ) )   &    |-  ( ( x  =  ( y ++  <" z "> )  /\  w  =  ( u ++  <" s "> ) )  ->  ( ph 
 <-> 
 th ) )   &    |-  ( x  =  A  ->  ( rh  <->  ta ) )   &    |-  ( w  =  B  ->  (
 ph 
 <->  rh ) )   &    |-  ps   &    |-  (
 ( ( y  e. Word  X  /\  z  e.  X )  /\  ( u  e. Word  Y  /\  s  e.  Y )  /\  ( # `  y
 )  =  ( # `  u ) )  ->  ( ch  ->  th )
 )   =>    |-  ( ( A  e. Word  X 
 /\  B  e. Word  Y  /\  ( # `  A )  =  ( # `  B ) )  ->  ta )
 
Theoremccats1swrdeqrex 12878* There exists a symbol such that its concatenation with the subword obtained by deleting the last symbol of a nonempty word results in the word itself. (Contributed by AV, 5-Oct-2018.) (Proof shortened by AV, 24-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  U  e. Word  V  /\  ( # `  U )  =  ( ( # `
  W )  +  1 ) )  ->  ( W  =  ( U substr 
 <. 0 ,  ( # `  W ) >. )  ->  E. s  e.  V  U  =  ( W ++  <" s "> ) ) )
 
Theoremreuccats1lem 12879* Lemma for reuccats1 12880. (Contributed by Alexander van der Vekens, 5-Oct-2018.) (Proof shortened by AV, 15-Jan-2020.)
 |-  ( ( ( W  e. Word  V  /\  U  e.  X  /\  ( W ++  <" S "> )  e.  X )  /\  ( A. s  e.  V  ( ( W ++  <" s "> )  e.  X  ->  S  =  s )  /\  A. x  e.  X  ( x  e. Word  V  /\  ( # `  x )  =  ( ( # `
  W )  +  1 ) ) ) )  ->  ( W  =  ( U substr  <. 0 ,  ( # `  W ) >. )  ->  U  =  ( W ++  <" S "> ) ) )
 
Theoremreuccats1 12880* A set of words having the length of a given word increased by 1 contains a unique word with the given word as prefix if there is a unique symbol which extends the given word to be a word of the set. (Contributed by Alexander van der Vekens, 6-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  A. x  e.  X  ( x  e. Word  V  /\  ( # `  x )  =  ( ( # `  W )  +  1 ) ) )  ->  ( E! v  e.  V  ( W ++  <" v "> )  e.  X  ->  E! x  e.  X  W  =  ( x substr  <.
 0 ,  ( # `  W ) >. ) ) )
 
5.7.9  Subwords of concatenations
 
Theoremswrdccatfn 12881 The subword of a concatenation as function. (Contributed by Alexander van der Vekens, 27-May-2018.)
 |-  ( ( ( 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 ) ) )
 
Theoremswrdccatin1 12882 The subword of a concatenation of two words within the first of the concatenated words. (Contributed by Alexander van der Vekens, 28-Mar-2018.)
 |-  ( ( A  e. Word  V 
 /\  B  e. Word  V )  ->  ( ( M  e.  ( 0 ...
 N )  /\  N  e.  ( 0 ... ( # `
  A ) ) )  ->  ( ( A ++  B ) substr  <. M ,  N >. )  =  ( A substr  <. M ,  N >. ) ) )
 
Theoremswrdccatin12lem1 12883 Lemma 1 for swrdccatin12 12890. (Contributed by Alexander van der Vekens, 30-Mar-2018.) (Revised by Alexander van der Vekens, 23-May-2018.)
 |-  ( ( L  e.  NN0  /\  M  e.  NN0  /\  N  e.  ZZ )  ->  (
 ( K  e.  (
 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) )  ->  K  e.  ( ( L  -  M )..^ ( ( L  -  M )  +  ( N  -  L ) ) ) ) )
 
Theoremswrdccatin12lem2a 12884 Lemma 1 for swrdccatin12lem2 12888. (Contributed by AV, 30-Mar-2018.) (Revised by AV, 27-May-2018.)
 |-  ( ( M  e.  ( 0 ... L )  /\  N  e.  ( L ... X ) ) 
 ->  ( ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) )  ->  ( K  +  M )  e.  ( L..^ X ) ) )
 
Theoremswrdccatin12lem2b 12885 Lemma 2 for swrdccatin12lem2 12888. (Contributed by AV, 30-Mar-2018.) (Revised by AV, 27-May-2018.)
 |-  ( ( M  e.  ( 0 ... L )  /\  N  e.  ( L ... X ) ) 
 ->  ( ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) )  ->  ( K  -  ( L  -  M ) )  e.  ( 0..^ ( ( N  -  L )  -  0 ) ) ) )
 
Theoremswrdccatin2 12886 The subword of a concatenation of two words within the second of the concatenated words. (Contributed by Alexander van der Vekens, 28-Mar-2018.) (Revised by Alexander van der Vekens, 27-May-2018.)
 |-  L  =  ( # `  A )   =>    |-  ( ( A  e. Word  V 
 /\  B  e. Word  V )  ->  ( ( M  e.  ( L ... N )  /\  N  e.  ( L ... ( L  +  ( # `  B ) ) ) ) 
 ->  ( ( A ++  B ) substr 
 <. M ,  N >. )  =  ( B substr  <. ( M  -  L ) ,  ( N  -  L ) >. ) ) )
 
Theoremswrdccatin12lem2c 12887 Lemma for swrdccatin12lem2 12888 and swrdccatin12lem3 12889. (Contributed by AV, 30-Mar-2018.) (Revised by AV, 27-May-2018.)
 |-  L  =  ( # `  A )   =>    |-  ( ( ( A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0 ...
 L )  /\  N  e.  ( L ... ( L  +  ( # `  B ) ) ) ) )  ->  ( ( A ++  B )  e. Word  V  /\  M  e.  ( 0
 ... N )  /\  N  e.  ( 0 ... ( # `  ( A ++  B ) ) ) ) )
 
Theoremswrdccatin12lem2 12888 Lemma 2 for swrdccatin12 12890. (Contributed by AV, 30-Mar-2018.) (Revised by AV, 27-May-2018.)
 |-  L  =  ( # `  A )   =>    |-  ( ( ( A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0 ...
 L )  /\  N  e.  ( L ... ( L  +  ( # `  B ) ) ) ) )  ->  ( ( K  e.  ( 0..^ ( N  -  M ) )  /\  -.  K  e.  ( 0..^ ( L  -  M ) ) )  ->  ( (
 ( A ++  B ) substr  <. M ,  N >. ) `
  K )  =  ( ( B substr  <. 0 ,  ( N  -  L ) >. ) `  ( K  -  ( # `  ( A substr 
 <. M ,  L >. ) ) ) ) ) )
 
Theoremswrdccatin12lem3 12889 Lemma 3 for swrdccatin12 12890. (Contributed by AV, 30-Mar-2018.) (Revised by AV, 27-May-2018.)
 |-  L  =  ( # `  A )   =>    |-  ( ( ( A  e. Word  V  /\  B  e. Word  V )  /\  ( M  e.  ( 0 ...
 L )  /\  N  e.  ( L ... ( L  +  ( # `  B ) ) ) ) )  ->  ( ( K  e.  ( 0..^ ( N  -  M ) )  /\  K  e.  ( 0..^ ( L  -  M ) ) ) 
 ->  ( ( ( A ++ 
 B ) substr  <. M ,  N >. ) `  K )  =  ( ( A substr 
 <. M ,  L >. ) `
  K ) ) )
 
Theoremswrdccatin12 12890 The subword of a concatenation of two words within both of the concatenated words. (Contributed by Alexander van der Vekens, 5-Apr-2018.) (Revised by Alexander van der Vekens, 27-May-2018.)
 |-  L  =  ( # `  A )   =>    |-  ( ( A  e. Word  V 
 /\  B  e. Word  V )  ->  ( ( M  e.  ( 0 ...
 L )  /\  N  e.  ( L ... ( L  +  ( # `  B ) ) ) ) 
 ->  ( ( A ++  B ) substr 
 <. M ,  N >. )  =  ( ( A substr  <. M ,  L >. ) ++  ( B substr  <. 0 ,  ( N  -  L ) >. ) ) ) )
 
Theoremswrdccat3 12891 The subword of a concatenation is either a subword of the first concatenated word or a subword of the second concatenated word or a concatenation of a suffix of the first word with a prefix of the second word. (Contributed by Alexander van der Vekens, 30-Mar-2018.) (Revised by Alexander van der Vekens, 28-May-2018.)
 |-  L  =  ( # `  A )   =>    |-  ( ( A  e. Word  V 
 /\  B  e. Word  V )  ->  ( ( M  e.  ( 0 ...
 N )  /\  N  e.  ( 0 ... ( L  +  ( # `  B ) ) ) ) 
 ->  ( ( A ++  B ) substr 
 <. M ,  N >. )  =  if ( N 
 <_  L ,  ( A substr  <. M ,  N >. ) ,  if ( L 
 <_  M ,  ( B substr  <. ( M  -  L ) ,  ( N  -  L ) >. ) ,  ( ( A substr  <. M ,  L >. ) ++  ( B substr  <. 0 ,  ( N  -  L ) >. ) ) ) ) ) )
 
Theoremswrdccat 12892 The subword of a concatenation of two words as concatenation of subwords of the two concatenated words. (Contributed by Alexander van der Vekens, 29-May-2018.)
 |-  L  =  ( # `  A )   =>    |-  ( ( A  e. Word  V 
 /\  B  e. Word  V )  ->  ( ( M  e.  ( 0 ...
 N )  /\  N  e.  ( 0 ... ( L  +  ( # `  B ) ) ) ) 
 ->  ( ( A ++  B ) substr 
 <. M ,  N >. )  =  ( ( A substr  <. M ,  if ( N  <_  L ,  N ,  L ) >. ) ++  ( B substr 
 <. if ( 0  <_  ( M  -  L ) ,  ( M  -  L ) ,  0 ) ,  ( N  -  L ) >. ) ) ) )
 
Theoremswrdccat3a 12893 A prefix of a concatenation is either a prefix of the first concatenated word or a concatenation of the first word with a prefix of the second word. (Contributed by Alexander van der Vekens, 31-Mar-2018.) (Revised by Alexander van der Vekens, 29-May-2018.)
 |-  L  =  ( # `  A )   =>    |-  ( ( A  e. Word  V 
 /\  B  e. Word  V )  ->  ( N  e.  ( 0 ... ( L  +  ( # `  B ) ) )  ->  ( ( A ++  B ) substr 
 <. 0 ,  N >. )  =  if ( N 
 <_  L ,  ( A substr  <. 0 ,  N >. ) ,  ( A ++  ( B substr 
 <. 0 ,  ( N  -  L ) >. ) ) ) ) )
 
Theoremswrdccat3blem 12894 Lemma for swrdccat3b 12895. (Contributed by AV, 30-May-2018.)
 |-  L  =  ( # `  A )   =>    |-  ( ( ( ( A  e. Word  V  /\  B  e. Word  V )  /\  M  e.  ( 0 ... ( L  +  ( # `
  B ) ) ) )  /\  ( L  +  ( # `  B ) )  <_  L ) 
 ->  if ( L  <_  M ,  ( B substr  <. ( M  -  L ) ,  ( # `  B ) >. ) ,  (
 ( A substr  <. M ,  L >. ) ++  B ) )  =  ( A substr  <. M ,  ( L  +  ( # `  B ) ) >. ) )
 
Theoremswrdccat3b 12895 A suffix of a concatenation is either a suffix of the second concatenated word or a concatenation of a suffix of the first word with the second word. (Contributed by Alexander van der Vekens, 31-Mar-2018.) (Revised by Alexander van der Vekens, 30-May-2018.)
 |-  L  =  ( # `  A )   =>    |-  ( ( A  e. Word  V 
 /\  B  e. Word  V )  ->  ( M  e.  ( 0 ... ( L  +  ( # `  B ) ) )  ->  ( ( A ++  B ) substr 
 <. M ,  ( L  +  ( # `  B ) ) >. )  =  if ( L  <_  M ,  ( B substr  <. ( M  -  L ) ,  ( # `  B ) >. ) ,  (
 ( A substr  <. M ,  L >. ) ++  B ) ) ) )
 
Theoremswrdccatid 12896 A prefix of a concatenation of length of the first concatenated word is the first word itself. (Contributed by Alexander van der Vekens, 20-Sep-2018.)
 |-  ( ( A  e. Word  V 
 /\  B  e. Word  V  /\  N  =  ( # `  A ) )  ->  ( ( A ++  B ) substr 
 <. 0 ,  N >. )  =  A )
 
Theoremccats1swrdeqbi 12897 A word is a prefix of a word with length greater by 1 than the first word iff the second word is the first word concatenated with the last symbol of the second word. (Contributed by AV, 24-Oct-2018.)
 |-  ( ( W  e. Word  V 
 /\  U  e. Word  V  /\  ( # `  U )  =  ( ( # `
  W )  +  1 ) )  ->  ( W  =  ( U substr 
 <. 0 ,  ( # `  W ) >. )  <->  U  =  ( W ++  <" ( lastS  `  U ) "> ) ) )
 
Theoremswrdccatin1d 12898 The subword of a concatenation of two words within the first of the concatenated words. (Contributed by AV, 31-May-2018.) (Revised by Mario Carneiro/AV, 21-Oct-2018.)
 |-  ( ph  ->  ( # `
  A )  =  L )   &    |-  ( ph  ->  ( A  e. Word  V  /\  B  e. Word  V ) )   &    |-  ( ph  ->  M  e.  ( 0 ... N ) )   &    |-  ( ph  ->  N  e.  ( 0 ...
 L ) )   =>    |-  ( ph  ->  ( ( A ++  B ) substr  <. M ,  N >. )  =  ( A substr  <. M ,  N >. ) )
 
Theoremswrdccatin2d 12899 The subword of a concatenation of two words within the second of the concatenated words. (Contributed by AV, 31-May-2018.) (Revised by Mario Carneiro/AV, 21-Oct-2018.)
 |-  ( ph  ->  ( # `
  A )  =  L )   &    |-  ( ph  ->  ( A  e. Word  V  /\  B  e. Word  V ) )   &    |-  ( ph  ->  M  e.  ( L ... N ) )   &    |-  ( ph  ->  N  e.  ( L ... ( L  +  ( # `
  B ) ) ) )   =>    |-  ( ph  ->  (
 ( A ++  B ) substr  <. M ,  N >. )  =  ( B substr  <. ( M  -  L ) ,  ( N  -  L ) >. ) )
 
Theoremswrdccatin12d 12900 The subword of a concatenation of two words within both of the concatenated words. (Contributed by AV, 31-May-2018.) (Revised by Mario Carneiro/AV, 21-Oct-2018.)
 |-  ( ph  ->  ( # `
  A )  =  L )   &    |-  ( ph  ->  ( A  e. Word  V  /\  B  e. Word  V ) )   &    |-  ( ph  ->  M  e.  ( 0 ... L ) )   &    |-  ( ph  ->  N  e.  ( L ... ( L  +  ( # `
  B ) ) ) )   =>    |-  ( ph  ->  (
 ( A ++  B ) substr  <. M ,  N >. )  =  ( ( A substr  <. M ,  L >. ) ++  ( B substr  <. 0 ,  ( N  -  L ) >. ) ) )
    < Previous  Next >

Page List
Jump to page: Contents  1 1-100 2 101-200 3 201-300 4 301-400 5 401-500 6 501-600 7 601-700 8 701-800 9 801-900 10 901-1000 11 1001-1100 12 1101-1200 13 1201-1300 14 1301-1400 15 1401-1500 16 1501-1600 17 1601-1700 18 1701-1800 19 1801-1900 20 1901-2000 21 2001-2100 22 2101-2200 23 2201-2300 24 2301-2400 25 2401-2500 26 2501-2600 27 2601-2700 28 2701-2800 29 2801-2900 30 2901-3000 31 3001-3100 32 3101-3200 33 3201-3300 34 3301-3400 35 3401-3500 36 3501-3600 37 3601-3700 38 3701-3800 39 3801-3900 40 3901-4000 41 4001-4100 42 4101-4200 43 4201-4300 44 4301-4400 45 4401-4500 46 4501-4600 47 4601-4700 48 4701-4800 49 4801-4900 50 4901-5000 51 5001-5100 52 5101-5200 53 5201-5300 54 5301-5400 55 5401-5500 56 5501-5600 57 5601-5700 58 5701-5800 59 5801-5900 60 5901-6000 61 6001-6100 62 6101-6200 63 6201-6300 64 6301-6400 65 6401-6500 66 6501-6600 67 6601-6700 68 6701-6800 69 6801-6900 70 6901-7000 71 7001-7100 72 7101-7200 73 7201-7300 74 7301-7400 75 7401-7500 76 7501-7600 77 7601-7700 78 7701-7800 79 7801-7900 80 7901-8000 81 8001-8100 82 8101-8200 83 8201-8300 84 8301-8400 85 8401-8500 86 8501-8600 87 8601-8700 88 8701-8800 89 8801-8900 90 8901-9000 91 9001-9100 92 9101-9200 93 9201-9300 94 9301-9400 95 9401-9500 96 9501-9600 97 9601-9700 98 9701-9800 99 9801-9900 100 9901-10000 101 10001-10100 102 10101-10200 103 10201-10300 104 10301-10400 105 10401-10500 106 10501-10600 107 10601-10700 108 10701-10800 109 10801-10900 110 10901-11000 111 11001-11100 112 11101-11200 113 11201-11300 114 11301-11400 115 11401-11500 116 11501-11600 117 11601-11700 118 11701-11800 119 11801-11900 120 11901-12000 121 12001-12100 122 12101-12200 123 12201-12300 124 12301-12400 125 12401-12500 126 12501-12600 127 12601-12700 128 12701-12800 129 12801-12900 130 12901-13000 131 13001-13100 132 13101-13200 133 13201-13300 134 13301-13400 135 13401-13500 136 13501-13600 137 13601-13700 138 13701-13800 139 13801-13900 140 13901-14000 141 14001-14100 142 14101-14200 143 14201-14300 144 14301-14400 145 14401-14500 146 14501-14600 147 14601-14700 148 14701-14800 149 14801-14900 150 14901-15000 151 15001-15100 152 15101-15200 153 15201-15300 154 15301-15400 155 15401-15500 156 15501-15600 157 15601-15700 158 15701-15800 159 15801-15900 160 15901-16000 161 16001-16100 162 16101-16200 163 16201-16300 164 16301-16400 165 16401-16500 166 16501-16600 167 16601-16700 168 16701-16800 169 16801-16900 170 16901-17000 171 17001-17100 172 17101-17200 173 17201-17300 174 17301-17400 175 17401-17500 176 17501-17600 177 17601-17700 178 17701-17800 179 17801-17900 180 17901-18000 181 18001-18100 182 18101-18200 183 18201-18300 184 18301-18400 185 18401-18500 186 18501-18600 187 18601-18700 188 18701-18800 189 18801-18900 190 18901-19000 191 19001-19100 192 19101-19200 193 19201-19300 194 19301-19400 195 19401-19500 196 19501-19600 197 19601-19700 198 19701-19800 199 19801-19900 200 19901-20000 201 20001-20100 202 20101-20200 203 20201-20300 204 20301-20400 205 20401-20500 206 20501-20600 207 20601-20700 208 20701-20800 209 20801-20900 210 20901-21000 211 21001-21100 212 21101-21200 213 21201-21300 214 21301-21400 215 21401-21500 216 21501-21600 217 21601-21700 218 21701-21800 219 21801-21900 220 21901-22000 221 22001-22100 222 22101-22200 223 22201-22300 224 22301-22400 225 22401-22500 226 22501-22600 227 22601-22700 228 22701-22800 229 22801-22900 230 22901-23000 231 23001-23100 232 23101-23200 233 23201-23300 234 23301-23400 235 23401-23500 236 23501-23600 237 23601-23700 238 23701-23800 239 23801-23900 240 23901-24000 241 24001-24100 242 24101-24200 243 24201-24300 244 24301-24400 245 24401-24500 246 24501-24600 247 24601-24700 248 24701-24800 249 24801-24900 250 24901-25000 251 25001-25100 252 25101-25200 253 25201-25300 254 25301-25400 255 25401-25500 256 25501-25600 257 25601-25700 258 25701-25800 259 25801-25900 260 25901-26000 261 26001-26100 262 26101-26200 263 26201-26300 264 26301-26400 265 26401-26500 266 26501-26600 267 26601-26700 268 26701-26800 269 26801-26900 270 26901-27000 271 27001-27100 272 27101-27200 273 27201-27300 274 27301-27400 275 27401-27500 276 27501-27600 277 27601-27700 278 27701-27800 279 27801-27900 280 27901-28000 281 28001-28100 282 28101-28200 283 28201-28300 284 28301-28400 285 28401-28500 286 28501-28600 287 28601-28700 288 28701-28800 289 28801-28900 290 28901-29000 291 29001-29100 292 29101-29200 293 29201-29300 294 29301-29400 295 29401-29500 296 29501-29600 297 29601-29700 298 29701-29800 299 29801-29900 300 29901-30000 301 30001-30100 302 30101-30200 303 30201-30300 304 30301-30400 305 30401-30500 306 30501-30600 307 30601-30700 308 30701-30800 309 30801-30900 310 30901-31000 311 31001-31100 312 31101-31200 313 31201-31300 314 31301-31400 315 31401-31500 316 31501-31600 317 31601-31700 318 31701-31800 319 31801-31900 320 31901-32000 321 32001-32100 322 32101-32200 323 32201-32300 324 32301-32400 325 32401-32500 326 32501-32600 327 32601-32700 328 32701-32800 329 32801-32900 330 32901-33000 331 33001-33100 332 33101-33200 333 33201-33300 334 33301-33400 335 33401-33500 336 33501-33600 337 33601-33700 338 33701-33800 339 33801-33900 340 33901-34000 341 34001-34100 342 34101-34200 343 34201-34300 344 34301-34400 345 34401-34500 346 34501-34600 347 34601-34700 348 34701-34800 349 34801-34900 350 34901-35000 351 35001-35100 352 35101-35200 353 35201-35300 354 35301-35400 355 35401-35500 356 35501-35600 357 35601-35700 358 35701-35800 359 35801-35900 360 35901-36000 361 36001-36100 362 36101-36200 363 36201-36300 364 36301-36400 365 36401-36500 366 36501-36600 367 36601-36700 368 36701-36800 369 36801-36900 370 36901-37000 371 37001-37100 372 37101-37200 373 37201-37300 374 37301-37400 375 37401-37500 376 37501-37600 377 37601-37700 378 37701-37800 379 37801-37900 380 37901-38000 381 38001-38100 382 38101-38200 383 38201-38300 384 38301-38400 385 38401-38500 386 38501-38600 387 38601-38700 388 38701-38800 389 38801-38900 390 38901-39000 391 39001-39100 392 39101-39200 393 39201-39300 394 39301-39400 395 39401-39500 396 39501-39600 397 39601-39700 398 39701-39800 399 39801-39900 400 39901-40000 401 40001-40100 402 40101-40200 403 40201-40300 404 40301-40400 405 40401-40500 406 40501-40600 407 40601-40700 408 40701-40800 409 40801-40900 410 40901-40909
  Copyright terms: Public domain < Previous  Next >