We have followed the notations and algorithms given in Colin de la Hihuera's book.
The details of RPNI algorithms can be found in chapter 12, EDSM in chapter 14 and k-testable language in chapter 11 of the book.
In this section we briefly introduce notations and definitions.
Preliminaries