Introduction
Given an infinite word, we can study the language of its finite factors. Intuitively, we expect that ‘simple’ words (because they are generated by simple devices, or have some regularity property) will also have a ‘simple’ language of factors. One way to quantify this is to just count factors of each length. In doing so, we associate a function with the infinite word considered: its factor complexity function.
This function was introduced in 1938 by Gustav A. Hedlund and Marston Morse (Morse and Hedlund 1938), under the name block growth, as a tool to study symbolic dynamical systems. The name subword complexity was given in 1975 by Andrzej Ehrenfeucht, Kwok Pun Lee and Grzegorz Rozenberg (Ehrenfeucht, Lee, and Rozenberg 1975). Here we use factor complexity for consistence with the use of factor (see Section 1.2.3).
Factor complexity should not be confused with other notions of complexity, like algorithmic complexity or Kolmogorov complexity. We shall not use them here, and by ‘complexity’ we always mean ‘factor complexity’.
Factor complexity will be used in Chapter 7 in combinatorial criteria for unique ergodicity, see Section 7.3.1. In Chapter 8 it is applied to the expansion of real numbers, see Theorem 8.1.6.
Definitions, basic properties and first examples
Factor complexity
Let A be a finite alphabet, of cardinality d. We consider an infinite word u = u0u1u2 … ϵ Aℕ.