<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>The xed point problem for general and for linear SRL programs is undecidable</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Armando B. Matos</string-name>
          <email>armandobcm@yahoo.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Luca Paolini</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Luca Roversi</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Porto</institution>
          ,
          <country country="PT">Portugal</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Turin</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>SRL is a total programming language for reversible computing. In SRL, every program that mentions n registers denes a bijection Zn ! Zn. Since SRL contains only a very essential set of commands it is a language suitable for studying strengths and weaknesses of reversible computations. We deal with xed points in SRL, i.e. we are interested in the problem of deciding if there is a tuple of initial register values of a given program P that remains unaltered after the execution of P. First, we show that the existence of xed points in SRL is undecidable and complete in 10. Second, we show that such problem remains undecidable even when the number of registers mentioned by the program P is limited to 12. Moreover, if we restrict to linear programs of SRL, i.e. to those programs where dierent registers control nested loops, then the problem is undecidable already when programs mentions 3712 registers.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Loop languages are an important sub-class of while programming languages (see
for instance [
        <xref ref-type="bibr" rid="ref15 ref3 ref6">3,6,15</xref>
        ]) which characterize the class of primitive recursive functions
[
        <xref ref-type="bibr" rid="ref18 ref19">18,19</xref>
        ]. The language of [
        <xref ref-type="bibr" rid="ref18 ref19">18,19</xref>
        ] is the starting point to design the reversible
languages SRL and ESRL dened in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] (see also [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]).
      </p>
      <p>Each register contains a value in Z; each program mentioning n registers
denes a bijection Zn ! Zn. Consider the following SRL programs:
P0 : for x(inc r)
P1 : for x(dec r)</p>
      <p>P2 : for y(for x(inc r))
P3 : for x(for x(dec r))
The program P0 mentions the two registers x and r. If the initial value of x is
strictly positive, P0 eventually increments the initial value of r by (the initial
value of) x. If the initial value of x is negative, P0 eventually decrements the
initial value of r by x. So, in any case, P0 is the inverse of P1. I.e., running P1
after P0, written as P0; P1, we compute the identity on the tuple (x; r). It is
worth to note that SRL ensures the reversibility by forbidding the modication
of a register driving a loop (as x in P0) in the loop-body. P2 iterates P1. The
nal value of r is its initial value plus the product xy. P2 is linear because no
register driving a loop is mentioned in its body. Clearly, P3 is non -linear exactly
for the opposite reason. So, the nal value of r that P3 yields is its initial value
plus the square x2. The language ESRL extends SRL with the instruction that
exchanges the contents of two registers.</p>
      <p>
        The examples underline the three main aspects that dierentiate both SRL
and ESRL from non-reversible (classic) Loop languages and which ensure they
only compute bijections: (i) a program register may contain any, possibly
negative, integer; (ii) every elementary operation is reversible and (iii) a projection,
like ignoring registers (at output) or eliminating its content, is not allowed. This
is similar, but not completely identical to what happens in Quantum Mechanics.
General forms of cloning copying the content of a register to another and
erasing are not possible. Only some limited versions of them exist. For example,
the fan-out in [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] and the cloning of orthogonal states in [21, page 530] are
limited cloning.
      </p>
      <p>
        Among the languages whose programs represent exactly reversible functions,
SRL and ESRL [
        <xref ref-type="bibr" rid="ref17 ref22 ref23">17,23,22</xref>
        ] are probably the simplest ones, but they are far from
being trivial. For SRL and similar languages, nding undecidable decision
problems and proving their undecidability is harder than for Loop languages exactly
because SRL is extremely simple.
      </p>
      <p>In this paper, we focus on the xed point problem (shortened to xpoint
problem) for SRL: given a program P, is there an input tuple which is not
modied by the execution of P?. We prove that the xpoint problem is
undecidable and complete in 10. In particular, the undecidability shows up when the
programs mention 12 registers and, in the case of linear programs, when they
mention 3712 registers.</p>
      <p>
        We present a reduction from Hilbert’s Tenth Problem (shortened in HTP)
to the xpoint problem. Thus, an eventual algorithm that solves the xpoint
problem would give us an algorithm which, for any given Diophantine equation,
decides whether the equation has a solution with all unknowns taking integer
values (see [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] for more details). But such algorithm does not exist.
      </p>
      <p>
        We focus on problems related to HTP which look promising for dealing with
