YES TRS: eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) sort(nil()) -> nil() sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) max/plus interpretations on N: eq_A(x1,x2) = max{20, 1, -1} eq#_A(x1,x2) = max{36, 66, 1} 0_A = 2 0#_A = 62 true_A = 20 true#_A = 2 s_A(x1) = max{2, 1} s#_A(x1) = max{42, -1} false_A = 20 false#_A = 0 le_A(x1,x2) = max{55, 1, -1} le#_A(x1,x2) = max{62, 3, 4} min_A(x1) = max{3, 1} min#_A(x1) = max{5, 26 + x1} cons_A(x1,x2) = max{2, 24, 33 + x2} cons#_A(x1,x2) = max{38, 49, 39 + x2} nil_A = 2 nil#_A = 68 if_min_A(x1,x2) = max{3, 2, 1} if_min#_A(x1,x2) = max{4, 7 + x1, 4} replace_A(x1,x2,x3) = max{0, -6, -8, x3} replace#_A(x1,x2,x3) = max{35, 37, 59, 33 + x3} if_replace_A(x1,x2,x3,x4) = max{27, 4 + x1, 25, -6, x4} if_replace#_A(x1,x2,x3,x4) = max{66, 36, 66, 58, 32 + x4} sort_A(x1) = max{1, 9 + x1} sort#_A(x1) = max{60, 67 + x1} precedence: sort > nil > 0 > cons > min = replace > s = le = if_min = if_replace > true > eq > false