What it the simplest (least powerful) abstract machine that can compute primitive recursive sets, i.e. sets whose characteristic or indicator function is primitive recursive?
$$f:\mathbb{N}\rightarrow\mathbb{B}$$
Most descriptions of abstract machines I've found online tend to be either too powerful (e.g. Turing machines, tag systems, queue automata, etc) or too weak (e.g. pushdown automata, finite state machines, etc).
Apparently BlooP is an example of a programming language that can only express primitive recursive functions. Is there a simpler, computationally equivalent version of this language that can compute primitive recursive sets?
Alternatively, what is the basis for primitive recursive predicates?
Related: https://mathoverflow.net/questions/73068/machine-model-for-primitive-recursion
The for language is much simpler and is able to express all primitive recursive functions :
You can have as many variables (a,b,c,...) as you want that contains a natural integer. The first variables are usually used as input (all other variable are initialised to 0) and the first variable can be used also as the output.
Operations :
For example to compute $a+b$ :
For example to compute $(a\mod 2)$ (I added line comments to explain the program after //)