Computer science Automata and formal languages Theorem
Parikh's theorem
Builds on Context-free languageRegular languagePresburger arithmetic
Statement
Let be a finite alphabet. The Parikh map sends a word to , where is the number of occurrences of in . A set is linear if for some , and semilinear if it is a finite union of linear sets. Let be a context-free language. Then:
- the set is semilinear;
- there is a regular language with .
Remarks
The two parts are equivalent, because the Parikh images of regular languages are exactly the semilinear sets. The proof decomposes parse trees. Each tree is built from a bounded tree by inserting pumping pieces, as in the pumping lemma, and each pumping piece adds a vector from a finite set. Example: has , a linear set with and , and the regular language has the same image. A consequence is that every context-free language over a one-letter alphabet is regular. The theorem does not say that itself is regular: is not.
Going deeper
For a student
Parikh's theorem is a tool to show that a language is not context-free: if its letter counts do not form a semilinear set, it is not. For example, is not context-free, since is not a finite union of arithmetic progressions. The semilinear sets are exactly the subsets of definable in Presburger arithmetic, which links the theorem to logic. It is also used in the verification of systems with counters.
Reading path
To understand this page from the ground up, read these 9 pages in order. The foundations come first.
Show the path as a graph
- no evidence level
- Complete theory concept
- Congruence modulo n concept
- Context-free language concept
- Integers object
- Natural numbers object
- Peano axioms concept
- Regular language concept
- Presburger arithmetic example
- Parikh's theorem statement
Further reading
About this page
| Tag | 7DSXBWD96M |
|---|---|
| URI | m2://7DSXBWD96M |
| Kind | statement, theorem |
| Writing | W0 stub |
| MSC | 68Q45, 68R15 |
| Status | This copy of the site has no build data. Run m2 status 7DSXBWD96M. |
| About | Context-free language |
| Uses | Context-free language, Regular language, Presburger arithmetic |
| Same as | |
| Changed | 3 November 2026 |
Markdown · JSON · Edit on GitHub
What this page needs for W1
- an inventory row: the row of the inventory that the node accounts for (0 of 1)
- a source with a locator (0 of 1)
The writing levels say how complete the text of a page is. They do not measure its truth.
What links here
No page links to this page yet.