  In the literature of algorithms, the specific computation model is often not
explicit as it is assumed that the model of computation is the RAM (Random
Access Machine) model. However, the RAM model itself is ill-founded in the
literature, with disparate definitions and no unified results.
  The ambition of this paper is to found the RAM model from scratch by
exhibiting a RAM model that enjoys interesting algorithmic properties and the
robustness of its complexity classes, notably LIN, the class of linear-time
computable problems, or the now well-known CONST-DELAY-lin class of enumeration
problems computable with constant delay after linear-time preprocessing,
  The computation model that we define is a RAM whose contents and addresses of
registers are $O(N)$, where $N$ is the size (number of registers) of the input,
and where the time cost of each instruction is 1 (unit cost criterion). The key
to the foundation of our RAM model will be to prove that even if addition is
the only primitive operation, such a RAM can still compute all the basic
arithmetic operations in constant time after a linear-time preprocessing.
Moreover, while the RAM handles only $O(N)$ integers in each register, we will
show that our RAM can handle $O(N^d)$ integers, for any fixed d, by storing
them on $O(d)$ registers and we will have surprising algorithms that computes
many operations acting on these "polynomial" integers -- addition, subtraction,
multiplication, division, exponential, integer logarithm, integer square root
(or $c$-th root, for any integer $c$), bitwise logical operations, and, more
generally, any operation computable in linear time on a cellular automaton --
in constant time after a linear-time preprocessing.
