YES TRS: 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))) max/plus interpretations on N: purge_A(x1) = max{36, 13 + x1} purge#_A(x1) = max{14, 30 + x1} nil_A = 10 nil#_A = 15 ._A(x1,x2) = max{48, -5 + x1, 14 + x2} .#_A(x1,x2) = max{8, -11 + x1, -10 + x2} remove_A(x1,x2) = max{10, -21 + x1, -15 + x2} remove#_A(x1,x2) = max{22, 24 + x1, 6 + x2} if_A(x1,x2,x3) = max{33, 10 + x1, x2, -15 + x3} if#_A(x1,x2,x3) = max{0, 53 + x1, 35 + x2, 0} =_A(x1,x2) = max{1, -30, -53 + x2} =#_A(x1,x2) = max{23, 21, 0} precedence: nil > purge > . > remove > if = =