0 QTRS
↳1 Overlay + Local Confluence (⇔)
↳2 QTRS
↳3 DependencyPairsProof (⇔)
↳4 QDP
↳5 DependencyGraphProof (⇔)
↳6 QDP
↳7 QDPOrderProof (⇔)
↳8 QDP
↳9 PisEmptyProof (⇔)
↳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(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(nil)
purge(.(x0, x1))
remove(x0, nil)
remove(x0, .(x1, x2))
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)))
purge(nil)
purge(.(x0, x1))
remove(x0, nil)
remove(x0, .(x1, x2))
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)))
purge(nil)
purge(.(x0, x1))
remove(x0, nil)
remove(x0, .(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
REMOVE(x, .(y, z)) → REMOVE(x, z)
REMOVE2 > [nil, if]
purge1 > [.2, =1] > [nil, if]
=1: [1]
if: []
REMOVE2: [1,2]
purge1: [1]
.2: [2,1]
nil: []
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(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(nil)
purge(.(x0, x1))
remove(x0, nil)
remove(x0, .(x1, x2))