Showing star-freeness of recursively defined languages

507 Views Asked by At

Problem: Define a sequence of languages on $A$, a finite alphabet as $D_0 = 1$ (empty string) and $D_{n+1}= (aD_nb)^*$.

Show that each $D_i$ is star-free (for each there is an equivalent star-free regular expression). $D_1 = (ab)^*, D_2 = (a(ab)^*b)^*$

I can see how to write them both in a star-free manner. We have to basically avoid some (finitely) forbidden subwords. Explicitly, $D_1 = (b \emptyset^c + \emptyset^ca + \emptyset^caa\phi^c + \emptyset^cbb\emptyset^c)$. $D_2$ is a bit more messy.

But I don't know how to show that $D_n$ in general is star-free. Please help. I know the basic results like Schützenberger's theorem for star-free languages.

This problem is taken from the text Mathematical Foundations of Automata Theory by Jean-Éric Pin.

1

There are 1 best solutions below

1
On BEST ANSWER

Step 1. Show that $D_n$ is recognised by the automaton ${\cal A}_n$ below

Automaton for Dn

Step 2. Let $p$ be a state of ${\cal A}_n$ and let $u$ be a word. Show that if $p\cdot u$ is defined, then $p\cdot u = p + |u|_a - |u|_b$.

Step 3. Show that for each word $u$, $u^{n+1} \sim_{D_n} u^{n+2}$, where $\sim_{D_n}$ is the syntactic congruence of $D_n$.

Step 4. Conclude by using Schützenberger's theorem.