Term Rewriting System R:
[x, y, z]
del(.(x, .(y, z))) -> f(=(x, y), x, y, z)
f(true, x, y, z) -> del(.(y, z))
f(false, x, y, z) -> .(x, del(.(y, z)))
=(nil, nil) -> true
=(.(x, y), nil) -> false
=(nil, .(y, z)) -> false
=(.(x, y), .(u, v)) -> and(=(x, u), =(y, v))

Termination of R to be shown.



   R
Dependency Pair Analysis



R contains the following Dependency Pairs:

DEL(.(x, .(y, z))) -> F(=(x, y), x, y, z)
DEL(.(x, .(y, z))) -> ='(x, y)
F(true, x, y, z) -> DEL(.(y, z))
F(false, x, y, z) -> DEL(.(y, z))
='(.(x, y), .(u, v)) -> ='(x, u)
='(.(x, y), .(u, v)) -> ='(y, v)

Furthermore, R contains one SCC.


   R
DPs
       →DP Problem 1
Polynomial Ordering


Dependency Pairs:

F(false, x, y, z) -> DEL(.(y, z))
F(true, x, y, z) -> DEL(.(y, z))
DEL(.(x, .(y, z))) -> F(=(x, y), x, y, z)


Rules:


del(.(x, .(y, z))) -> f(=(x, y), x, y, z)
f(true, x, y, z) -> del(.(y, z))
f(false, x, y, z) -> .(x, del(.(y, z)))
=(nil, nil) -> true
=(.(x, y), nil) -> false
=(nil, .(y, z)) -> false
=(.(x, y), .(u, v)) -> and(=(x, u), =(y, v))





The following dependency pair can be strictly oriented:

DEL(.(x, .(y, z))) -> F(=(x, y), x, y, z)


Additionally, the following rules can be oriented:

del(.(x, .(y, z))) -> f(=(x, y), x, y, z)
f(true, x, y, z) -> del(.(y, z))
f(false, x, y, z) -> .(x, del(.(y, z)))
=(nil, nil) -> true
=(.(x, y), nil) -> false
=(nil, .(y, z)) -> false
=(.(x, y), .(u, v)) -> and(=(x, u), =(y, v))


Used ordering: Polynomial ordering with Polynomial interpretation:
  POL(and(x1, x2))=  0  
  POL(DEL(x1))=  x1  
  POL(v)=  0  
  POL(false)=  1  
  POL(=(x1, x2))=  1  
  POL(true)=  0  
  POL(nil)=  0  
  POL(del(x1))=  x1  
  POL(.(x1, x2))=  1 + x2  
  POL(f(x1, x2, x3, x4))=  1 + x1 + x4  
  POL(u)=  0  
  POL(F(x1, x2, x3, x4))=  1 + x4  

resulting in one new DP problem.



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


Dependency Pairs:

F(false, x, y, z) -> DEL(.(y, z))
F(true, x, y, z) -> DEL(.(y, z))


Rules:


del(.(x, .(y, z))) -> f(=(x, y), x, y, z)
f(true, x, y, z) -> del(.(y, z))
f(false, x, y, z) -> .(x, del(.(y, z)))
=(nil, nil) -> true
=(.(x, y), nil) -> false
=(nil, .(y, z)) -> false
=(.(x, y), .(u, v)) -> and(=(x, u), =(y, v))





Using the Dependency Graph resulted in no new DP problems.

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