HomeHome Intuitionistic Logic Explorer
Theorem List (p. 114 of 171)
< Previous  Next >
Bad symbols? Try the
GIF version.

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

Theorem List for Intuitionistic Logic Explorer - 11301-11400   *Has distinct variable group(s)
TypeLabelDescription
Statement
 
Theoremlsw0g 11301 The last symbol of an empty word does not exist. (Contributed by Alexander van der Vekens, 11-Nov-2018.)
(lastS‘∅) = ∅
 
Theoremlsw1 11302 The last symbol of a word of length 1 is the first symbol of this word. (Contributed by Alexander van der Vekens, 19-Mar-2018.)
((𝑊 ∈ Word 𝑉 ∧ (♯‘𝑊) = 1) → (lastS‘𝑊) = (𝑊‘0))
 
Theoremlswcl 11303 Closure of the last symbol: the last symbol of a nonempty word belongs to the alphabet for the word. (Contributed by AV, 2-Aug-2018.) (Proof shortened by AV, 29-Apr-2020.)
((𝑊 ∈ Word 𝑉𝑊 ≠ ∅) → (lastS‘𝑊) ∈ 𝑉)
 
Theoremlswex 11304 Existence of the last symbol. The last symbol of a word is a set. See lsw0g 11301 or lswcl 11303 if you want more specific results for empty or nonempty words, respectively. (Contributed by Jim Kingdon, 27-Dec-2025.)
(𝑊 ∈ Word 𝑉 → (lastS‘𝑊) ∈ V)
 
Theoremlswlgt0cl 11305 The last symbol of a nonempty word is an element of the alphabet for the word. (Contributed by Alexander van der Vekens, 1-Oct-2018.) (Proof shortened by AV, 29-Apr-2020.)
((𝑁 ∈ ℕ ∧ (𝑊 ∈ Word 𝑉 ∧ (♯‘𝑊) = 𝑁)) → (lastS‘𝑊) ∈ 𝑉)
 
4.7.3  Concatenations of words
 
Syntaxcconcat 11306 Syntax for the concatenation operator.
class ++
 
