|
![]()
Jeffrey Shallit |
This book focuses on a decision procedure, which is rather easy to implement as a computer program and allows one to prove many results, classical and new, in combinatorics on words. It addresses decision problems and enumeration problems on sequences that are expressible in first-order logic. The reader will appreciate the style, which is relaxed and pleasant to read, and the numerous examples and exercises. This book is a useful complement to the previous monograph, Automatic Sequences, co-authored by Shallit and Allouche.
Yann Bugeaud - University of Strasbourg
This is a marvelous book with a very fresh approach to the decidability and structural analysis of combinatorics on words. It combines three different mathematical research topics: first-order logic, automatic sequences, and combinatorics on words. More precisely, it interprets infinite morphic words as automatic sequences via k-automata and expresses properties (of words) in first-order logic. Due to the decidability of such logic, decision results and structural properties of combinatorics on words are established. A crucial role in this approach is to employ a powerful software package called Walnut. The author illustrates the power of his approach by giving a huge number of results obtained by this method. Not only are old and new results proved, but even some errors in previous ones are corrected. Anybody interested in, or curious about, this topic should be enthusiastic about this masterpiece.
Juhani Karhumäki - University of Turku (Emeritus)
Page 55: Line 10, replace F with Fi. (Lucas Mol)
Exercise 41, section 7.1.1: Part (c), second term should be F_3, not F_4. (Robbert Fokkink).
Section 8.1.9: the Walnut code for "rsrun0" is wrong; it should be
def rsrun0 "n>=1 & (At t<n => RS[i+t]=@0) & RS[i+n]!=@0 & (i=0|RS[i-1]!=@0)":
Page 125: Line 4, delete the word "corresponding". (Lucas Mol)