YES TRS: and(true(),y) -> y and(false(),y) -> false() eq(nil(),nil()) -> true() eq(cons(t,l),nil()) -> false() eq(nil(),cons(t,l)) -> false() eq(cons(t,l),cons(t',l')) -> and(eq(t,t'),eq(l,l')) eq(var(l),var(l')) -> eq(l,l') 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(t',s')) -> and(eq(t,t'),eq(s,s')) eq(apply(t,s),lambda(x,t)) -> false() eq(lambda(x,t),var(l)) -> false() eq(lambda(x,t),apply(t,s)) -> false() eq(lambda(x,t),lambda(x',t')) -> and(eq(x,x'),eq(t,t')) if(true(),var(k),var(l')) -> var(k) if(false(),var(k),var(l')) -> var(l') ren(var(l),var(k),var(l')) -> if(eq(l,l'),var(k),var(l')) 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))) linear polynomial interpretations on N: and_A(x1,x2) = x2 and#_A(x1,x2) = 2 true_A = 1 true#_A = 0 false_A = 0 false#_A = 1 eq_A(x1,x2) = 1 eq#_A(x1,x2) = 3 nil_A = 1 nil#_A = 2 cons_A(x1,x2) = x1 cons#_A(x1,x2) = x2 + 2 var_A(x1) = 1 var#_A(x1) = 6 apply_A(x1,x2) = x1 + x2 + 1 apply#_A(x1,x2) = 0 lambda_A(x1,x2) = x2 + 4 lambda#_A(x1,x2) = 3 if_A(x1,x2,x3) = x3 if#_A(x1,x2,x3) = 0 ren_A(x1,x2,x3) = x3 ren#_A(x1,x2,x3) = x2 + x3 + 3 precedence: ren > eq = cons = apply = lambda = if > and = true = var > nil > false