Definitiondf-concat 11307* Define the concatenation operator which combines two words. Definition in Section 9.1 of [AhoHopUll] p. 318. (Contributed by FL, 14-Jan-2014.) (Revised by Stefan O'Rear, 15-Aug-2015.)
++ = (𝑠 ∈ V, 𝑡 ∈ V ↦ (𝑥 ∈ (0..^((♯‘𝑠) + (♯‘𝑡))) ↦ if(𝑥 ∈ (0..^(♯‘𝑠)), (𝑠𝑥), (𝑡‘(𝑥 − (♯‘𝑠))))))
 
Theoremccatfvalfi 11308* Value of the concatenation operator. (Contributed by Stefan O'Rear, 15-Aug-2015.)
((𝑆 ∈ Fin ∧ 𝑇 ∈ Fin) → (𝑆 ++ 𝑇) = (𝑥 ∈ (0..^((♯‘𝑆) + (♯‘𝑇))) ↦ if(𝑥 ∈ (0..^(♯‘𝑆)), (𝑆𝑥), (𝑇‘(𝑥 − (♯‘𝑆))))))
 
Theoremccatcl 11309 The concatenation of two words is a word. (Contributed by FL, 2-Feb-2014.) (Proof shortened by Stefan O'Rear, 15-Aug-2015.) (Proof shortened by AV, 29-Apr-2020.)
((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) ∈ Word 𝐵)
 
Theoremccatclab 11310 The concatenation of words over two sets is a word over the union of those sets. (Contributed by Jim Kingdon, 19-Dec-2025.)
((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → (𝑆 ++ 𝑇) ∈ Word (𝐴𝐵))
 
Theoremccatlen 11311 The length of a concatenated word. (Contributed by Stefan O'Rear, 15-Aug-2015.) (Revised by JJ, 1-Jan-2024.)
((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → (♯‘(𝑆 ++ 𝑇)) = ((♯‘𝑆) + (♯‘𝑇)))
 
Theoremccat0 11312 The concatenation of two words is empty iff the two words are empty. (Contributed by AV, 4-Mar-2022.) (Revised by JJ, 18-Jan-2024.)
((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵) → ((𝑆 ++ 𝑇) = ∅ ↔ (𝑆 = ∅ ∧ 𝑇 = ∅)))
 
Theoremccatval1 11313 Value of a symbol in the left half of a concatenated word. (Contributed by Stefan O'Rear, 15-Aug-2015.) (Revised by Mario Carneiro, 22-Sep-2015.) (Proof shortened by AV, 30-Apr-2020.) (Revised by JJ, 18-Jan-2024.)
((𝑆 ∈ Word 𝐴𝑇 ∈ Word 𝐵𝐼 ∈ (0..^(♯‘𝑆))) → ((𝑆 ++ 𝑇)‘𝐼) = (𝑆𝐼))
 
Theoremccatval2 11314 Value of a symbol in the right half of a concatenated word. (Contributed by Stefan O'Rear, 15-Aug-2015.) (Revised by Mario Carneiro, 22-Sep-2015.)
((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝐼 ∈ ((♯‘𝑆)..^((♯‘𝑆) + (♯‘𝑇)))) → ((𝑆 ++ 𝑇)‘𝐼) = (𝑇‘(𝐼 − (♯‘𝑆))))
 
Theoremccatval3 11315 Value of a symbol in the right half of a concatenated word, using an index relative to the subword. (Contributed by Stefan O'Rear, 16-Aug-2015.) (Proof shortened by AV, 30-Apr-2020.)
((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝐼 ∈ (0..^(♯‘𝑇))) → ((𝑆 ++ 𝑇)‘(𝐼 + (♯‘𝑆))) = (𝑇𝐼))
 
Theoremelfzelfzccat 11316 An element of a finite set of sequential integers up to the length of a word is an element of an extended finite set of sequential integers up to the length of a concatenation of this word with another word. (Contributed by Alexander van der Vekens, 28-Mar-2018.)
((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → (𝑁 ∈ (0...(♯‘𝐴)) → 𝑁 ∈ (0...(♯‘(𝐴 ++ 𝐵)))))
 
Theoremccatvalfn 11317 The concatenation of two words is a function over the half-open integer range having the sum of the lengths of the word as length. (Contributed by Alexander van der Vekens, 30-Mar-2018.)
((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉) → (𝐴 ++ 𝐵) Fn (0..^((♯‘𝐴) + (♯‘𝐵))))
 
Theoremccatsymb 11318 The symbol at a given position in a concatenated word. (Contributed by AV, 26-May-2018.) (Proof shortened by AV, 24-Nov-2018.)
((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉𝐼 ∈ ℤ) → ((𝐴 ++ 𝐵)‘𝐼) = if(𝐼 < (♯‘𝐴), (𝐴𝐼), (𝐵‘(𝐼 − (♯‘𝐴)))))
 
Theoremccatfv0 11319 The first symbol of a concatenation of two words is the first symbol of the first word if the first word is not empty. (Contributed by Alexander van der Vekens, 22-Sep-2018.)
((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉 ∧ 0 < (♯‘𝐴)) → ((𝐴 ++ 𝐵)‘0) = (𝐴‘0))
 
Theoremccatval1lsw 11320 The last symbol of the left (nonempty) half of a concatenated word. (Contributed by Alexander van der Vekens, 3-Oct-2018.) (Proof shortened by AV, 1-May-2020.)
((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉𝐴 ≠ ∅) → ((𝐴 ++ 𝐵)‘((♯‘𝐴) − 1)) = (lastS‘𝐴))
 
Theoremccatval21sw 11321 The first symbol of the right (nonempty) half of a concatenated word. (Contributed by AV, 23-Apr-2022.)
((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉𝐵 ≠ ∅) → ((𝐴 ++ 𝐵)‘(♯‘𝐴)) = (𝐵‘0))
 
Theoremccatlid 11322 Concatenation of a word by the empty word on the left. (Contributed by Stefan O'Rear, 15-Aug-2015.) (Proof shortened by AV, 1-May-2020.)
(𝑆 ∈ Word 𝐵 → (∅ ++ 𝑆) = 𝑆)
 
Theoremccatrid 11323 Concatenation of a word by the empty word on the right. (Contributed by Stefan O'Rear, 15-Aug-2015.) (Proof shortened by AV, 1-May-2020.)
(𝑆 ∈ Word 𝐵 → (𝑆 ++ ∅) = 𝑆)
 
Theoremccatass 11324 Associative law for concatenation of words. (Contributed by Stefan O'Rear, 15-Aug-2015.)
((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵𝑈 ∈ Word 𝐵) → ((𝑆 ++ 𝑇) ++ 𝑈) = (𝑆 ++ (𝑇 ++ 𝑈)))
 
Theoremccatrn 11325 The range of a concatenated word. (Contributed by Stefan O'Rear, 15-Aug-2015.)
((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ran (𝑆 ++ 𝑇) = (ran 𝑆 ∪ ran 𝑇))
 
Theoremccatidid 11326 Concatenation of the empty word by the empty word. (Contributed by AV, 26-Mar-2022.)
(∅ ++ ∅) = ∅
 
Theoremlswccatn0lsw 11327 The last symbol of a word concatenated with a nonempty word is the last symbol of the nonempty word. (Contributed by AV, 22-Oct-2018.) (Proof shortened by AV, 1-May-2020.)
((𝐴 ∈ Word 𝑉𝐵 ∈ Word 𝑉𝐵 ≠ ∅) → (lastS‘(𝐴 ++ 𝐵)) = (lastS‘𝐵))
 
Theoremlswccat0lsw 11328 The last symbol of a word concatenated with the empty word is the last symbol of the word. (Contributed by AV, 22-Oct-2018.) (Proof shortened by AV, 1-May-2020.)
(𝑊 ∈ Word 𝑉 → (lastS‘(𝑊 ++ ∅)) = (lastS‘𝑊))
 
Theoremccatalpha 11329 A concatenation of two arbitrary words is a word over an alphabet iff the symbols of both words belong to the alphabet. (Contributed by AV, 28-Feb-2021.)
((𝐴 ∈ Word V ∧ 𝐵 ∈ Word V) → ((𝐴 ++ 𝐵) ∈ Word 𝑆 ↔ (𝐴 ∈ Word 𝑆𝐵 ∈ Word 𝑆)))
 
Theoremccatrcl1 11330 Reverse closure of a concatenation: If the concatenation of two arbitrary words is a word over an alphabet then the symbols of the first word belong to the alphabet. (Contributed by AV, 3-Mar-2021.)
((𝐴 ∈ Word 𝑋𝐵 ∈ Word 𝑌 ∧ (𝑊 = (𝐴 ++ 𝐵) ∧ 𝑊 ∈ Word 𝑆)) → 𝐴 ∈ Word 𝑆)
 
4.7.4  Singleton words
 
Syntaxcs1 11331 Syntax for the singleton word constructor.
class ⟨“𝐴”⟩
 
Definitiondf-s1 11332 Define the canonical injection from symbols to words. Although not required, 𝐴 should usually be a set. Otherwise, the singleton word ⟨“𝐴”⟩ would be the singleton word consisting of the empty set, see s1prc 11339, and not, as maybe expected, the empty word. (Contributed by Stefan O'Rear, 15-Aug-2015.) (Revised by Mario Carneiro, 26-Feb-2016.)
⟨“𝐴”⟩ = {⟨0, ( I ‘𝐴)⟩}
 
Theorems1val 11333 Value of a singleton word. (Contributed by Stefan O'Rear, 15-Aug-2015.) (Revised by Mario Carneiro, 26-Feb-2016.)
(𝐴𝑉 → ⟨“𝐴”⟩ = {⟨0, 𝐴⟩})
 
Theorems1rn 11334 The range of a singleton word. (Contributed by Mario Carneiro, 18-Jul-2016.)
(𝐴𝑉 → ran ⟨“𝐴”⟩ = {𝐴})
 
Theorems1eq 11335 Equality theorem for a singleton word. (Contributed by Mario Carneiro, 26-Feb-2016.)
(𝐴 = 𝐵 → ⟨“𝐴”⟩ = ⟨“𝐵”⟩)
 
Theorems1eqd 11336 Equality theorem for a singleton word. (Contributed by Mario Carneiro, 26-Feb-2016.)
(𝜑𝐴 = 𝐵)       (𝜑 → ⟨“𝐴”⟩ = ⟨“𝐵”⟩)
 
Theorems1cl 11337 A singleton word is a word. (Contributed by Stefan O'Rear, 15-Aug-2015.) (Revised by Mario Carneiro, 26-Feb-2016.) (Proof shortened by AV, 23-Nov-2018.)
(𝐴𝐵 → ⟨“𝐴”⟩ ∈ Word 𝐵)
 
Theorems1cld 11338 A singleton word is a word. (Contributed by Mario Carneiro, 26-Feb-2016.)
(𝜑𝐴𝐵)       (𝜑 → ⟨“𝐴”⟩ ∈ Word 𝐵)
 
Theorems1prc 11339 Value of a singleton word if the symbol is a proper class. (Contributed by AV, 26-Mar-2022.)
𝐴 ∈ V → ⟨“𝐴”⟩ = ⟨“∅”⟩)
 
Theorems1leng 11340 Length of a singleton word. (Contributed by Stefan O'Rear, 15-Aug-2015.) (Revised by Mario Carneiro, 26-Feb-2016.)
(𝐴𝑉 → (♯‘⟨“𝐴”⟩) = 1)
 
Theorems1dmg 11341 The domain of a singleton word is a singleton. (Contributed by AV, 9-Jan-2020.)
(𝐴𝑆 → dom ⟨“𝐴”⟩ = {0})
 
Theorems1fv 11342 Sole symbol of a singleton word. (Contributed by Stefan O'Rear, 15-Aug-2015.) (Revised by Mario Carneiro, 26-Feb-2016.)
(𝐴𝐵 → (⟨“𝐴”⟩‘0) = 𝐴)
 
Theoremlsws1 11343 The last symbol of a singleton word is its symbol. (Contributed by AV, 22-Oct-2018.)
(𝐴𝑉 → (lastS‘⟨“𝐴”⟩) = 𝐴)
 
Theoremeqs1 11344 A word of length 1 is a singleton word. (Contributed by Stefan O'Rear, 23-Aug-2015.) (Proof shortened by AV, 1-May-2020.)
((𝑊 ∈ Word 𝐴 ∧ (♯‘𝑊) = 1) → 𝑊 = ⟨“(𝑊‘0)”⟩)
 
Theoremwrdl1exs1 11345* A word of length 1 is a singleton word. (Contributed by AV, 24-Jan-2021.)
((𝑊 ∈ Word 𝑆 ∧ (♯‘𝑊) = 1) → ∃𝑠𝑆 𝑊 = ⟨“𝑠”⟩)
 
Theoremwrdl1s1 11346 A word of length 1 is a singleton word consisting of the first symbol of the word. (Contributed by AV, 22-Jul-2018.) (Proof shortened by AV, 14-Oct-2018.)
(𝑆𝑉 → (𝑊 = ⟨“𝑆”⟩ ↔ (𝑊 ∈ Word 𝑉 ∧ (♯‘𝑊) = 1 ∧ (𝑊‘0) = 𝑆)))
 
Theorems111 11347 The singleton word function is injective. (Contributed by Mario Carneiro, 1-Oct-2015.) (Revised by Mario Carneiro, 26-Feb-2016.)
((𝑆𝐴𝑇𝐴) → (⟨“𝑆”⟩ = ⟨“𝑇”⟩ ↔ 𝑆 = 𝑇))
 
4.7.5  Concatenations with singleton words
 
Theoremccatws1cl 11348 The concatenation of a word with a singleton word is a word. (Contributed by Alexander van der Vekens, 22-Sep-2018.)
((𝑊 ∈ Word 𝑉𝑋𝑉) → (𝑊 ++ ⟨“𝑋”⟩) ∈ Word 𝑉)
 
Theoremccat2s1cl 11349 The concatenation of two singleton words is a word. (Contributed by Alexander van der Vekens, 22-Sep-2018.)
((𝑋𝑉𝑌𝑉) → (⟨“𝑋”⟩ ++ ⟨“𝑌”⟩) ∈ Word 𝑉)
 
Theoremccatws1leng 11350 The length of the concatenation of a word with a singleton word. (Contributed by Alexander van der Vekens, 22-Sep-2018.) (Revised by AV, 4-Mar-2022.)
((𝑊 ∈ Word 𝑉𝑋𝑌) → (♯‘(𝑊 ++ ⟨“𝑋”⟩)) = ((♯‘𝑊) + 1))
 
Theoremccatws1lenp1bg 11351 The length of a word is 𝑁 iff the length of the concatenation of the word with a singleton word is 𝑁 + 1. (Contributed by AV, 4-Mar-2022.)
((𝑊 ∈ Word 𝑉𝑋𝑌𝑁 ∈ ℕ0) → ((♯‘(𝑊 ++ ⟨“𝑋”⟩)) = (𝑁 + 1) ↔ (♯‘𝑊) = 𝑁))
 
Theoremwrdlenccats1lenm1g 11352 The length of a word is the length of the word concatenated with a singleton word minus 1. (Contributed by AV, 28-Jun-2018.) (Revised by AV, 5-Mar-2022.)
((𝑊 ∈ Word 𝑉𝑆𝐵) → ((♯‘(𝑊 ++ ⟨“𝑆”⟩)) − 1) = (♯‘𝑊))
 
Theoremccatw2s1cl 11353 The concatenation of a word with two singleton words is a word. (Contributed by Alexander van der Vekens, 22-Sep-2018.)
((𝑊 ∈ Word 𝑉𝑋𝑉𝑌𝑉) → ((𝑊 ++ ⟨“𝑋”⟩) ++ ⟨“𝑌”⟩) ∈ Word 𝑉)
 
Theoremccatw2s1leng 11354 The length of the concatenation of a word with two singleton words. (Contributed by Alexander van der Vekens, 22-Sep-2018.) (Revised by AV, 5-Mar-2022.)
((𝑊 ∈ Word 𝑉𝑋𝑉𝑌𝑉) → (♯‘((𝑊 ++ ⟨“𝑋”⟩) ++ ⟨“𝑌”⟩)) = ((♯‘𝑊) + 2))
 
Theoremccats1val1g 11355 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.) (Revised by JJ, 20-Jan-2024.)
((𝑊 ∈ Word 𝑉𝑆𝑌𝐼 ∈ (0..^(♯‘𝑊))) → ((𝑊 ++ ⟨“𝑆”⟩)‘𝐼) = (𝑊𝐼))
 
Theoremccats1val2 11356 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.)
((𝑊 ∈ Word 𝑉𝑆𝑉𝐼 = (♯‘𝑊)) → ((𝑊 ++ ⟨“𝑆”⟩)‘𝐼) = 𝑆)
 
Theoremccat1st1st 11357 The first symbol of a word concatenated with its first symbol is the first symbol of the word. This theorem holds even if 𝑊 is the empty word. (Contributed by AV, 26-Mar-2022.)
(𝑊 ∈ Word 𝑉 → ((𝑊 ++ ⟨“(𝑊‘0)”⟩)‘0) = (𝑊‘0))
 
Theoremccatws1ls 11358 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.)
((𝑊 ∈ Word 𝑉𝑋𝑉) → ((𝑊 ++ ⟨“𝑋”⟩)‘(♯‘𝑊)) = 𝑋)
 
Theoremlswccats1 11359 The last symbol of a word concatenated with a singleton word is the symbol of the singleton word. (Contributed by AV, 6-Aug-2018.)
((𝑊 ∈ Word 𝑉𝑆𝑉) → (lastS‘(𝑊 ++ ⟨“𝑆”⟩)) = 𝑆)
 
Theoremlswccats1fst 11360 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.)
((𝑃 ∈ Word 𝑉 ∧ 1 ≤ (♯‘𝑃)) → (lastS‘(𝑃 ++ ⟨“(𝑃‘0)”⟩)) = ((𝑃 ++ ⟨“(𝑃‘0)”⟩)‘0))
 
Theoremccatw2s1p1g 11361 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.) (Revised by AV, 1-May-2020.) (Revised by AV, 29-Jan-2024.)
(((𝑊 ∈ Word 𝑉 ∧ (♯‘𝑊) = 𝑁) ∧ (𝑋𝑉𝑌𝑉)) → (((𝑊 ++ ⟨“𝑋”⟩) ++ ⟨“𝑌”⟩)‘𝑁) = 𝑋)
 
Theoremccatw2s1p2 11362 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.)
(((𝑊 ∈ Word 𝑉 ∧ (♯‘𝑊) = 𝑁) ∧ (𝑋𝑉𝑌𝑉)) → (((𝑊 ++ ⟨“𝑋”⟩) ++ ⟨“𝑌”⟩)‘(𝑁 + 1)) = 𝑌)
 
Theoremccat2s1fvwd 11363 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.) (Revised by AV, 28-Jan-2024.)
(𝜑𝑊 ∈ Word 𝑉)    &   (𝜑𝐼 ∈ ℕ0)    &   (𝜑𝐼 < (♯‘𝑊))    &   (𝜑𝑋𝐴)    &   (𝜑𝑌𝐵)       (𝜑 → (((𝑊 ++ ⟨“𝑋”⟩) ++ ⟨“𝑌”⟩)‘𝐼) = (𝑊𝐼))
 
Theoremccat2s1fstg 11364 The first symbol of the concatenation of a word with two single symbols. (Contributed by Alexander van der Vekens, 22-Sep-2018.) (Revised by AV, 28-Jan-2024.)
(((𝑊 ∈ Word 𝑉 ∧ 0 < (♯‘𝑊)) ∧ (𝑋𝐴𝑌𝐵)) → (((𝑊 ++ ⟨“𝑋”⟩) ++ ⟨“𝑌”⟩)‘0) = (𝑊‘0))
 
4.7.6  Subwords/substrings
 
Syntaxcsubstr 11365 Syntax for the subword operator.
class substr
 
Definitiondf-substr 11366* Define an operation which extracts portions (called subwords or substrings) of words. Definition in Section 9.1 of [AhoHopUll] p. 318. (Contributed by Stefan O'Rear, 15-Aug-2015.)
substr = (𝑠 ∈ V, 𝑏 ∈ (ℤ × ℤ) ↦ if(((1st𝑏)..^(2nd𝑏)) ⊆ dom 𝑠, (𝑥 ∈ (0..^((2nd𝑏) − (1st𝑏))) ↦ (𝑠‘(𝑥 + (1st𝑏)))), ∅))
 
Theoremfzowrddc 11367 Decidability of whether a range of integers is a subset of a word's domain. (Contributed by Jim Kingdon, 23-Dec-2025.)
((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → DECID (𝐹..^𝐿) ⊆ dom 𝑆)
 
Theoremswrdval 11368* Value of a subword. (Contributed by Stefan O'Rear, 15-Aug-2015.)
((𝑆𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑆 substr ⟨𝐹, 𝐿⟩) = if((𝐹..^𝐿) ⊆ dom 𝑆, (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))), ∅))
 
Theoremswrd00g 11369 A zero length substring. (Contributed by Stefan O'Rear, 27-Aug-2015.)
((𝑆𝑉𝑋 ∈ ℤ) → (𝑆 substr ⟨𝑋, 𝑋⟩) = ∅)
 
Theoremswrdclg 11370 Closure of the subword extractor. (Contributed by Stefan O'Rear, 16-Aug-2015.) (Revised by Mario Carneiro, 26-Feb-2016.)
((𝑆 ∈ Word 𝐴𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝑆 substr ⟨𝐹, 𝐿⟩) ∈ Word 𝐴)
 
Theoremswrdval2 11371* Value of the subword extractor in its intended domain. (Contributed by Stefan O'Rear, 15-Aug-2015.) (Proof shortened by AV, 2-May-2020.)
((𝑆 ∈ Word 𝐴𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → (𝑆 substr ⟨𝐹, 𝐿⟩) = (𝑥 ∈ (0..^(𝐿𝐹)) ↦ (𝑆‘(𝑥 + 𝐹))))
 
Theoremswrdlen 11372 Length of an extracted subword. (Contributed by Stefan O'Rear, 16-Aug-2015.)
((𝑆 ∈ Word 𝐴𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → (♯‘(𝑆 substr ⟨𝐹, 𝐿⟩)) = (𝐿𝐹))
 
Theoremswrdfv 11373 A symbol in an extracted subword, indexed using the subword's indices. (Contributed by Stefan O'Rear, 16-Aug-2015.)
(((𝑆 ∈ Word 𝐴𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) ∧ 𝑋 ∈ (0..^(𝐿𝐹))) → ((𝑆 substr ⟨𝐹, 𝐿⟩)‘𝑋) = (𝑆‘(𝑋 + 𝐹)))
 
Theoremswrdfv0 11374 The first symbol in an extracted subword. (Contributed by AV, 27-Apr-2022.)
((𝑆 ∈ Word 𝐴𝐹 ∈ (0..^𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → ((𝑆 substr ⟨𝐹, 𝐿⟩)‘0) = (𝑆𝐹))
 
Theoremswrdf 11375 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.)
((𝑊 ∈ Word 𝑉𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → (𝑊 substr ⟨𝑀, 𝑁⟩):(0..^(𝑁𝑀))⟶𝑉)
 
Theoremswrdvalfn 11376 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.)
((𝑆 ∈ Word 𝑉𝐹 ∈ (0...𝐿) ∧ 𝐿 ∈ (0...(♯‘𝑆))) → (𝑆 substr ⟨𝐹, 𝐿⟩) Fn (0..^(𝐿𝐹)))
 
Theoremswrdrn 11377 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.)
((𝑊 ∈ Word 𝑉𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑊))) → ran (𝑊 substr ⟨𝑀, 𝑁⟩) ⊆ 𝑉)
 
Theoremswrdlend 11378 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.)
((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → (𝐿𝐹 → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
 
Theoremswrdnd 11379 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.)
((𝑊 ∈ Word 𝑉𝐹 ∈ ℤ ∧ 𝐿 ∈ ℤ) → ((𝐹 < 0 ∨ 𝐿𝐹 ∨ (♯‘𝑊) < 𝐿) → (𝑊 substr ⟨𝐹, 𝐿⟩) = ∅))
 
Theoremswrd0g 11380 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 ⟨𝐹, 𝐿⟩) = ∅)
 
Theoremswrdrlen 11381 Length of a right-anchored subword. (Contributed by Alexander van der Vekens, 5-Apr-2018.)
((𝑊 ∈ Word 𝑉𝐼 ∈ (0...(♯‘𝑊))) → (♯‘(𝑊 substr ⟨𝐼, (♯‘𝑊)⟩)) = ((♯‘𝑊) − 𝐼))
 
Theoremswrdlen2 11382 Length of an extracted subword. (Contributed by AV, 5-May-2020.)
((𝑆 ∈ Word 𝑉 ∧ (𝐹 ∈ ℕ0𝐿 ∈ (ℤ𝐹)) ∧ 𝐿 ≤ (♯‘𝑆)) → (♯‘(𝑆 substr ⟨𝐹, 𝐿⟩)) = (𝐿𝐹))
 
Theoremswrdfv2 11383 A symbol in an extracted subword, indexed using the word's indices. (Contributed by AV, 5-May-2020.)
(((𝑆 ∈ Word 𝑉 ∧ (𝐹 ∈ ℕ0𝐿 ∈ (ℤ𝐹)) ∧ 𝐿 ≤ (♯‘𝑆)) ∧ 𝑋 ∈ (𝐹..^𝐿)) → ((𝑆 substr ⟨𝐹, 𝐿⟩)‘(𝑋𝐹)) = (𝑆𝑋))
 
Theoremswrdwrdsymbg 11384 A subword is a word over the symbols it consists of. (Contributed by AV, 2-Dec-2022.)
((𝑆 ∈ Word 𝐴𝑀 ∈ (0...𝑁) ∧ 𝑁 ∈ (0...(♯‘𝑆))) → (𝑆 substr ⟨𝑀, 𝑁⟩) ∈ Word (𝑆 “ (𝑀..^𝑁)))
 
Theoremswrdsb0eq 11385 Two subwords with the same bounds are equal if the range is not valid. (Contributed by AV, 4-May-2020.)
(((𝑊 ∈ Word 𝑉𝑈 ∈ Word 𝑉) ∧ (𝑀 ∈ ℕ0𝑁 ∈ ℕ0) ∧ 𝑁𝑀) → (𝑊 substr ⟨𝑀, 𝑁⟩) = (𝑈 substr ⟨𝑀, 𝑁⟩))
 
Theoremswrdsbslen 11386 Two subwords with the same bounds have the same length. (Contributed by AV, 4-May-2020.)
(((𝑊 ∈ Word 𝑉𝑈 ∈ Word 𝑉) ∧ (𝑀 ∈ ℕ0𝑁 ∈ ℕ0) ∧ (𝑁 ≤ (♯‘𝑊) ∧ 𝑁 ≤ (♯‘𝑈))) → (♯‘(𝑊 substr ⟨𝑀, 𝑁⟩)) = (♯‘(𝑈 substr ⟨𝑀, 𝑁⟩)))
 
Theoremswrdspsleq 11387* 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.)
(((𝑊 ∈ Word 𝑉𝑈 ∈ Word 𝑉) ∧ (𝑀 ∈ ℕ0𝑁 ∈ ℕ0) ∧ (𝑁 ≤ (♯‘𝑊) ∧ 𝑁 ≤ (♯‘𝑈))) → ((𝑊 substr ⟨𝑀, 𝑁⟩) = (𝑈 substr ⟨𝑀, 𝑁⟩) ↔ ∀𝑖 ∈ (𝑀..^𝑁)(𝑊𝑖) = (𝑈𝑖)))
 
Theoremswrds1 11388 Extract a single symbol from a word. (Contributed by Stefan O'Rear, 23-Aug-2015.)
((𝑊 ∈ Word 𝐴𝐼 ∈ (0..^(♯‘𝑊))) → (𝑊 substr ⟨𝐼, (𝐼 + 1)⟩) = ⟨“(𝑊𝐼)”⟩)
 
Theoremswrdlsw 11389 Extract the last single symbol from a word. (Contributed by Alexander van der Vekens, 23-Sep-2018.)
((𝑊 ∈ Word 𝑉𝑊 ≠ ∅) → (𝑊 substr ⟨((♯‘𝑊) − 1), (♯‘𝑊)⟩) = ⟨“(lastS‘𝑊)”⟩)
 
Theoremccatswrd 11390 Joining two adjacent subwords makes a longer subword. (Contributed by Stefan O'Rear, 20-Aug-2015.)
((𝑆 ∈ Word 𝐴 ∧ (𝑋 ∈ (0...𝑌) ∧ 𝑌 ∈ (0...𝑍) ∧ 𝑍 ∈ (0...(♯‘𝑆)))) → ((𝑆 substr ⟨𝑋, 𝑌⟩) ++ (𝑆 substr ⟨𝑌, 𝑍⟩)) = (𝑆 substr ⟨𝑋, 𝑍⟩))
 
Theoremswrdccat2 11391 Recover the right half of a concatenated word. (Contributed by Mario Carneiro, 27-Sep-2015.)
((𝑆 ∈ Word 𝐵𝑇 ∈ Word 𝐵) → ((𝑆 ++ 𝑇) substr ⟨(♯‘𝑆), ((♯‘𝑆) + (♯‘𝑇))⟩) = 𝑇)
 
4.7.7  Prefixes of a word
 
Syntaxcpfx 11392 Syntax for the prefix operator.
class prefix
 
Definitiondf-pfx 11393* Define an operation which extracts prefixes of words, i.e. subwords (or substrings) starting at the beginning of a word (or string). In other words, (𝑆 prefix 𝐿) is the prefix of the word 𝑆 of length 𝐿. Definition in Section 9.1 of [AhoHopUll] p. 318. See also Wikipedia "Substring" https://en.wikipedia.org/wiki/Substring#Prefix. (Contributed by AV, 2-May-2020.)
prefix = (𝑠 ∈ V, 𝑙 ∈ ℕ0 ↦ (𝑠 substr ⟨0, 𝑙⟩))
 
Theorempfxval 11394 Value of a prefix operation. (Contributed by AV, 2-May-2020.)
((𝑆𝑉𝐿 ∈ ℕ0) → (𝑆 prefix 𝐿) = (𝑆 substr ⟨0, 𝐿⟩))
 
Theorempfx00g 11395 The zero length prefix is the empty set. (Contributed by AV, 2-May-2020.)
(𝑆𝑉 → (𝑆 prefix 0) = ∅)
 
Theorempfx0g 11396 A prefix of an empty set is always the empty set. (Contributed by AV, 3-May-2020.)
(𝐿 ∈ ℕ0 → (∅ prefix 𝐿) = ∅)
 
Theoremfnpfx 11397 The domain of the prefix extractor. (Contributed by Jim Kingdon, 8-Jan-2026.)
prefix Fn (V × ℕ0)
 
Theorempfxclg 11398 Closure of the prefix extractor. (Contributed by AV, 2-May-2020.)
((𝑆 ∈ Word 𝐴𝐿 ∈ ℕ0) → (𝑆 prefix 𝐿) ∈ Word 𝐴)
 
Theorempfxclz 11399 Closure of the prefix extractor. This extends pfxclg 11398 from 0 to (negative lengths are trivial, resulting in the empty word). (Contributed by Jim Kingdon, 8-Jan-2026.)
((𝑆 ∈ Word 𝐴𝐿 ∈ ℤ) → (𝑆 prefix 𝐿) ∈ Word 𝐴)
 
Theorempfxmpt 11400* Value of the prefix extractor as a mapping. (Contributed by AV, 2-May-2020.)
((𝑆 ∈ Word 𝐴𝐿 ∈ (0...(♯‘𝑆))) → (𝑆 prefix 𝐿) = (𝑥 ∈ (0..^𝐿) ↦ (𝑆𝑥)))
    < 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-17009
  Copyright terms: Public domain < Previous  Next >