I'm looking for references that give an algorithm to solve this problem:
Problem: Given a finite alphabet Σ and a finite language L ⊆ Σ* , determine whether L* is a free monoid.
Equivalently, the problem is to determine, given a finite set of strings, whether every concatenation of these strings is uniquely decomposable using the same strings. For example, any language whose strings are all the same size will satisfy this condition, as will the language L = {a, ba}, but the language L = {ab, ba, aba} does not satisfy the condition because the string ababa
can be decomposed as either ab
aba
or aba
ba
.