Term Rewriting System R:
[X, X1, X2]
af(0) -> cons(0, f(s(0)))
af(s(0)) -> af(ap(s(0)))
af(X) -> f(X)
ap(s(0)) -> 0
ap(X) -> p(X)
mark(f(X)) -> af(mark(X))
mark(p(X)) -> ap(mark(X))
mark(0) -> 0
mark(cons(X1, X2)) -> cons(mark(X1), X2)
mark(s(X)) -> s(mark(X))

Innermost Termination of R to be shown.



   R
Removing Redundant Rules



Removing the following rules from R which fullfill a polynomial ordering:

af(0) -> cons(0, f(s(0)))
af(X) -> f(X)

where the Polynomial interpretation:
  POL(a__p(x1))=  x1  
  POL(0)=  0  
  POL(cons(x1, x2))=  x1 + x2  
  POL(s(x1))=  x1  
  POL(mark(x1))=  2·x1  
  POL(f(x1))=  1 + x1  
  POL(p(x1))=  x1  
  POL(a__f(x1))=  2 + x1  
was used.

Not all Rules of R can be deleted, so we still have to regard a part of R.


   R
RRRPolo
       →TRS2
Removing Redundant Rules



Removing the following rules from R which fullfill a polynomial ordering:

mark(s(X)) -> s(mark(X))
ap(s(0)) -> 0

where the Polynomial interpretation:
  POL(a__p(x1))=  x1  
  POL(0)=  0  
  POL(cons(x1, x2))=  x1 + x2  
  POL(s(x1))=  1 + x1  
  POL(mark(x1))=  2·x1  
  POL(f(x1))=  x1  
  POL(p(x1))=  x1  
  POL(a__f(x1))=  x1  
was used.

Not all Rules of R can be deleted, so we still have to regard a part of R.


   R
RRRPolo
       →TRS2
RRRPolo
           →TRS3
Removing Redundant Rules



Removing the following rules from R which fullfill a polynomial ordering:

mark(f(X)) -> af(mark(X))

where the Polynomial interpretation:
  POL(a__p(x1))=  x1  
  POL(0)=  0  
  POL(cons(x1, x2))=  x1 + x2  
  POL(s(x1))=  x1  
  POL(mark(x1))=  x1  
  POL(f(x1))=  1 + x1  
  POL(p(x1))=  x1  
  POL(a__f(x1))=  x1  
was used.

Not all Rules of R can be deleted, so we still have to regard a part of R.


   R
RRRPolo
       →TRS2
RRRPolo
           →TRS3
RRRPolo
             ...
               →TRS4
Removing Redundant Rules



Removing the following rules from R which fullfill a polynomial ordering:

mark(0) -> 0

where the Polynomial interpretation:
  POL(a__p(x1))=  x1  
  POL(0)=  1  
  POL(cons(x1, x2))=  x1 + x2  
  POL(s(x1))=  x1  
  POL(mark(x1))=  2·x1  
  POL(p(x1))=  x1  
  POL(a__f(x1))=  x1  
was used.

Not all Rules of R can be deleted, so we still have to regard a part of R.


   R
RRRPolo
       →TRS2
RRRPolo
           →TRS3
RRRPolo
             ...
               →TRS5
Removing Redundant Rules



Removing the following rules from R which fullfill a polynomial ordering:

mark(cons(X1, X2)) -> cons(mark(X1), X2)

where the Polynomial interpretation:
  POL(a__p(x1))=  x1  
  POL(0)=  0  
  POL(cons(x1, x2))=  1 + x1 + x2  
  POL(s(x1))=  x1  
  POL(mark(x1))=  2·x1  
  POL(p(x1))=  x1  
  POL(a__f(x1))=  x1  
was used.

Not all Rules of R can be deleted, so we still have to regard a part of R.


   R
RRRPolo
       →TRS2
RRRPolo
           →TRS3
RRRPolo
             ...
               →TRS6
Dependency Pair Analysis



R contains the following Dependency Pairs:

MARK(p(X)) -> AP(mark(X))
MARK(p(X)) -> MARK(X)
AF(s(0)) -> AF(ap(s(0)))
AF(s(0)) -> AP(s(0))

Furthermore, R contains one SCC.


   R
RRRPolo
       →TRS2
RRRPolo
           →TRS3
RRRPolo
             ...
               →DP Problem 1
Usable Rules (Innermost)


Dependency Pair:

MARK(p(X)) -> MARK(X)


Rules:


mark(p(X)) -> ap(mark(X))
ap(X) -> p(X)
af(s(0)) -> af(ap(s(0)))


Strategy:

innermost




As we are in the innermost case, we can delete all 3 non-usable-rules.


   R
RRRPolo
       →TRS2
RRRPolo
           →TRS3
RRRPolo
             ...
               →DP Problem 2
Size-Change Principle


Dependency Pair:

MARK(p(X)) -> MARK(X)


Rule:

none


Strategy:

innermost




We number the DPs as follows:
  1. MARK(p(X)) -> MARK(X)
and get the following Size-Change Graph(s):
{1} , {1}
1>1

which lead(s) to this/these maximal multigraph(s):
{1} , {1}
1>1

DP: empty set
Oriented Rules: none

We used the order Homeomorphic Embedding Order with Non-Strict Precedence.
trivial

with Argument Filtering System:
p(x1) -> p(x1)

We obtain no new DP problems.

Innermost Termination of R successfully shown.
Duration:
0:00 minutes