0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPSizeChangeProof (⇔)
↳7 TRUE
↳8 QDP
↳9 QDPSizeChangeProof (⇔)
↳10 TRUE
purge(nil) → nil
purge(.(x, y)) → .(x, purge(remove(x, y)))
remove(x, nil) → nil
remove(x, .(y, z)) → if(=(x, y), remove(x, z), .(y, remove(x, z)))
PURGE(.(x, y)) → PURGE(remove(x, y))
PURGE(.(x, y)) → REMOVE(x, y)
REMOVE(x, .(y, z)) → REMOVE(x, z)
purge(nil) → nil
purge(.(x, y)) → .(x, purge(remove(x, y)))
remove(x, nil) → nil
remove(x, .(y, z)) → if(=(x, y), remove(x, z), .(y, remove(x, z)))
REMOVE(x, .(y, z)) → REMOVE(x, z)
purge(nil) → nil
purge(.(x, y)) → .(x, purge(remove(x, y)))
remove(x, nil) → nil
remove(x, .(y, z)) → if(=(x, y), remove(x, z), .(y, remove(x, z)))
Order:Homeomorphic Embedding Order
AFS:
.(x1, x2) = .(x2)
From the DPs we obtained the following set of size-change graphs:
We oriented the following set of usable rules [AAECC05,FROCOS05].
none
PURGE(.(x, y)) → PURGE(remove(x, y))
purge(nil) → nil
purge(.(x, y)) → .(x, purge(remove(x, y)))
remove(x, nil) → nil
remove(x, .(y, z)) → if(=(x, y), remove(x, z), .(y, remove(x, z)))
Order:Combined order from the following AFS and order.
remove(x1, x2) = x2
nil = nil
.(x1, x2) = .(x2)
if(x1, x2, x3) = x3
=(x1, x2) = =(x1, x2)
Recursive path order with status [RPO].
Quasi-Precedence:
.1 > nil
=2 > nil
nil: multiset
.1: multiset
=2: multiset
AFS:
remove(x1, x2) = x2
nil = nil
.(x1, x2) = .(x2)
if(x1, x2, x3) = x3
=(x1, x2) = =(x1, x2)
From the DPs we obtained the following set of size-change graphs:
We oriented the following set of usable rules [AAECC05,FROCOS05].
remove(x, nil) → nil
remove(x, .(y, z)) → if(=(x, y), remove(x, z), .(y, remove(x, z)))