the problem we may ask on a programming language: Given P and Q in SRL,
are they equivalent? This question is showed to be undecidable for straight-line
programs by means of a proof that relies on HTP [
        <xref ref-type="bibr" rid="ref10 ref8 ref9">8,10,9</xref>
        ]. Since straight-line
programs can be viewed as a sort of trace-semantics for programs in SRL, we
conjecture that some results on such programs can also hold for SRL.
Contents. Section 2, page 2 contains the background necessary to understand
this work. The main results of this paper are Theorem 1 (page 7, Section 3) and
Theorem 3 (page 10, Section 4). Finally, in Section 5 (page 11) we present some
conclusions and open problems.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <p>The sets of positive integers, non-negative integers, integers, and rational
numbers are denoted by N+, N, Z and Q, respectively.
2.1</p>
      <p>The language SRL
SRL is a language whose programs work on registers that store values of Z. Each
program P of SRL denes a bijection Zn ! Zn, where n 2 N+ is the number
of registers that occur in the denition of P. Such n registers are said to be
mentioned or used in P. The program P 1 is the inverse of P and computes the
inverse bijection (below we explain how to generate P 1 in an eective manner).</p>
      <p>The syntax of SRL-programs relies on four possible constructions: (i) inc x
increments the content of the register x by 1; (ii) dec x decrements the content
of the register x by 1; (iii) P0; P1 is the sequential composition of 2 programs;
and, (iv) for r(P) iterates P as many times as the initial contents of r if that
value is positive; otherwise, if r contains a negative value, then the iteration is
on P 1. Moreover, the constraint that (iv) must satisfy is that neither inc r nor
dec r occur in P, leaving the content of r unchanged.</p>
      <p>An SRL-program is linear if in every instruction of the form for r(P), the
program P does not mention the register r. That is, P can contain neither inc r,
nor dec r, nor for r(P0) instructions.</p>
      <p>
        The inverse of an SRL-program is generated by transforming inc x, dec x,
P0; P1 and for r(P) in dec x, inc x, P1 1; P0 1 and for r(P 1), respectively. For
more information on SRL and its extensions, as well as results related with that
language, consult for instance [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ].
      </p>
      <p>Example 1. Let P be the program for r(for b(inc a); for a(inc b)). Let a = 0, b = 1,
and r = n be the initial values of the corresponding registers. The nal value
of a is F2n, i.e. the Fibonacci number with index 2n where we take Fk dened
for every k 2 Z. (the extension of the denition of Fk to negative values of k is
straightforward). We remark that F2n is exponential in n. Moreover, the inverse
of P is for r(for a(dec b); for b(dec a)).</p>
      <p>Denition 1 (Fixpoint of a program). Let P be a SRL program that
mentions n registers x = hx1; : : : ; xni. Let x, a tuple of n integers, denote the initial
values of x. Let P(x) be the tuple of the corresponding nal contents after P is
executed with the initial values x. If P(x) = x, then the tuple x is a xpoint of P.
2.2</p>
      <p>
        Decision problems and reductions
Let A be a predicate, i.e. a function from a set to truth values. A decision problem
related to A is an eective procedure able to say when the answer to A(x)? is
yes, for every x. Let B be also a decision problem. A (many-one) reduction of A
to B, written A B, is an eective function f which maps every instance x of A
to an instance f (x) of B such that the answer to A(x)? is yes i the answer to
B(f (x))? is yes. The relation is transitive. If A B and A is undecidable,
then B is also undecidable [
        <xref ref-type="bibr" rid="ref1 ref14 ref2 ref25 ref26 ref4 ref5 ref7">25,5,14,4,1,2,7,26</xref>
        ].
      </p>
      <p>Denition 2 ( FIXPOINT-decision problem). Let P be a SRL-program then
the FIXPOINT-decision problem is</p>
      <p>FIXPOINT(P)</p>
      <sec id="sec-2-1">
        <title>Does P have a xpoint? :</title>
        <p>More explicitly, FIXPOINT(P) is equivalent to: Given a SRL program P, is there
a tuple x such that P(x) = x ?.</p>
        <p>Moreover, we write l -FIXPOINT(P) whenever P is linear. We mean to ask: Given
a linear SRL program P, is there a tuple x such that P(x) = x?.</p>
        <p>
          Roughly speaking, this paper is about reducing Hilbert’s Tenth Problem
