A Post canonical system is a triplet (A,I,R), where
dots dots dots dots dots dots dots dotsg_{k0} $_{k1} g_{k1} $_{k2} g_{k2} dots $_{km_k} g_{km_k}
downarrow
h_0 $'_1 h_1 $'_2 h_2 dots $'_n h_nend{matrix}
where each g and h is a specified fixed word, and each $ and $' is a variable standing for an arbitrary word. The strings before and after the arrow in a production rule are called the rule's antecedents and consequent, respectively. It is required that each $' in the consequent be one of the $s in the antecedents of that rule, and that each antecedent and consequent contain at least one variable.
In many contexts, each production rule has only one antecedent, thus taking the simpler form
The formal language generated by a Post canonical system is the set whose elements are the initial words together with all words obtainable from them by repeated application of the production rules. Such sets are precisely the recursively enumerable languages.
Alphabet: {[, ]}
Initial word: []
Production rules:
(1) $ → [$]
(2) $ → $$
(3) $1[]$2 → $1$2
Derivation of a few words in the language of well-formed bracket expressions:
[] initial word
[][] by (2)
[[][]] by (1)
[[][]][[][]] by (2)
[[][]] by (3)
[[][]][] by (3)
...
Post 1943 proved the remarkable Normal-form Theorem, which applies to the most-general type of Post canonical system:
Tag systems, which comprise a universal computational model, are notable examples of Post normal-form system, being also monogenic. (A canonical system is said to be monogenic if, given any string, at most one new string can be produced from it in one step — i.e., the system is deterministic.)
That is, each production rule is a simple substitution rule, often written in the form g → h. It has been proved that any Post canonical system is reducible to such a substitution system, which, as a formal grammar, is also called a phrase-structure grammar, or a type-0 grammar in the Chomsky hierarchy.