Счетчиковые машины, эквивалентность двухсчетчиковой машины МТ
| Определение: | 
| -счётчиковой машиной называется набор , где 
 Для каждого счётчика возможны четыре операции: увеличить на один, уменьшить на один, не изменять значение, проверить является ли значение счетчика нулем.Будем считать, что значение нулевых счётчиков уменьшать нельзя. | 
По сути, -счётчиковая машина является -стековой машиной с односимвольным алфавитом.
Эквивалентность двухсчетчиковой машины машине Тьюринга
| Лемма: | 
| Язык  допускается машиной Тьюринга тогда и только тогда, когда он допускается трехсчётчиковой машиной. | 
| Доказательство: | 
| Так как двухстековая машина эквивалентна машине Тьюринга, то достаточно показать, что трехсчётчиковая машина эквивалентна по вычислительной мощности двухстековой машине. Пусть стековая машина имеет стековый алфавит . Тогда любое из состояний стеков можно считать числом в системе счисления с основанием . Пусть первому стеку соответствует число на первом счётчике трехсчётчиковой машины, второму стеку — второе, а третий счётчик используется для временных вычислений. Тогда операции со стеком можно реализовать на трехсчётчиковой машине: 
 Все эти элементарные операции очевидно реализуются при помощи третьего счётчика. Например, рассмотрим операцию добавления символа в стек. Напишем программу для трехсчётчиковой машины, реализующую эту операцию.  while (первый счётчик не ноль)
 {
    for (i = 0; i < ; ++i)
      увеличить третий счётчик;
    уменьшить первый счётчик;
 }
 for (i = 0; i < номер добавляемого символа в алфавите; ++i)
   увеличить третий счётчик;
 while (третий счётчик не ноль)
 {
    уменьшить третий счётчик;
    увеличить первый счётчик;
 }
Аналогично реализуются остальные стековые операции. Таким образом получили, что для любой операции  с двухстековой машиной существует эквивалентная операция с трехсчётчиковой машиной. Так как стековый алфавит конечен, то и управляющий автомат эквивалентной трехсчётчиковой машины будет иметь конечное число состояний. То есть для любой двухстековой машины существует эквивалентная ей трехсчётчиковая. | 
| Лемма: | 
| Для любого  и для любой -счётчиковой машины существует эквивалентная ей двухсчётчиковая машина. | 
| Доказательство: | 
| Пусть — значения счётчиков -счётчиковой машины. Тогда состояние -счётчиковой машины можно охарактеризовать одним числом , где — -е простое число. Тогда любое состояние k-счётчиковой машины можно хранить на одном счётчике, а операции увеличения значения счетчика, уменьшения значения счетчика и проверки является ли счетчик нулём осуществляются на двухсчётчиковой машине при помощи операций умножения, деления и нахождения остатка от деления на соответствующее номеру счётчика простое число. Для этих вычислений и будет использоваться второй счётчик. Таким образом, для любого и для любой -счётчиковой машины существует эквивалентная ей двухсчётчиковая машина. | 
| Теорема: | 
| Для любого перечислимого языка  существует двухсчётчиковая машина, которая распознает этот язык. | 
| Доказательство: | 
| Утверждение теоремы очевидно следует из двух описанных выше лемм, тезиса Тьюринга-Черча и эквивалентности двухстековой машины машине Тьюринга. | 
Источники
Джон Хопкрофт, Раджив Мотвани, Джеффри Ульман. Введение в теорию автоматов, языков и вычислений.