[
          <xref ref-type="bibr" rid="ref12 ref16 ref20 ref27">16,12,27,20</xref>
          ], also known as the Diophantine decision problem, to FIXPOINT(P)
and to l -FIXPOINT(P). We shall nd a constant c such that, if the number
of registers mentioned by P does not exceed c, the problem FIXPOINT(P) is
undecidable. We also prove analogous results for the problem l -FIXPOINT(P),
that is, when P is linear.
2.3
        </p>
        <p>Polynomials
Let p(x1; : : : ; xn) be an integer polynomial, i.e. a polynomial with integer
coecients and unknowns x1; : : : ; xn. A polynomial is in normal form if: (i) it is
a sum of monomials; (ii) each monomial has form cxe11 xe22 : : : xek where c 6= 0
k
is a constant, the unknowns x1,. . . , xk are pairwise distinct, and ei 1, for
every 1 i k; (iii) no two monomials have the same unknowns with the same
exponents.</p>
        <p>For instance, 3x2y+y2 yx2+5 is not in normal form. The unique normal form
of a given p(x1; : : : ; xn) can be obtained by sorting in lexicographic order: (i) the
unknowns within each monomial, and (ii) the monomials of the polynomial. For
example, the normal form of 3xy(z + y2) + 2z 3y3x is 3xyz + 2z. We shall often
omit exponents equal to 1 as well as monomial coecients c equal to 1. The null
polynomial is denoted by 0.</p>
        <p>Denition 3.</p>
        <p>For any polynomial p(x1; : : : ; xn) in normal form, we identify:
u(p) the number of unknowns
deg(xi) the maximum degree of the unknown xi
deg(p) the maximum among deg(x1) : : : deg(xn)
d(p) the maximum degree of a monomial of p,</p>
        <p>or the degree of the polynomial p.</p>
        <p>Example 2. Let p(x; y; z) = xy3z + 2xyz3 z4. The polynomial p has three
unknowns x; y and z, so u(p) = 3. The unknowns occur with various degrees in
distinct monomials, but the maximal exponents are deg(x) = 1, deg(y) = 3 and
deg(z) = 4. So 4 = deg(p) = deg(z). Finally, d(p) = 5, given by summing up all
the exponents of 2xyz3.
2.4</p>
        <p>Hilbert’s Tenth Problem and the Diophantine equation
problem.</p>
        <p>Let D be one among N+, N, Z or Q. As said, we shorten Hilbert’s Tenth Problem
by HTP. Its question about a given polynomial p(x1; : : : ; xn) is:</p>
        <sec id="sec-2-1-1">
          <title>Does a tuple x1; : : : ; xn of values in D exist</title>
          <p>such that p(x1; : : : ; xn) = 0?
HTP(D) can be straightforwardly generalized to questions on a set of integer
polynomials fp1(x1; : : : ; xn); : : : ; pm(x1; : : : ; xn)g as follows:</p>
          <p>HTP(D)(p1; : : : ; pm)</p>
        </sec>
        <sec id="sec-2-1-2">
          <title>Does a tuple x1; : : : ; xn of values in D exist</title>
          <p>such that pi(x1; : : : ; xn) = 0; for every 1
i
m ?</p>
          <p>
            The diculty of solving HTP(D) depends on D [16, (1.3.1)],[
            <xref ref-type="bibr" rid="ref12 ref13 ref20">13,12,20</xref>
            ]. If
a given HTP(D) problem is undecidable, we can look for the least number of
unknowns and the least degrees which suce to keep HTP(D) undecidable. To
our knowledge [
            <xref ref-type="bibr" rid="ref27">27</xref>
            ] contains the latest (very recent) improvements concerning
the bounds on that number of unknowns. I.e., for a single equation, HTP(Z) is
undecidable for polynomials with at least 11 unknowns.
          </p>
          <p>Denition 4. If the system of equations consists of a single equation, then
Equ(D) is our favourite notations for HTP(D). Instead, the notation Sys(D)
underlines that the given instance of HTP(D) has more than one Diophantine
equation.
3</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Properties of the xpoint problem for SRL</title>
      <p>The rst part of this section focuses on proving the next theorem.
Theorem 1. The problem FIXPOINT as in Denition 2 (page 3), is undecidable
and complete in 10.</p>
      <sec id="sec-3-1">
        <title>Proving Theorem 1</title>
        <p>The strategy is to reduce Equ(Z), i.e. HTP(Z) that deals with a single
