Term Rewriting System R:
[a, s, t, u]
circ(cons(a, s), t) -> cons(msubst(a, t), circ(s, t))
circ(cons(lift, s), cons(a, t)) -> cons(a, circ(s, t))
circ(cons(lift, s), cons(lift, t)) -> cons(lift, circ(s, t))
circ(circ(s, t), u) -> circ(s, circ(t, u))
circ(s, id) -> s
circ(id, s) -> s
circ(cons(lift, s), circ(cons(lift, t), u)) -> circ(cons(lift, circ(s, t)), u)
subst(a, id) -> a
msubst(a, id) -> a
msubst(msubst(a, s), t) -> msubst(a, circ(s, t))

Termination of R to be shown.



   R
Dependency Pair Analysis



R contains the following Dependency Pairs:

CIRC(cons(a, s), t) -> MSUBST(a, t)
CIRC(cons(a, s), t) -> CIRC(s, t)
CIRC(cons(lift, s), cons(a, t)) -> CIRC(s, t)
CIRC(cons(lift, s), cons(lift, t)) -> CIRC(s, t)
CIRC(circ(s, t), u) -> CIRC(s, circ(t, u))
CIRC(circ(s, t), u) -> CIRC(t, u)
CIRC(cons(lift, s), circ(cons(lift, t), u)) -> CIRC(cons(lift, circ(s, t)), u)
CIRC(cons(lift, s), circ(cons(lift, t), u)) -> CIRC(s, t)
MSUBST(msubst(a, s), t) -> MSUBST(a, circ(s, t))
MSUBST(msubst(a, s), t) -> CIRC(s, t)

Furthermore, R contains one SCC.


   R
DPs
       →DP Problem 1
Polynomial Ordering


Dependency Pairs:

CIRC(cons(lift, s), circ(cons(lift, t), u)) -> CIRC(s, t)
CIRC(cons(lift, s), circ(cons(lift, t), u)) -> CIRC(cons(lift, circ(s, t)), u)
CIRC(circ(s, t), u) -> CIRC(t, u)
CIRC(circ(s, t), u) -> CIRC(s, circ(t, u))
CIRC(cons(lift, s), cons(lift, t)) -> CIRC(s, t)
CIRC(cons(lift, s), cons(a, t)) -> CIRC(s, t)
CIRC(cons(a, s), t) -> CIRC(s, t)
MSUBST(msubst(a, s), t) -> CIRC(s, t)
MSUBST(msubst(a, s), t) -> MSUBST(a, circ(s, t))
CIRC(cons(a, s), t) -> MSUBST(a, t)


Rules:


circ(cons(a, s), t) -> cons(msubst(a, t), circ(s, t))
circ(cons(lift, s), cons(a, t)) -> cons(a, circ(s, t))
circ(cons(lift, s), cons(lift, t)) -> cons(lift, circ(s, t))
circ(circ(s, t), u) -> circ(s, circ(t, u))
circ(s, id) -> s
circ(id, s) -> s
circ(cons(lift, s), circ(cons(lift, t), u)) -> circ(cons(lift, circ(s, t)), u)
subst(a, id) -> a
msubst(a, id) -> a
msubst(msubst(a, s), t) -> msubst(a, circ(s, t))





The following dependency pairs can be strictly oriented:

CIRC(cons(lift, s), circ(cons(lift, t), u)) -> CIRC(s, t)
CIRC(cons(lift, s), circ(cons(lift, t), u)) -> CIRC(cons(lift, circ(s, t)), u)
CIRC(cons(lift, s), cons(lift, t)) -> CIRC(s, t)
CIRC(cons(lift, s), cons(a, t)) -> CIRC(s, t)
CIRC(cons(a, s), t) -> CIRC(s, t)
CIRC(cons(a, s), t) -> MSUBST(a, t)


Additionally, the following usable rules w.r.t. the implicit AFS can be oriented:

circ(cons(a, s), t) -> cons(msubst(a, t), circ(s, t))
circ(cons(lift, s), cons(a, t)) -> cons(a, circ(s, t))
circ(cons(lift, s), cons(lift, t)) -> cons(lift, circ(s, t))
circ(circ(s, t), u) -> circ(s, circ(t, u))
circ(s, id) -> s
circ(id, s) -> s
circ(cons(lift, s), circ(cons(lift, t), u)) -> circ(cons(lift, circ(s, t)), u)
msubst(a, id) -> a
msubst(msubst(a, s), t) -> msubst(a, circ(s, t))


