Parikh's theorem
In theoretical computer science, Parikh's theorem states that if one looks only at the number of occurrences of each terminal symbol in a context-free language, without regard to their order, then the language is indistinguishable from a regular language. It is useful for deciding that strings with a given number of terminals are not accepted by a context-free grammar. It was first proved by Rohit Parikh in 1961 and republished in 1966.
Definitions and formal statement
Let be an alphabet. The Parikh vector of a word is defined as its image under the function, given bywhere denotes the number of occurrences of the symbol in the word.
A subset of is said to be linear if it is of the form
for some vectors.
A subset of is said to be semi-linear if it is a union of finitely many linear subsets.
In short, the image under of context-free languages and of regular languages is the same, and it is equal to the set of semilinear sets.
Two languages are said to be commutatively equivalent if they have the same set of Parikh vectors. Thus, every context-free language is commutatively equivalent to some regular language.
Proof
The second part is easy to prove.The first part is less easy. The following proof is credited to Goldstine.
First we need a small strengthening of the pumping lemma for context-free languages:
The proof is essentially the same as the standard pumping lemma: use the pigeonhole principle to find copies of some nonterminal symbol in the longest path in the shortest derivation tree.
Now we prove the first part of Parikh's theorem, making use of the above lemma.
Strengthening for bounded languages
A language is bounded if for some fixed words.Ginsburg and Spanier
gave a necessary and sufficient condition, similar to Parikh's theorem, for bounded languages.
Call a linear set stratified, if in its definition for each the vector has the property that it has at most two non-zero coordinates, and for each if each of the vectors has two non-zero coordinates, and, respectively, then their order is not.
A semi-linear set is stratified if it is a union of finitely many stratified linear subsets.