Published online by Cambridge University Press: 15 April 2002
We consider languages expressed by word equations in two variables and give a complete characterization for their complexity functions, that is, the functions that give the number of words of the same length. Specifically, we prove that there are only five types of complexities: constant, linear, exponential, and two in between constant and linear. For the latter two, we give precise characterizations in terms of the number of solutions of Diophantine equations of certain types. In particular, we show that the linear upper bound on the non-exponential complexities by Karhumäki et al. in [9], is tight. There are several consequences of our study. First, we derive that both of the sets of all finite Sturmian words and of all finite Standard words are expressible by word equations. Second, we characterize the languages of non-exponential complexity which are expressible by two-variable word equations as finite unions of several simple parametric formulae and solutions of a two-variable word equation with a finite graph. Third, we find optimal upper bounds on the solutions of (solvable) two-variable word equations, namely, linear bound for one variable and quadratric for the other. From this, we obtain an $\mathcal{O}(n^6)$ algorithm for testing the solvability of two-variable word equations, improving thus very much Charatonik and Pacholski's $\mathcal{O}(n^100)$ algorithm from [3].