Diophantine equation, to FIXPOINT. We show how by means of a signicant running
example. The example illustrates how to map a polynomial to a program of
SRL. The general case will follow easily. Let p(x; y) be the polynomial:</p>
        <p>We map p(x; y) to the program P(p), namely the sequential composition of the
following three lines of code:
for x(for x(for x(for y(for y(inc s; inc s)))));
for x(for y(for y(dec s)));
inc s; inc s.
(1)
(A)
(B)
(C)
(2)
(3)
(4)
Line (A) updates the content of s in accordance with the assignment:
The factor x3 follows from the three nested iterations driven by x. Analogously,
the two nested iterations driven by y yield the factor y2. Factor 2 comes from
inc s; inc s. Under the same idea, lines (B) and (C) produce:
s</p>
        <p>s + 2x3y2.
s
s
s
s + 2,
xy2
respectively. The overall eect of P(p) is thus to update the initial value of s
with the value of (1), for every xed value of x and y.</p>
        <p>Concerning the general case, for any polynomial p, the corresponding P(p)
uses as many registers as the number of unknowns of p, plus one register s which
is incremented by the value of p(x; y).</p>
        <p>Every monomial of p is transformed in blocks of iterations nested as many
times as required to obtain the corresponding exponents. The nested blocks
eventually operate on a program that only contains sequences of inc s, or dec s,
which determine the constant multiplicative factor of the monomial.</p>
        <p>We are now ready to comment on how P(p) has a xpoint, if, and only if,
p(x; y) = 0 has a solution, following our running example.</p>
        <p>If P(p) has a xpoint, then p(x; y) = 0 has a solution.</p>
        <p>Let us assume that the tuple (x; y; s) used as input for the registers (x; y; s) is
a xpoint of P(p). The execution of P(p) from (x; y; s) let us denote it as
P(p)(x; y; s) necessarily replaces the value s + 2x3y2 xy2 + 2 for s. We can
formalize the overall eect as follows:</p>
        <p>P(p)(x; y; s) = (x; y; s + 2x3y2
xy2 + 2).</p>
        <p>Being (x; y; s) a xpoint of P(p), we must have s = s + 2x3y2 xy2 + 2 which is
possible only if 2x3y2 xy2 +2 = 0 = p(x; y). Thus (x; y) is a solution of p(x; y)=0.
If p(x; y) = 0 has a solution, then P(p) has a xpoint.</p>
        <p>Let us assume that the tuple (x; y) is a solution of p(x; y) = 0. Execute P(p)(x; y; s),
i.e. the program P(p) whose variables (x; y; s) assume the initial values x; y and
s, respectively, with some arbitrarily xed value s. Then:</p>
        <p>P(p)(x; y; s) = (x; y; s + 2x3y2</p>
        <p>
          xy2 + 2) = (x; y; s + p(x; y))
= (x; y; s + 0) = (x; y; s),
which means that (x; y; s) is a xpoint of P(p). Since Equ(Z) is 10-complete [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ],
also FIXPOINT is, and this concludes the justication to Theorem 1.
        </p>
        <p>We now proceed to the strengthening of Theorem 1. In [27, Part 1:
Corollary 1.1 (p. 5)] it is stated that the problem Equ(Z) keeps being undecidable even
if the number of unknowns of the polynomials of Equ(Z) does not exceed 11.
Since we know how to reduce Equ(Z) to FIXPOINT in the general case, and in
this reduction the number of program registers equals the number of unknowns
plus 1 (2 + 1 = 3 in our running example), we can improve our result.
Corollary 1. FIXPOINT is undecidable and complete in
POINT contain programs that mention 12 registers.
10 already when
FIX4</p>
        <p>Properties of the linear xpoint problem for
SRL
Let us recall from Section 2 that a program P of SRL is linear, if nested iterations
driven by the same register are forbidden.</p>
        <p>Denition 5 (Linear SRL programs). Let n 2 N. Then l-SRL(n) denotes the
subset of linear SRL programs that use no more than n registers.</p>
        <p>The rst part of this section focuses on the next theorem.</p>
        <p>Theorem 2. The problem l -FIXPOINT is undecidable and complete in
10.</p>
        <p>It corresponds to Theorem 1 (page 5). The proof strategy reduces Equ(Z)
