0

I've been trying to proof The Chomsky–Schützenberger, but I stuck on creating regular language from that theorem. I mean reagular language, which is intersected with Duck language. Could anyone give me hints how to construct proper language?

Michocio
  • 203
  • 1
  • 6

1 Answers1

1

If you start with a pushdown automaton, then its instruction diagram can be interpreted as a finite state automaton. The instruction $(p,a,A,q,\alpha)$ — in state $p$ reading $a$ we pop $A$ go to state $q$ and push $\alpha$ — has an edge from $p$ to $q$ with label $(a,A,\alpha)$. This defines a regular language of possible instruction sequences (ignoring popping and pushing).

Now recode $(a,A,\alpha)$ by bracket symbols. $A$ is popped and is coded with the closing bracket $\bar A$, the symbols $\alpha$ are pushed and coded as opening brackets. If we code the instruction by the string $\bar A\alpha$ the (regular) language of instructions is a perfect matched bracket sequence (Dyck) if it is a legal sequence of popping and pushing. (Add $Z$ the initial stack symbol as first letter)

Now we forgot about the input letter $a$. This has to be inserted to the instruction, without losing the bracket structure. This is done by adding a virtual closing bracket $\bar a$ for each $a$. Thus, the finite state edge is now as follows: $(p,a\bar a \bar A\alpha,q)$.

Chomsky-Schutzerberger intersects with Dyck for the popping and pushing as I said, and retrieves the symbol $a$ using an homomorphism that deletes all other symbols.

It is also possible to start with a CF grammar in Greibach NF. Then the states totally disappear, the coding is similar, and the regular language is very simple: $S \{\; a\bar a \bar A \alpha^R \mid A\to \alpha \;\}^*$

Hendrik Jan
  • 30,578
  • 1
  • 51
  • 105