Counting is Easy
Abstract
For any fixed , a remarkably simple single-tape Turing machine can simulate independent counters in real time. Informally, a counter is a storage unit that maintains a single integer (initially 0), incrementing it, decrementing it, or reporting its sign (positive, negative, or zero) on command. Any automaton that responds to each successive command as a counter would is said to simulate a counter. (Only for a sign inquiry is the response of interest, of course. And zeroness is the only real issue, since a simulator can readily use zero detection to keep track of positivity and negativity in finite-state control. In this paper we describe a remarkably simple real-time simulation, based on just five simple rewriting rules, of any fixed number of independent counters. On a Turing machine with a single, binary work tape, the simulation runs in real time, handling an arbitrary counter command at each step. The space used by the simulation can be held to bits for the first commands, for any specified .
Cite
@article{arxiv.cs/0110038,
title = {Counting is Easy},
author = {Joel Seiferas and Paul Vitanyi},
journal= {arXiv preprint arXiv:cs/0110038},
year = {2007}
}