to l -FIXPOINT. The proof is somewhat more complex than that of Theorem 1
because the number of registers in a linear program of SRL that represents the
polynomial p of a Diophantine equation depends on the number of unknowns
of p and on its monomial degree (Denition 3, page 3).</p>
        <p>Corollary 2. Let p be a polynomial which is an instance of Equ(Z). Let u(p)
and d(p) be respectively the number of unknowns and the monomial degree of p. It
is possible to reduce the problem p = 0 to the xpoint problem of a program P (p)
that belongs to l-SRL( 2u(p)d(p) ).</p>
      </sec>
      <sec id="sec-3-2">
        <title>Proving Theorem 2</title>
        <p>We dene a reduction from Equ(Z) single equation Diophantine problem
over Z to l -FIXPOINT, the xpoint problem on linear SRL.</p>
        <p>Like in the proof of Theorem 1 we illustrate how the proof works by means
of an example. The general case will follow intuitively and, in fact, will be
summarized by Corollary 2. Once again, let:
be the polynomial already used to illustrate how the proof of Theorem 1 works.</p>
        <p>The program P(p) which p(x; y) maps to, is the sequential composition of
the following lines of code:</p>
        <p>Program
for x(inc a1); for x1(dec a1);
for x(inc a2); for x2(dec a2);
for y(inc b1); for y1(dec b1);
for x(for y(for y1(dec s)));
inc s; inc s
for x(for x1(for x2(for y(for y1(inc s; inc s)))));
Comment
a1
a2
b1
s
s
s
a1 + x
a2 + x
b1 + y
x1
x2
y1
s + 2xx1x2yy1
s
s + 2:
xyy1</p>
        <p>The whole sequential composition belongs to l-SRL(9). The registers used
are x, x1, x2, a1, a2, y, y1, b1, and s. By x, x1, x2, y, and y1 we denote the initial
values of the homonyms registers. We remark that the code at lines (d) and (e)
linearize in some sense, the code (A) and (B) of the non linear case at page 5.
We now comment on why p(x; y) = 0 has a solution if, and only if, the linear
program P(p) has a xpoint holds, by following our running example.
If p(x; y) = 0 has a solution, then P(p) has a xpoint.</p>
        <p>Let us assume that the tuple (x; y) of instances of (x; y) is a solution of p(x; y) = 0.</p>
        <p>Execute P(p)(x; x; x; a1; a2; y; y; b1; s), i.e. the program P(p) whose variables x,
x1, x2, a1, a2, y, y1, b1 and s assume their initial values x, x, x, a1, a2, y, y, b1,
and s, respectively, for some arbitrarily xed a1, a2, b1, and s. Then:
P(p)(x; x; x; a1; a2; y; y; b1; s) =
= (x; x; x; a1 + x
x; a2 + x
x; y; y; b1 + y
y; s + 2xxxyy
xyy + 2)
= (x; x; x; a1; a2; y; y; b1; s + 2x3y2</p>
        <p>xy2 + 2)
= (x; x; x; a1; a2; y; y; b1; s)
where (6) holds because x; x1; x2; y and y1 never change while a1; a2; b1 and s
get updated in accordance with the behavior of P(p). Instead, (7) is true because
0 = 2x3y2 xy2 + 2 by assumption. I.e. the linear program P(p) of SRL has a
xpoint.</p>
        <p>If P has a xpoint, then p(x; y) = 0 has a solution.</p>
        <p>
          Let (x; x1; x2; a1; a2; y; y1; b1; s), inputs for the registers (x; x1; x2; a1; a2; y; y1; b1; s),