Used ordering: Polynomial ordering with Polynomial interpretation:
  POL(circ(x1, x2))=  x1 + x1·x2 + x2  
  POL(CIRC(x1, x2))=  x1 + x1·x2  
  POL(lift)=  0  
  POL(cons(x1, x2))=  1 + x1 + x2  
  POL(msubst(x1, x2))=  x1 + x1·x2 + x2  
  POL(id)=  0  
  POL(MSUBST(x1, x2))=  x1 + x1·x2  

resulting in one new DP problem.



   R
DPs
       →DP Problem 1
Polo
           →DP Problem 2
Dependency Graph


Dependency Pairs:

CIRC(circ(s, t), u) -> CIRC(t, u)
CIRC(circ(s, t), u) -> CIRC(s, circ(t, u))
MSUBST(msubst(a, s), t) -> CIRC(s, t)
MSUBST(msubst(a, s), t) -> MSUBST(a, circ(s, t))


Rules:


circ(cons(a, s), t) -> cons(msubst(a, t), circ(s, t))
circ(cons(lift, s), cons(a, t)) -> cons(a, circ(s, t))
circ(cons(lift, s), cons(lift, t)) -> cons(lift, circ(s, t))
circ(circ(s, t), u) -> circ(s, circ(t, u))
circ(s, id) -> s
circ(id, s) -> s
circ(cons(lift, s), circ(cons(lift, t), u)) -> circ(cons(lift, circ(s, t)), u)
subst(a, id) -> a
msubst(a, id) -> a
msubst(msubst(a, s), t) -> msubst(a, circ(s, t))





Using the Dependency Graph the DP problem was split into 2 DP problems.


   R
DPs
       →DP Problem 1
Polo
           →DP Problem 2
DGraph
             ...
               →DP Problem 3
Size-Change Principle


Dependency Pairs:

CIRC(circ(s, t), u) -> CIRC(s, circ(t, u))
CIRC(circ(s, t), u) -> CIRC(t, u)


Rules:


circ(cons(a, s), t) -> cons(msubst(a, t), circ(s, t))
circ(cons(lift, s), cons(a, t)) -> cons(a, circ(s, t))
circ(cons(lift, s), cons(lift, t)) -> cons(lift, circ(s, t))
circ(circ(s, t), u) -> circ(s, circ(t, u))
circ(s, id) -> s
circ(id, s) -> s
circ(cons(lift, s), circ(cons(lift, t), u)) -> circ(cons(lift, circ(s, t)), u)
subst(a, id) -> a
msubst(a, id) -> a
msubst(msubst(a, s), t) -> msubst(a, circ(s, t))





We number the DPs as follows:
  1. CIRC(circ(s, t), u) -> CIRC(s, circ(t, u))
  2. CIRC(circ(s, t), u) -> CIRC(t, u)
and get the following Size-Change Graph(s):
{1, 2} , {1, 2}
1>1
{1, 2} , {1, 2}
1>1
2=2

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

DP: empty set
Oriented Rules: none

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


We obtain no new DP problems.


   R
DPs
       →DP Problem 1
Polo
           →DP Problem 2
DGraph
             ...
               →DP Problem 4
Size-Change Principle


Dependency Pair:

MSUBST(msubst(a, s), t) -> MSUBST(a, circ(s, t))


Rules:


circ(cons(a, s), t) -> cons(msubst(a, t), circ(s, t))
circ(cons(lift, s), cons(a, t)) -> cons(a, circ(s, t))
circ(cons(lift, s), cons(lift, t)) -> cons(lift, circ(s, t))
circ(circ(s, t), u) -> circ(s, circ(t, u))
circ(s, id) -> s
circ(id, s) -> s
circ(cons(lift, s), circ(cons(lift, t), u)) -> circ(cons(lift, circ(s, t)), u)
subst(a, id) -> a
msubst(a, id) -> a
msubst(msubst(a, s), t) -> msubst(a, circ(s, t))





We number the DPs as follows:
  1. MSUBST(msubst(a, s), t) -> MSUBST(a, circ(s, t))
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:
msubst(x1, x2) -> msubst(x1, x2)

We obtain no new DP problems.

Termination of R successfully shown.
Duration:
0:14 minutes