3.03/3.51 YES 3.03/3.51 3.03/3.51 Problem 1: 3.03/3.51 3.03/3.51 (VAR v_NonEmpty:S M:S N:S X:S X1:S X2:S) 3.03/3.51 (RULES 3.03/3.51 active(and(tt,X:S)) -> mark(X:S) 3.03/3.51 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.51 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.51 active(plus(N:S,0)) -> mark(N:S) 3.03/3.51 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.51 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.51 active(s(X:S)) -> s(active(X:S)) 3.03/3.51 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.51 active(x(N:S,0)) -> mark(0) 3.03/3.51 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.51 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.51 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.51 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.51 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.51 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.51 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.51 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.51 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.51 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.51 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.51 proper(0) -> ok(0) 3.03/3.51 proper(tt) -> ok(tt) 3.03/3.51 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.51 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.51 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.51 top(ok(X:S)) -> top(active(X:S)) 3.03/3.51 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.51 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.51 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.51 ) 3.03/3.51 (STRATEGY INNERMOST) 3.03/3.51 3.03/3.51 Problem 1: 3.03/3.51 3.03/3.51 Dependency Pairs Processor: 3.03/3.51 -> Pairs: 3.03/3.51 ACTIVE(and(X1:S,X2:S)) -> ACTIVE(X1:S) 3.03/3.51 ACTIVE(and(X1:S,X2:S)) -> AND(active(X1:S),X2:S) 3.03/3.51 ACTIVE(plus(N:S,s(M:S))) -> PLUS(N:S,M:S) 3.03/3.51 ACTIVE(plus(N:S,s(M:S))) -> S(plus(N:S,M:S)) 3.03/3.51 ACTIVE(plus(X1:S,X2:S)) -> ACTIVE(X1:S) 3.03/3.51 ACTIVE(plus(X1:S,X2:S)) -> ACTIVE(X2:S) 3.03/3.51 ACTIVE(plus(X1:S,X2:S)) -> PLUS(active(X1:S),X2:S) 3.03/3.51 ACTIVE(plus(X1:S,X2:S)) -> PLUS(X1:S,active(X2:S)) 3.03/3.51 ACTIVE(s(X:S)) -> ACTIVE(X:S) 3.03/3.51 ACTIVE(s(X:S)) -> S(active(X:S)) 3.03/3.51 ACTIVE(x(N:S,s(M:S))) -> PLUS(x(N:S,M:S),N:S) 3.03/3.51 ACTIVE(x(N:S,s(M:S))) -> X(N:S,M:S) 3.03/3.51 ACTIVE(x(X1:S,X2:S)) -> ACTIVE(X1:S) 3.03/3.51 ACTIVE(x(X1:S,X2:S)) -> ACTIVE(X2:S) 3.03/3.51 ACTIVE(x(X1:S,X2:S)) -> X(active(X1:S),X2:S) 3.03/3.51 ACTIVE(x(X1:S,X2:S)) -> X(X1:S,active(X2:S)) 3.03/3.51 AND(mark(X1:S),X2:S) -> AND(X1:S,X2:S) 3.03/3.51 AND(ok(X1:S),ok(X2:S)) -> AND(X1:S,X2:S) 3.03/3.51 PLUS(mark(X1:S),X2:S) -> PLUS(X1:S,X2:S) 3.03/3.51 PLUS(ok(X1:S),ok(X2:S)) -> PLUS(X1:S,X2:S) 3.03/3.51 PLUS(X1:S,mark(X2:S)) -> PLUS(X1:S,X2:S) 3.03/3.51 PROPER(and(X1:S,X2:S)) -> AND(proper(X1:S),proper(X2:S)) 3.03/3.51 PROPER(and(X1:S,X2:S)) -> PROPER(X1:S) 3.03/3.51 PROPER(and(X1:S,X2:S)) -> PROPER(X2:S) 3.03/3.51 PROPER(plus(X1:S,X2:S)) -> PLUS(proper(X1:S),proper(X2:S)) 3.03/3.51 PROPER(plus(X1:S,X2:S)) -> PROPER(X1:S) 3.03/3.51 PROPER(plus(X1:S,X2:S)) -> PROPER(X2:S) 3.03/3.51 PROPER(s(X:S)) -> PROPER(X:S) 3.03/3.51 PROPER(s(X:S)) -> S(proper(X:S)) 3.03/3.51 PROPER(x(X1:S,X2:S)) -> PROPER(X1:S) 3.03/3.51 PROPER(x(X1:S,X2:S)) -> PROPER(X2:S) 3.03/3.51 PROPER(x(X1:S,X2:S)) -> X(proper(X1:S),proper(X2:S)) 3.03/3.51 S(mark(X:S)) -> S(X:S) 3.03/3.51 S(ok(X:S)) -> S(X:S) 3.03/3.51 TOP(mark(X:S)) -> PROPER(X:S) 3.03/3.51 TOP(mark(X:S)) -> TOP(proper(X:S)) 3.03/3.51 TOP(ok(X:S)) -> ACTIVE(X:S) 3.03/3.51 TOP(ok(X:S)) -> TOP(active(X:S)) 3.03/3.51 X(mark(X1:S),X2:S) -> X(X1:S,X2:S) 3.03/3.51 X(ok(X1:S),ok(X2:S)) -> X(X1:S,X2:S) 3.03/3.51 X(X1:S,mark(X2:S)) -> X(X1:S,X2:S) 3.03/3.51 -> Rules: 3.03/3.51 active(and(tt,X:S)) -> mark(X:S) 3.03/3.51 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.51 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.51 active(plus(N:S,0)) -> mark(N:S) 3.03/3.51 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.51 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.51 active(s(X:S)) -> s(active(X:S)) 3.03/3.51 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.51 active(x(N:S,0)) -> mark(0) 3.03/3.51 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.51 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.51 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.51 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.51 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.51 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.51 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.51 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.51 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.51 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.51 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.51 proper(0) -> ok(0) 3.03/3.51 proper(tt) -> ok(tt) 3.03/3.51 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.51 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.51 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.51 top(ok(X:S)) -> top(active(X:S)) 3.03/3.51 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.51 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.51 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.51 3.03/3.51 Problem 1: 3.03/3.51 3.03/3.51 SCC Processor: 3.03/3.51 -> Pairs: 3.03/3.51 ACTIVE(and(X1:S,X2:S)) -> ACTIVE(X1:S) 3.03/3.51 ACTIVE(and(X1:S,X2:S)) -> AND(active(X1:S),X2:S) 3.03/3.51 ACTIVE(plus(N:S,s(M:S))) -> PLUS(N:S,M:S) 3.03/3.51 ACTIVE(plus(N:S,s(M:S))) -> S(plus(N:S,M:S)) 3.03/3.51 ACTIVE(plus(X1:S,X2:S)) -> ACTIVE(X1:S) 3.03/3.51 ACTIVE(plus(X1:S,X2:S)) -> ACTIVE(X2:S) 3.03/3.51 ACTIVE(plus(X1:S,X2:S)) -> PLUS(active(X1:S),X2:S) 3.03/3.51 ACTIVE(plus(X1:S,X2:S)) -> PLUS(X1:S,active(X2:S)) 3.03/3.51 ACTIVE(s(X:S)) -> ACTIVE(X:S) 3.03/3.51 ACTIVE(s(X:S)) -> S(active(X:S)) 3.03/3.51 ACTIVE(x(N:S,s(M:S))) -> PLUS(x(N:S,M:S),N:S) 3.03/3.51 ACTIVE(x(N:S,s(M:S))) -> X(N:S,M:S) 3.03/3.51 ACTIVE(x(X1:S,X2:S)) -> ACTIVE(X1:S) 3.03/3.51 ACTIVE(x(X1:S,X2:S)) -> ACTIVE(X2:S) 3.03/3.51 ACTIVE(x(X1:S,X2:S)) -> X(active(X1:S),X2:S) 3.03/3.51 ACTIVE(x(X1:S,X2:S)) -> X(X1:S,active(X2:S)) 3.03/3.51 AND(mark(X1:S),X2:S) -> AND(X1:S,X2:S) 3.03/3.51 AND(ok(X1:S),ok(X2:S)) -> AND(X1:S,X2:S) 3.03/3.51 PLUS(mark(X1:S),X2:S) -> PLUS(X1:S,X2:S) 3.03/3.51 PLUS(ok(X1:S),ok(X2:S)) -> PLUS(X1:S,X2:S) 3.03/3.51 PLUS(X1:S,mark(X2:S)) -> PLUS(X1:S,X2:S) 3.03/3.52 PROPER(and(X1:S,X2:S)) -> AND(proper(X1:S),proper(X2:S)) 3.03/3.52 PROPER(and(X1:S,X2:S)) -> PROPER(X1:S) 3.03/3.52 PROPER(and(X1:S,X2:S)) -> PROPER(X2:S) 3.03/3.52 PROPER(plus(X1:S,X2:S)) -> PLUS(proper(X1:S),proper(X2:S)) 3.03/3.52 PROPER(plus(X1:S,X2:S)) -> PROPER(X1:S) 3.03/3.52 PROPER(plus(X1:S,X2:S)) -> PROPER(X2:S) 3.03/3.52 PROPER(s(X:S)) -> PROPER(X:S) 3.03/3.52 PROPER(s(X:S)) -> S(proper(X:S)) 3.03/3.52 PROPER(x(X1:S,X2:S)) -> PROPER(X1:S) 3.03/3.52 PROPER(x(X1:S,X2:S)) -> PROPER(X2:S) 3.03/3.52 PROPER(x(X1:S,X2:S)) -> X(proper(X1:S),proper(X2:S)) 3.03/3.52 S(mark(X:S)) -> S(X:S) 3.03/3.52 S(ok(X:S)) -> S(X:S) 3.03/3.52 TOP(mark(X:S)) -> PROPER(X:S) 3.03/3.52 TOP(mark(X:S)) -> TOP(proper(X:S)) 3.03/3.52 TOP(ok(X:S)) -> ACTIVE(X:S) 3.03/3.52 TOP(ok(X:S)) -> TOP(active(X:S)) 3.03/3.52 X(mark(X1:S),X2:S) -> X(X1:S,X2:S) 3.03/3.52 X(ok(X1:S),ok(X2:S)) -> X(X1:S,X2:S) 3.03/3.52 X(X1:S,mark(X2:S)) -> X(X1:S,X2:S) 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Strongly Connected Components: 3.03/3.52 ->->Cycle: 3.03/3.52 ->->-> Pairs: 3.03/3.52 X(mark(X1:S),X2:S) -> X(X1:S,X2:S) 3.03/3.52 X(ok(X1:S),ok(X2:S)) -> X(X1:S,X2:S) 3.03/3.52 X(X1:S,mark(X2:S)) -> X(X1:S,X2:S) 3.03/3.52 ->->-> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->->Cycle: 3.03/3.52 ->->-> Pairs: 3.03/3.52 S(mark(X:S)) -> S(X:S) 3.03/3.52 S(ok(X:S)) -> S(X:S) 3.03/3.52 ->->-> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->->Cycle: 3.03/3.52 ->->-> Pairs: 3.03/3.52 PLUS(mark(X1:S),X2:S) -> PLUS(X1:S,X2:S) 3.03/3.52 PLUS(ok(X1:S),ok(X2:S)) -> PLUS(X1:S,X2:S) 3.03/3.52 PLUS(X1:S,mark(X2:S)) -> PLUS(X1:S,X2:S) 3.03/3.52 ->->-> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->->Cycle: 3.03/3.52 ->->-> Pairs: 3.03/3.52 AND(mark(X1:S),X2:S) -> AND(X1:S,X2:S) 3.03/3.52 AND(ok(X1:S),ok(X2:S)) -> AND(X1:S,X2:S) 3.03/3.52 ->->-> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->->Cycle: 3.03/3.52 ->->-> Pairs: 3.03/3.52 PROPER(and(X1:S,X2:S)) -> PROPER(X1:S) 3.03/3.52 PROPER(and(X1:S,X2:S)) -> PROPER(X2:S) 3.03/3.52 PROPER(plus(X1:S,X2:S)) -> PROPER(X1:S) 3.03/3.52 PROPER(plus(X1:S,X2:S)) -> PROPER(X2:S) 3.03/3.52 PROPER(s(X:S)) -> PROPER(X:S) 3.03/3.52 PROPER(x(X1:S,X2:S)) -> PROPER(X1:S) 3.03/3.52 PROPER(x(X1:S,X2:S)) -> PROPER(X2:S) 3.03/3.52 ->->-> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->->Cycle: 3.03/3.52 ->->-> Pairs: 3.03/3.52 ACTIVE(and(X1:S,X2:S)) -> ACTIVE(X1:S) 3.03/3.52 ACTIVE(plus(X1:S,X2:S)) -> ACTIVE(X1:S) 3.03/3.52 ACTIVE(plus(X1:S,X2:S)) -> ACTIVE(X2:S) 3.03/3.52 ACTIVE(s(X:S)) -> ACTIVE(X:S) 3.03/3.52 ACTIVE(x(X1:S,X2:S)) -> ACTIVE(X1:S) 3.03/3.52 ACTIVE(x(X1:S,X2:S)) -> ACTIVE(X2:S) 3.03/3.52 ->->-> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->->Cycle: 3.03/3.52 ->->-> Pairs: 3.03/3.52 TOP(mark(X:S)) -> TOP(proper(X:S)) 3.03/3.52 TOP(ok(X:S)) -> TOP(active(X:S)) 3.03/3.52 ->->-> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 3.03/3.52 3.03/3.52 The problem is decomposed in 7 subproblems. 3.03/3.52 3.03/3.52 Problem 1.1: 3.03/3.52 3.03/3.52 Subterm Processor: 3.03/3.52 -> Pairs: 3.03/3.52 X(mark(X1:S),X2:S) -> X(X1:S,X2:S) 3.03/3.52 X(ok(X1:S),ok(X2:S)) -> X(X1:S,X2:S) 3.03/3.52 X(X1:S,mark(X2:S)) -> X(X1:S,X2:S) 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Projection: 3.03/3.52 pi(X) = 1 3.03/3.52 3.03/3.52 Problem 1.1: 3.03/3.52 3.03/3.52 SCC Processor: 3.03/3.52 -> Pairs: 3.03/3.52 X(X1:S,mark(X2:S)) -> X(X1:S,X2:S) 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Strongly Connected Components: 3.03/3.52 ->->Cycle: 3.03/3.52 ->->-> Pairs: 3.03/3.52 X(X1:S,mark(X2:S)) -> X(X1:S,X2:S) 3.03/3.52 ->->-> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 3.03/3.52 Problem 1.1: 3.03/3.52 3.03/3.52 Subterm Processor: 3.03/3.52 -> Pairs: 3.03/3.52 X(X1:S,mark(X2:S)) -> X(X1:S,X2:S) 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Projection: 3.03/3.52 pi(X) = 2 3.03/3.52 3.03/3.52 Problem 1.1: 3.03/3.52 3.03/3.52 SCC Processor: 3.03/3.52 -> Pairs: 3.03/3.52 Empty 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Strongly Connected Components: 3.03/3.52 There is no strongly connected component 3.03/3.52 3.03/3.52 The problem is finite. 3.03/3.52 3.03/3.52 Problem 1.2: 3.03/3.52 3.03/3.52 Subterm Processor: 3.03/3.52 -> Pairs: 3.03/3.52 S(mark(X:S)) -> S(X:S) 3.03/3.52 S(ok(X:S)) -> S(X:S) 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Projection: 3.03/3.52 pi(S) = 1 3.03/3.52 3.03/3.52 Problem 1.2: 3.03/3.52 3.03/3.52 SCC Processor: 3.03/3.52 -> Pairs: 3.03/3.52 Empty 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Strongly Connected Components: 3.03/3.52 There is no strongly connected component 3.03/3.52 3.03/3.52 The problem is finite. 3.03/3.52 3.03/3.52 Problem 1.3: 3.03/3.52 3.03/3.52 Subterm Processor: 3.03/3.52 -> Pairs: 3.03/3.52 PLUS(mark(X1:S),X2:S) -> PLUS(X1:S,X2:S) 3.03/3.52 PLUS(ok(X1:S),ok(X2:S)) -> PLUS(X1:S,X2:S) 3.03/3.52 PLUS(X1:S,mark(X2:S)) -> PLUS(X1:S,X2:S) 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Projection: 3.03/3.52 pi(PLUS) = 1 3.03/3.52 3.03/3.52 Problem 1.3: 3.03/3.52 3.03/3.52 SCC Processor: 3.03/3.52 -> Pairs: 3.03/3.52 PLUS(X1:S,mark(X2:S)) -> PLUS(X1:S,X2:S) 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Strongly Connected Components: 3.03/3.52 ->->Cycle: 3.03/3.52 ->->-> Pairs: 3.03/3.52 PLUS(X1:S,mark(X2:S)) -> PLUS(X1:S,X2:S) 3.03/3.52 ->->-> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 3.03/3.52 Problem 1.3: 3.03/3.52 3.03/3.52 Subterm Processor: 3.03/3.52 -> Pairs: 3.03/3.52 PLUS(X1:S,mark(X2:S)) -> PLUS(X1:S,X2:S) 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Projection: 3.03/3.52 pi(PLUS) = 2 3.03/3.52 3.03/3.52 Problem 1.3: 3.03/3.52 3.03/3.52 SCC Processor: 3.03/3.52 -> Pairs: 3.03/3.52 Empty 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Strongly Connected Components: 3.03/3.52 There is no strongly connected component 3.03/3.52 3.03/3.52 The problem is finite. 3.03/3.52 3.03/3.52 Problem 1.4: 3.03/3.52 3.03/3.52 Subterm Processor: 3.03/3.52 -> Pairs: 3.03/3.52 AND(mark(X1:S),X2:S) -> AND(X1:S,X2:S) 3.03/3.52 AND(ok(X1:S),ok(X2:S)) -> AND(X1:S,X2:S) 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Projection: 3.03/3.52 pi(AND) = 1 3.03/3.52 3.03/3.52 Problem 1.4: 3.03/3.52 3.03/3.52 SCC Processor: 3.03/3.52 -> Pairs: 3.03/3.52 Empty 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Strongly Connected Components: 3.03/3.52 There is no strongly connected component 3.03/3.52 3.03/3.52 The problem is finite. 3.03/3.52 3.03/3.52 Problem 1.5: 3.03/3.52 3.03/3.52 Subterm Processor: 3.03/3.52 -> Pairs: 3.03/3.52 PROPER(and(X1:S,X2:S)) -> PROPER(X1:S) 3.03/3.52 PROPER(and(X1:S,X2:S)) -> PROPER(X2:S) 3.03/3.52 PROPER(plus(X1:S,X2:S)) -> PROPER(X1:S) 3.03/3.52 PROPER(plus(X1:S,X2:S)) -> PROPER(X2:S) 3.03/3.52 PROPER(s(X:S)) -> PROPER(X:S) 3.03/3.52 PROPER(x(X1:S,X2:S)) -> PROPER(X1:S) 3.03/3.52 PROPER(x(X1:S,X2:S)) -> PROPER(X2:S) 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Projection: 3.03/3.52 pi(PROPER) = 1 3.03/3.52 3.03/3.52 Problem 1.5: 3.03/3.52 3.03/3.52 SCC Processor: 3.03/3.52 -> Pairs: 3.03/3.52 Empty 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Strongly Connected Components: 3.03/3.52 There is no strongly connected component 3.03/3.52 3.03/3.52 The problem is finite. 3.03/3.52 3.03/3.52 Problem 1.6: 3.03/3.52 3.03/3.52 Subterm Processor: 3.03/3.52 -> Pairs: 3.03/3.52 ACTIVE(and(X1:S,X2:S)) -> ACTIVE(X1:S) 3.03/3.52 ACTIVE(plus(X1:S,X2:S)) -> ACTIVE(X1:S) 3.03/3.52 ACTIVE(plus(X1:S,X2:S)) -> ACTIVE(X2:S) 3.03/3.52 ACTIVE(s(X:S)) -> ACTIVE(X:S) 3.03/3.52 ACTIVE(x(X1:S,X2:S)) -> ACTIVE(X1:S) 3.03/3.52 ACTIVE(x(X1:S,X2:S)) -> ACTIVE(X2:S) 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Projection: 3.03/3.52 pi(ACTIVE) = 1 3.03/3.52 3.03/3.52 Problem 1.6: 3.03/3.52 3.03/3.52 SCC Processor: 3.03/3.52 -> Pairs: 3.03/3.52 Empty 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Strongly Connected Components: 3.03/3.52 There is no strongly connected component 3.03/3.52 3.03/3.52 The problem is finite. 3.03/3.52 3.03/3.52 Problem 1.7: 3.03/3.52 3.03/3.52 Reduction Pairs Processor: 3.03/3.52 -> Pairs: 3.03/3.52 TOP(mark(X:S)) -> TOP(proper(X:S)) 3.03/3.52 TOP(ok(X:S)) -> TOP(active(X:S)) 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 -> Usable rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Interpretation type: 3.03/3.52 Simple mixed 3.03/3.52 ->Coefficients: 3.03/3.52 Natural Numbers 3.03/3.52 ->Dimension: 3.03/3.52 1 3.03/3.52 ->Bound: 3.03/3.52 2 3.03/3.52 ->Interpretation: 3.03/3.52 3.03/3.52 [active](X) = X 3.03/3.52 [and](X1,X2) = X1 + 2.X2 + 2 3.03/3.52 [plus](X1,X2) = X1 + 2.X2 + 1 3.03/3.52 [proper](X) = X 3.03/3.52 [s](X) = X + 2 3.03/3.52 [top](X) = 0 3.03/3.52 [x](X1,X2) = 2.X1.X2 + 2.X1 + 2.X2 3.03/3.52 [0] = 2 3.03/3.52 [fSNonEmpty] = 0 3.03/3.52 [mark](X) = X + 2 3.03/3.52 [ok](X) = X 3.03/3.52 [tt] = 1 3.03/3.52 [ACTIVE](X) = 0 3.03/3.52 [AND](X1,X2) = 0 3.03/3.52 [PLUS](X1,X2) = 0 3.03/3.52 [PROPER](X) = 0 3.03/3.52 [S](X) = 0 3.03/3.52 [TOP](X) = 2.X 3.03/3.52 [X](X1,X2) = 0 3.03/3.52 3.03/3.52 Problem 1.7: 3.03/3.52 3.03/3.52 SCC Processor: 3.03/3.52 -> Pairs: 3.03/3.52 TOP(ok(X:S)) -> TOP(active(X:S)) 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Strongly Connected Components: 3.03/3.52 ->->Cycle: 3.03/3.52 ->->-> Pairs: 3.03/3.52 TOP(ok(X:S)) -> TOP(active(X:S)) 3.03/3.52 ->->-> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 3.03/3.52 Problem 1.7: 3.03/3.52 3.03/3.52 Reduction Pairs Processor: 3.03/3.52 -> Pairs: 3.03/3.52 TOP(ok(X:S)) -> TOP(active(X:S)) 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 -> Usable rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Interpretation type: 3.03/3.52 Linear 3.03/3.52 ->Coefficients: 3.03/3.52 Natural Numbers 3.03/3.52 ->Dimension: 3.03/3.52 1 3.03/3.52 ->Bound: 3.03/3.52 2 3.03/3.52 ->Interpretation: 3.03/3.52 3.03/3.52 [active](X) = 2.X + 1 3.03/3.52 [and](X1,X2) = 2.X1 + 2.X2 + 2 3.03/3.52 [plus](X1,X2) = X1 + X2 + 2 3.03/3.52 [proper](X) = 0 3.03/3.52 [s](X) = 2.X + 2 3.03/3.52 [top](X) = 0 3.03/3.52 [x](X1,X2) = X1 + 2.X2 + 2 3.03/3.52 [0] = 2 3.03/3.52 [fSNonEmpty] = 0 3.03/3.52 [mark](X) = X + 2 3.03/3.52 [ok](X) = 2.X + 2 3.03/3.52 [tt] = 0 3.03/3.52 [ACTIVE](X) = 0 3.03/3.52 [AND](X1,X2) = 0 3.03/3.52 [PLUS](X1,X2) = 0 3.03/3.52 [PROPER](X) = 0 3.03/3.52 [S](X) = 0 3.03/3.52 [TOP](X) = X 3.03/3.52 [X](X1,X2) = 0 3.03/3.52 3.03/3.52 Problem 1.7: 3.03/3.52 3.03/3.52 SCC Processor: 3.03/3.52 -> Pairs: 3.03/3.52 Empty 3.03/3.52 -> Rules: 3.03/3.52 active(and(tt,X:S)) -> mark(X:S) 3.03/3.52 active(and(X1:S,X2:S)) -> and(active(X1:S),X2:S) 3.03/3.52 active(plus(N:S,s(M:S))) -> mark(s(plus(N:S,M:S))) 3.03/3.52 active(plus(N:S,0)) -> mark(N:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(active(X1:S),X2:S) 3.03/3.52 active(plus(X1:S,X2:S)) -> plus(X1:S,active(X2:S)) 3.03/3.52 active(s(X:S)) -> s(active(X:S)) 3.03/3.52 active(x(N:S,s(M:S))) -> mark(plus(x(N:S,M:S),N:S)) 3.03/3.52 active(x(N:S,0)) -> mark(0) 3.03/3.52 active(x(X1:S,X2:S)) -> x(active(X1:S),X2:S) 3.03/3.52 active(x(X1:S,X2:S)) -> x(X1:S,active(X2:S)) 3.03/3.52 and(mark(X1:S),X2:S) -> mark(and(X1:S,X2:S)) 3.03/3.52 and(ok(X1:S),ok(X2:S)) -> ok(and(X1:S,X2:S)) 3.03/3.52 plus(mark(X1:S),X2:S) -> mark(plus(X1:S,X2:S)) 3.03/3.52 plus(ok(X1:S),ok(X2:S)) -> ok(plus(X1:S,X2:S)) 3.03/3.52 plus(X1:S,mark(X2:S)) -> mark(plus(X1:S,X2:S)) 3.03/3.52 proper(and(X1:S,X2:S)) -> and(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(plus(X1:S,X2:S)) -> plus(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(s(X:S)) -> s(proper(X:S)) 3.03/3.52 proper(x(X1:S,X2:S)) -> x(proper(X1:S),proper(X2:S)) 3.03/3.52 proper(0) -> ok(0) 3.03/3.52 proper(tt) -> ok(tt) 3.03/3.52 s(mark(X:S)) -> mark(s(X:S)) 3.03/3.52 s(ok(X:S)) -> ok(s(X:S)) 3.03/3.52 top(mark(X:S)) -> top(proper(X:S)) 3.03/3.52 top(ok(X:S)) -> top(active(X:S)) 3.03/3.52 x(mark(X1:S),X2:S) -> mark(x(X1:S,X2:S)) 3.03/3.52 x(ok(X1:S),ok(X2:S)) -> ok(x(X1:S,X2:S)) 3.03/3.52 x(X1:S,mark(X2:S)) -> mark(x(X1:S,X2:S)) 3.03/3.52 ->Strongly Connected Components: 3.03/3.52 There is no strongly connected component 3.03/3.52 3.03/3.52 The problem is finite. 3.03/3.52 EOF