YES TRS: and(false(),false()) -> false() and(true(),false()) -> false() and(false(),true()) -> false() and(true(),true()) -> true() eq(nil(),nil()) -> true() eq(cons(T,L),nil()) -> false() eq(nil(),cons(T,L)) -> false() eq(cons(T,L),cons(Tp,Lp)) -> and(eq(T,Tp),eq(L,Lp)) eq(var(L),var(Lp)) -> eq(L,Lp) eq(var(L),apply(T,S)) -> false() eq(var(L),lambda(X,T)) -> false() eq(apply(T,S),var(L)) -> false() eq(apply(T,S),apply(Tp,Sp)) -> and(eq(T,Tp),eq(S,Sp)) eq(apply(T,S),lambda(X,Tp)) -> false() eq(lambda(X,T),var(L)) -> false() eq(lambda(X,T),apply(Tp,Sp)) -> false() eq(lambda(X,T),lambda(Xp,Tp)) -> and(eq(T,Tp),eq(X,Xp)) if(true(),var(K),var(L)) -> var(K) if(false(),var(K),var(L)) -> var(L) ren(var(L),var(K),var(Lp)) -> if(eq(L,Lp),var(K),var(Lp)) ren(X,Y,apply(T,S)) -> apply(ren(X,Y,T),ren(X,Y,S)) ren(X,Y,lambda(Z,T)) -> lambda(var(cons(X,cons(Y,cons(lambda(Z,T),nil())))),ren(X,Y,ren(Z,var(cons(X,cons(Y,cons(lambda(Z,T),nil())))),T))) max/plus interpretations on N: and_A(x1,x2) = max{2, 0, -67} and#_A(x1,x2) = max{0, 8 + x1, 5 + x2} false_A = 1 false#_A = 8 true_A = 2 true#_A = 23 eq_A(x1,x2) = max{13, -68, -6} eq#_A(x1,x2) = max{22, 1, 4} nil_A = 1 nil#_A = 127 cons_A(x1,x2) = max{1, 1, 1} cons#_A(x1,x2) = max{147, 2, 127} var_A(x1) = max{0, -10} var#_A(x1) = max{10, 7} apply_A(x1,x2) = max{82, 41 + x1, 61 + x2} apply#_A(x1,x2) = max{4, 0, -17 + x2} lambda_A(x1,x2) = max{22, 124 + x1, 103 + x2} lambda#_A(x1,x2) = max{4, 6, 3} if_A(x1,x2,x3) = max{1, -12 + x1, -9 + x2, -70 + x3} if#_A(x1,x2,x3) = max{4, -9 + x1, 14 + x2, 8} ren_A(x1,x2,x3) = max{21, -19, -80, x3} ren#_A(x1,x2,x3) = max{9, 5, 6, 23 + x3} precedence: ren > nil > true = lambda > eq = cons = if > and = var > false > apply