# Tag system

A **tag system** is a restricted kind of Post normal system where productions can only be uniquely selected based on the first symbol of each of their antecedents.

## History

Tag systems were studied by Emil Post as early as 1920. The name comes from the children's schoolyard game, *Tag*, with the analogy being that one end of the axiom is "chasing" the other.

## Definition

A tag system can be defined formally as follows:
^{[1]}
^{[2]}
^{[3]}

A tag system is a 3-tuple (m, A, P), where

- m is a positive integer
- A is a finite alphabet of symbols, one of which is a special
*halting symbol* - P is a set of
*production rules*, assigning some word P(x) to each non-halting symbol x in A; a*word*is a finite string on A

The term *m-tag system* (e.g. 2-tag system, etc.) is often used to
emphasise the parameter m.

A *halting word* is a word either that begins with the halting symbol
or whose length is less than m.

A transformation t is defined on the set of non-halting words, such that if x denotes the leftmost symbol of a word S, then t(S) is the result of deleting the leftmost m symbols of S and appending the word P(x) on the right.

A *computation* by a tag system is a finite sequence of words produced
by iterating the t-transformation, starting with an initially given word
and halting when a halting word is produced. (A computation is not
considered to exist unless a halting word is produced by finitely-many
iterations.)

There are various variants of this definition. E.g. Post's original 1943 version applied appending before deleting, giving only the empty string as halting word.

## Example

Tag system m: 2 A: {1,2,3,H} P: 1 --> 3321H 2 --> 331 3 --> 33 Computation Initial word: 211 1331 313321H 3321H33 21H3333 H3333331 (halt).

## Computational class

In 1961, Marvin Minsky^{[4]} gave a method for translating any Turing machine with a given number of symbols into a tag system with a proportional number of symbols, thus showing that tag systems are Turing-complete. Many 2-tag systems have since been proved Turing-complete as well.

## References

- ↑ Wang, H.
*Tag Systems and Lag Systems*, Math. Annalen 152, 65-74 (1963). - ↑ Cocke, J., and Minsky, M.
*Universality of Tag Systems with P=2*, J. Assoc. Comput. Mach. 11, 15-20 (1964). - ↑ Rogozhin, Yu.
*Small Universal Turing Machines*, Theoret. Comput. Sci. 168, 215-240 (1996). - ↑ Minsky, M.
*Recursive Unsolvability of Post's Problem of "Tag" and other Topics in Theory of Turing Machines*, the Annals of Mathematics, 2nd ser., Vol. 74, No. 3. (Nov., 1961), pp. 437–455.

## See also

## External resources

- Tag System on Wikipedia
- A tag system interpreter in Jelly, runnable online at Try It Online! – uses 1-based state numbering, a halt state is specified by giving it the production
`[0]`