NO Problem: strict: top(U(x,y)) -> top(check(D(x,y))) D(x,B()) -> U(x,B()) F(x,U(O(y),z)) -> U(x,F(y,z)) F(x,U(N(y),z)) -> U(x,F(y,z)) D(O(x),F(y,z)) -> F(x,D(y,z)) D(N(x),F(y,z)) -> F(x,D(y,z)) F(x,U(E(),y)) -> U(x,F(E(),y)) D(E(),F(x,y)) -> F(E(),D(x,y)) weak: E() -> N(E()) check(O(x)) -> O(x) check(U(x,y)) -> U(check(x),y) check(U(x,y)) -> U(x,check(y)) check(D(x,y)) -> D(check(x),y) check(D(x,y)) -> D(x,check(y)) check(F(x,y)) -> F(check(x),y) check(F(x,y)) -> F(x,check(y)) check(O(x)) -> O(check(x)) check(N(x)) -> N(check(x)) Proof: Unfolding Processor: loop length: 3 terms: top(U(x1510,B())) top(check(D(x1510,B()))) top(D(check(x1510),B())) context: [] substitution: x1510 -> check(x1510) Qed