MAYBE 0.17/0.21 MAYBE 0.17/0.21 0.17/0.21 Problem: 0.17/0.21 active(fact(X)) -> mark(if(zero(X),s(0()),prod(X,fact(p(X))))) 0.17/0.21 active(add(0(),X)) -> mark(X) 0.17/0.21 active(add(s(X),Y)) -> mark(s(add(X,Y))) 0.17/0.21 active(prod(0(),X)) -> mark(0()) 0.17/0.21 active(prod(s(X),Y)) -> mark(add(Y,prod(X,Y))) 0.17/0.21 active(if(true(),X,Y)) -> mark(X) 0.17/0.21 active(if(false(),X,Y)) -> mark(Y) 0.17/0.21 active(zero(0())) -> mark(true()) 0.17/0.21 active(zero(s(X))) -> mark(false()) 0.17/0.21 active(p(s(X))) -> mark(X) 0.17/0.21 active(fact(X)) -> fact(active(X)) 0.17/0.21 active(if(X1,X2,X3)) -> if(active(X1),X2,X3) 0.17/0.21 active(zero(X)) -> zero(active(X)) 0.17/0.21 active(s(X)) -> s(active(X)) 0.17/0.21 active(prod(X1,X2)) -> prod(active(X1),X2) 0.17/0.21 active(prod(X1,X2)) -> prod(X1,active(X2)) 0.17/0.21 active(p(X)) -> p(active(X)) 0.17/0.21 active(add(X1,X2)) -> add(active(X1),X2) 0.17/0.21 active(add(X1,X2)) -> add(X1,active(X2)) 0.17/0.21 fact(mark(X)) -> mark(fact(X)) 0.17/0.21 if(mark(X1),X2,X3) -> mark(if(X1,X2,X3)) 0.17/0.21 zero(mark(X)) -> mark(zero(X)) 0.17/0.21 s(mark(X)) -> mark(s(X)) 0.17/0.21 prod(mark(X1),X2) -> mark(prod(X1,X2)) 0.17/0.21 prod(X1,mark(X2)) -> mark(prod(X1,X2)) 0.17/0.21 p(mark(X)) -> mark(p(X)) 0.17/0.21 add(mark(X1),X2) -> mark(add(X1,X2)) 0.17/0.21 add(X1,mark(X2)) -> mark(add(X1,X2)) 0.17/0.21 proper(fact(X)) -> fact(proper(X)) 0.17/0.21 proper(if(X1,X2,X3)) -> if(proper(X1),proper(X2),proper(X3)) 0.17/0.21 proper(zero(X)) -> zero(proper(X)) 0.17/0.21 proper(s(X)) -> s(proper(X)) 0.17/0.21 proper(0()) -> ok(0()) 0.17/0.21 proper(prod(X1,X2)) -> prod(proper(X1),proper(X2)) 0.17/0.21 proper(p(X)) -> p(proper(X)) 0.17/0.21 proper(add(X1,X2)) -> add(proper(X1),proper(X2)) 0.17/0.21 proper(true()) -> ok(true()) 0.17/0.21 proper(false()) -> ok(false()) 0.17/0.21 fact(ok(X)) -> ok(fact(X)) 0.17/0.21 if(ok(X1),ok(X2),ok(X3)) -> ok(if(X1,X2,X3)) 0.17/0.21 zero(ok(X)) -> ok(zero(X)) 0.17/0.21 s(ok(X)) -> ok(s(X)) 0.17/0.21 prod(ok(X1),ok(X2)) -> ok(prod(X1,X2)) 0.17/0.21 p(ok(X)) -> ok(p(X)) 0.17/0.21 add(ok(X1),ok(X2)) -> ok(add(X1,X2)) 0.17/0.21 top(mark(X)) -> top(proper(X)) 0.17/0.21 top(ok(X)) -> top(active(X)) 0.17/0.21 0.17/0.21 Proof: 0.17/0.21 Open 0.17/0.22 EOF