be a xpoint of P(p). Let P(p)(x; x1; x2; a1; a2; y; y1; b1; s) denote the execution of
P(p) from (x; x1; x2; a1; a2; y; y1; b1; s). By following what happens to the values
of x; x1; x2; a1; a2; y; y1; b1 and s from (a) through (f) in the program above, we
obtain:
P(p)(x; x1; x2; a1; a2; y; y1; b1; s) =
(x; x1; x2; a1 + x
where x; x1; x2; y, and y1 remain constant because they only drive iterations.
Being (x; x1; x2; a1; a2; y; y1; b1; s) a xpoint of P(p), we must satisfy the following
series of constraints:
Distributing them inside (11) yields the constraint that: s = s + 2x3y2 xy2 + 2
which we can satisfy only if 0 = 2x3y2 xy2 + 2 = p(x; y), i.e. p(x; y) has a
solution. Since Equ(Z) is 10-complete [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] l -FIXPOINT is and this concludes the
justication of Theorem 2.
We want to exploit our running example to estimate a reasonably tight bound
on the amount of registers that P(p) uses, where P(p) is the program dened
in the above reduction. Looking at P(p) as the sequential composition of (a)
through (f) we can state the following.
        </p>
        <p>x unknown of q d(x)
P(p) must have one register per every unknown of p(x; y) plus one register
which stores the value of p(x; y). So we have the three registers x; y and s.
For a generic polynomial q, this means that P(q) needs u(q) + 1 registers.
P(p) also uses a pair x1; x2 of registers. All together, x; x1 and x2 compute x3
for any value x that we assign to the unknown x of the polynomial p.
Equivalently, x1 and x2 stand for the linearization of x inside P(p) and they are as
many as the degree d(x) of x minus 1 because x counts for one occurrence of
itself, of course. The meaning of y1 is analogous. Together with y it counts
for the two occurrences of y in P(p) that we use for the unknown y of p
to obtain y2. For a generic polynomial q, this means that P(q) also needs
hP i</p>
        <p>x unknown of q d(x) 1 registers.</p>
        <p>Finally, P(p) also uses a pair of registers a1; a2. They are the key
ingredient that let the reduction work. Specically, every ai assures that the
corresponding xi is in fact a copy of x. The meaning of b1 (there is an
unique bi in our running example) is analogous. It ensures that y1 contains
the same value as y. For a generic polynomial q, this boils down to have as
many registers as the number of copies of the unknowns of q. So P(q) needs
hP i 1 further registers.</p>
        <p>Summarizing, given an instance q(x1; : : : ; xm) = 0 of Equ(Z), the linear
program P(q) of SRL uses as many as u(p) + 1 + 2u(p)(d(p) 1) registers, which is a
number bounded by u(p) + 1 + 2u(p)(d(p) 1) = u(p)(2d(p) 1) + 1 2u(p)d(p).
So, P(q) 2 l-SRL( 2u(p)d(p) ).</p>
        <p>Equation
u</p>
        <p>d</p>
        <p>
          Theorem 3. The problem l -FIXPOINT is undecidable and complete in
linear programs in l-SRL( 3712 ).
The proof of Theorem 3 relies on two results of [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. The rst result presents
an universal system of Diophantine equations which includes the parameters x,
z, u and y and 28 unknowns that take values in N+ [12, Theorem 3]. Fixing
values for x; y; u and z yields a set Sx;y;u;z of Diophantine equations, i.e. an
instance of Sys(N+). Then, Sx;y;u;z has a solution if and only if x 2 Whz;u;yi
(notation of [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]), where Whz;u;yi is a system of equations which we can think of
as much expressive as a universal Turing machine. The system Sx;y;u;z can be
transformed into a single Diophantine equation sx;y;u;z over N+ whose
polynomial has monomial degree 4 and 58 unknowns, besides the above x; y; u and z.
Therefore, sx;y;u;z belongs to Equ(N+).
        </p>
        <p>
          The second result we need from [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] is Theorem 4. It lists a sequence of pairs
(u; d) of natural numbers as in Figure 1. The decision problem p = 0 of Equ(N+)
is undecidable if p belongs to the class of polynomials with no more than u
unknowns and monomial degree not exceeding d. So, Theorem 4 of [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] directly
implies that sx;y;u;z is undecidable and 10-complete whenever the u and the d
of the polynomial it involves occur in Figure 1.
        </p>
        <p>
          Standard techniques [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] imply that we can reduce the instance sx;y;u;z
of Equ(N+) to s0x;y;u;z of Equ(Z) so that the polynomial p of s0x;y;u;z has 4 58 =
232 unknowns and monomial degree equal to 2 4 = 8. Corollary 2 at page 7
applies to s0x;y;u;z, so that that the number of registers that the linear program P(p)
uses is 2 232 8 = 3712. Being s0x;y;u;z undecidable implies that l -FIXPOINT
is undecidable for P(p) 2 l-SRL(3712).
5
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Final remarks</title>
      <p>Among the non trivial total reversible programming languages, SRL is perhaps
the simplest one. In this work we prove that a natural decision problem, namely
does a given SRL program P have a xpoint x?, that is, 9x : P(x) = x?,
is undecidable. Given the simplicity of the problem and the limitations of the
language SRL, this is a signicant result because simple decision problems about
very simple programming languages tend to be decidable.</p>
      <p>
        It is interesting to remark that, while the undecidability of the Diophantine
decision and similar problems can be proved by reducing the Turing machine (or
universal register language) halting problem to the existence of a solution of a
polynomial equation (see for instance [29, Section 5.5] and [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]), we proved the
undecidability of the xpoint problem for a very limited total reversible register
language by reducing Equ(Z) to it.
      </p>
      <p>We also established bounds on the number of registers which imply the
undecidability: 12 registers are enough in the general case and 3 712 in the linear
one.</p>
      <p>We think that there are better upper bounds for that number of registers,
perhaps for the general and, almost certainly, for the linear SRL programs.
Several other open problems are suggested by this research. For instance, given
a positive integer k, are there SRL programs having exactly k xpoints? And
also: is there a reduction Equ(Z) FIXPOINT such that the number of roots
of the polynomial is equal to the number of xpoints of the corresponding SRL
program?</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Boolos, .G.,
          <string-name>
            <surname>Burgess</surname>
            ,
            <given-names>P.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jerey</surname>
            ,
            <given-names>C.R.</given-names>
          </string-name>
          :
          <article-title>Computability and Logic</article-title>
          .
          <source>CUP</source>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Cooper</surname>
            ,
            <given-names>S.B.</given-names>
          </string-name>
          :
          <article-title>Computability Theory</article-title>
          . CRC Press Company (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Crolard</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lacas</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Valarcher</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>On the expressive power of the Loop language</article-title>
          .
          <source>Nordic Journal of Computing</source>
          <volume>13</volume>
          (
          <issue>1-2</issue>
          ),
          <volume>4657</volume>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Cutland</surname>
          </string-name>
          , N.:
          <article-title>Computability: An Introduction to Recursive Function Theory</article-title>
          . Cambridge University Press (
          <year>1980</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Davis</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Computability and Unsolvability</article-title>
          .
          <source>Dover</source>
          (
          <year>1985</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Enderton</surname>
            ,
            <given-names>B.H.</given-names>
          </string-name>
          :
          <article-title>Computability Theory: an Introduction to Recursion Theory</article-title>
          . Academic Press,
          <volume>1</volume>
          <fpage>edn</fpage>
          . (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Hermes</surname>
          </string-name>
          , H.: Enumerability, Decidability, Computability. Springer-Verlag (
          <year>1969</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Ibarra</surname>
            ,
            <given-names>O.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leininger</surname>
            ,
            <given-names>B.S.</given-names>
          </string-name>
          :
          <article-title>Straight-line programs with one input variable</article-title>
          .
          <source>SIAM Journal on Computing</source>
          <volume>11</volume>
          (
          <issue>1</issue>
          ),
          <volume>114</volume>
          (
          <year>1982</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Ibarra</surname>
            ,
            <given-names>O.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leininger</surname>
            ,
            <given-names>B.S.</given-names>
          </string-name>
          :
          <article-title>On the simplication and equivalence problems for straight-line programs</article-title>
          .
          <source>J. ACM</source>
          <volume>30</volume>
          (
          <issue>3</issue>
          ),
          <volume>641656</volume>
          (
          <year>1983</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Ibarra</surname>
            ,
            <given-names>O.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leininger</surname>
            ,
            <given-names>B.S.</given-names>
          </string-name>
          :
          <article-title>On the zero-inequivalence problem for loop programs</article-title>
          .
          <source>J. Comput. Syst. Sci</source>
          .
          <volume>26</volume>
          (
          <issue>1</issue>
          ),
          <volume>4764</volume>
          (
          <year>1983</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Jones</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matiyasevich</surname>
            ,
            <given-names>Y.:</given-names>
          </string-name>
          <article-title>Register machine proof of the theorem on exponential diophantine representation of enumerable sets</article-title>
          .
          <source>Journal Symbolic Logic</source>
          <volume>49</volume>
          ,
          <issue>818829</issue>
          (
          <year>1984</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Jones</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          :
          <article-title>Undecidable diophantine equations</article-title>
          .
          <source>Bull. Amer. Math. Soc. (N.S.)</source>
          <volume>3</volume>
          (
          <issue>2</issue>
          ),
          <volume>859862</volume>
          (
          <year>1980</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Jones</surname>
            ,
            <given-names>N.D.</given-names>
          </string-name>
          :
          <article-title>Computability and Complexity: From a Programming Perspective</article-title>
          . Foundations of Computing Series, MIT Press (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Kleene</surname>
            ,
            <given-names>S.C.</given-names>
          </string-name>
          : Introduction to Metamathematics. North-Holland (
          <year>1952</year>
          ),
          <article-title>reprinted by Ishi press on 2009</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Kristiansen</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Niggl</surname>
            ,
            <given-names>K.H.</given-names>
          </string-name>
          :
          <article-title>On the computational complexity of imperative programming languages</article-title>
          .
          <source>Theoretical Computer Science</source>
          <volume>318</volume>
          (
          <issue>1-2</issue>
          ),
          <volume>139161</volume>
          (Jun
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Matiyasevich</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Hilbert's Tenth Problem</article-title>
          . MIT Press (
          <year>1993</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Matos</surname>
            ,
            <given-names>A.B.</given-names>
          </string-name>
          :
          <article-title>Analysis of a simple reversible language</article-title>
          .
          <source>Theoretical Computer Science</source>
          <volume>290</volume>
          (
          <issue>3</issue>
          ),
          <volume>20632074</volume>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. Meyer,
          <string-name>
            <given-names>A.R.</given-names>
            ,
            <surname>Ritchie</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.M.:</surname>
          </string-name>
          <article-title>The complexity of loop programs</article-title>
          .
          <source>In: Proceedings of 22nd National Conference of the ACM</source>
          . pp.
          <fpage>465469</fpage>
          .
          <article-title>Association for Computing Machinery (</article-title>
          <year>1967</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. Meyer,
          <string-name>
            <given-names>A.R.</given-names>
            ,
            <surname>Ritchie</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.M.:</surname>
          </string-name>
          <article-title>Computational complexity and program structure</article-title>
          .
          <source>In: IBM Research Report RC 1817. IBM</source>
          (
          <year>1967</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Nathanson</surname>
          </string-name>
          , M.B.:
          <article-title>Additive Number Theory The Classical Bases</article-title>
          . Springer Science &amp; Business
          <string-name>
            <surname>Media</surname>
          </string-name>
          (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Nielsen</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chuang</surname>
            ,
            <given-names>I.L.</given-names>
          </string-name>
          :
          <article-title>Quantum Computation and Quantum Information: 10th Anniversary Edition</article-title>
          . Cambridge University Press, New York, NY, USA, 10th edn. (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Paolini</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Piccolo</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roversi</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>A class of recursive permutations which is primitive recursive complete (</article-title>
          <year>2016</year>
          ), Submitted
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Paolini</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Piccolo</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roversi</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>A class of reversible primitive recursive functions</article-title>
          .
          <source>Electronic Notes in Theoretical Computer Science</source>
          <volume>322</volume>
          (
          <issue>18605</issue>
          ),
          <volume>227242</volume>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Perumalla</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Introduction to Reversible Computing</article-title>
          . CRC Press (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Rogers</surname>
          </string-name>
          , H.:
          <article-title>Theory of Recursive Functions and Eective Computability</article-title>
          . MIT Press Cambridge, MA (
          <year>1967</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Soare</surname>
            ,
            <given-names>R.I.</given-names>
          </string-name>
          :
          <source>Turing Computability: Theory and Applications</source>
          . Springer (
          <year>2016</year>
          ), department of Mathematics, the University of Chicago
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Sun</surname>
            ,
            <given-names>Z.W.</given-names>
          </string-name>
          :
          <article-title>Further results on Hilbert's Tenth Problem (</article-title>
          <year>2017</year>
          ), https://arxiv. org/abs/1704.03504, Cornell University Library
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Tooli</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Reversible computing</article-title>
          . In: de Bakker, J., van Leeuwen,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (eds.) Automata,
          <source>Languages and Programming</source>
          . pp.
          <fpage>632644</fpage>
          . Springer Berlin Heidelberg, Berlin, Heidelberg (
          <year>1980</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Yuri</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Hilbert's tenth problem: what was done and what is to be done</article-title>
          . In: Denef,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Lipshitz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>Pheidas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Geel</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.V</surname>
          </string-name>
          . (eds.)
          <article-title>Hilbert's Tenth Problem: Relations with Arithmetic and Algebraic Geometry (Contemporary Mathematics</article-title>
          ,
          <volume>270</volume>
          ).
          <source>Amer. Math. Soc.</source>
          (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>