Language and tilings

This page gathers ideas for refactorization of sage.combinat.words and implementation of tilings.

Structure

The main structure should go in the patch #12224. Up to now the code is a bit dissaminated everywhere in Sage:

Tiling space

The highest level class should be something like TilingSpace. It contains an enumerated set, an alphabet (and optionally a way of plotting). Do we always assume that the enumerated set is either a group (like ZZ) or a sub-semigroup of a group (like NN) ?

Behavior of algorithms with infinite input data

What to do for equality comparison of infinite words ?

Finite languages and factor set

#12225

Substitutive and adic languages

There are many algorithms for language described by a sequence of substitutions. The particular case of morphic and purely morphic languages corresponds respectively to periodic and purely_periodic directive word.

TODO list

which should go in the ticket

other request