YES Termination proof of ../tpdb/TRS/CSR/Ex26_Luc03b.trs
Termination of the following Term Rewriting System could be proven:

Q restricted rewrite system:
The TRS R consists of the following rules:

terms(N) → cons(recip(sqr(N)), terms(s(N)))
sqr(0) → 0
sqr(s(X)) → s(add(sqr(X), dbl(X)))
dbl(0) → 0
dbl(s(X)) → s(s(dbl(X)))
add(0, X) → X
add(s(X), Y) → s(add(X, Y))
first(0, X) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))

The replacement map contains the following entries:

terms: {1}
cons: {1}
recip: {1}
sqr: {1}
s: empty set
0: empty set
add: {1, 2}
dbl: {1}
first: {1, 2}
nil: empty set


CSR
  ↳ Lucas-Transformation

Q restricted rewrite system:
The TRS R consists of the following rules:

terms(N) → cons(recip(sqr(N)), terms(s(N)))
sqr(0) → 0
sqr(s(X)) → s(add(sqr(X), dbl(X)))
dbl(0) → 0
dbl(s(X)) → s(s(dbl(X)))
add(0, X) → X
add(s(X), Y) → s(add(X, Y))
first(0, X) → nil
first(s(X), cons(Y, Z)) → cons(Y, first(X, Z))

The replacement map contains the following entries:

terms: {1}
cons: {1}
recip: {1}
sqr: {1}
s: empty set
0: empty set
add: {1, 2}
dbl: {1}
first: {1, 2}
nil: empty set

We applied the Lucas [26] to transform the context-sensitive TRS to an usual TRS.

↳ CSR
  ↳ Lucas-Transformation
QTRS
      ↳ RRRPoloQTRSProof

Q restricted rewrite system:
The TRS R consists of the following rules:

terms(N) → cons(recip(sqr(N)))
sqr(0) → 0
sqr(s) → s
dbl(0) → 0
dbl(s) → s
add(0, X) → X
add(s, Y) → s
first(0, X) → nil
first(s, cons(Y)) → cons(Y)

Q is empty.

The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:

terms(N) → cons(recip(sqr(N)))
sqr(0) → 0
sqr(s) → s
dbl(0) → 0
dbl(s) → s
add(0, X) → X
add(s, Y) → s
first(0, X) → nil
first(s, cons(Y)) → cons(Y)

Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:

terms(N) → cons(recip(sqr(N)))
dbl(0) → 0
dbl(s) → s
add(0, X) → X
add(s, Y) → s
Used ordering:
Polynomial interpretation [25]:

POL(0) = 0   
POL(add(x1, x2)) = 1 + x1 + x2   
POL(cons(x1)) = x1   
POL(dbl(x1)) = 1 + 2·x1   
POL(first(x1, x2)) = x1 + x2   
POL(nil) = 0   
POL(recip(x1)) = x1   
POL(s) = 0   
POL(sqr(x1)) = x1   
POL(terms(x1)) = 1 + 2·x1   




↳ CSR
  ↳ Lucas-Transformation
    ↳ QTRS
      ↳ RRRPoloQTRSProof
QTRS
          ↳ RRRPoloQTRSProof

Q restricted rewrite system:
The TRS R consists of the following rules:

sqr(0) → 0
sqr(s) → s
first(0, X) → nil
first(s, cons(Y)) → cons(Y)

Q is empty.

The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:

sqr(0) → 0
sqr(s) → s
first(0, X) → nil
first(s, cons(Y)) → cons(Y)

Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:

sqr(0) → 0
sqr(s) → s
first(s, cons(Y)) → cons(Y)
Used ordering:
Polynomial interpretation [25]:

POL(0) = 0   
POL(cons(x1)) = 1 + 2·x1   
POL(first(x1, x2)) = 2 + 2·x1 + 2·x2   
POL(nil) = 2   
POL(s) = 2   
POL(sqr(x1)) = 1 + 2·x1   




↳ CSR
  ↳ Lucas-Transformation
    ↳ QTRS
      ↳ RRRPoloQTRSProof
        ↳ QTRS
          ↳ RRRPoloQTRSProof
QTRS
              ↳ RRRPoloQTRSProof

Q restricted rewrite system:
The TRS R consists of the following rules:

first(0, X) → nil

Q is empty.

The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:

first(0, X) → nil

Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:

first(0, X) → nil
Used ordering:
Polynomial interpretation [25]:

POL(0) = 2   
POL(first(x1, x2)) = 2·x1 + x2   
POL(nil) = 2   




↳ CSR
  ↳ Lucas-Transformation
    ↳ QTRS
      ↳ RRRPoloQTRSProof
        ↳ QTRS
          ↳ RRRPoloQTRSProof
            ↳ QTRS
              ↳ RRRPoloQTRSProof
QTRS
                  ↳ RisEmptyProof

Q restricted rewrite system:
R is empty.
Q is empty.

The TRS R is empty. Hence, termination is trivially proven.