- : unit = () - : unit = () h : heuristic = - : unit = () APPLY CRITERIA (Marked dependency pairs) TRS termination of: [1] active(filter(cons(X,Y),0,M)) -> mark(cons(0,filter(Y,M,M))) [2] active(filter(cons(X,Y),s(N),M)) -> mark(cons(X,filter(Y,N,M))) [3] active(sieve(cons(0,Y))) -> mark(cons(0,sieve(Y))) [4] active(sieve(cons(s(N),Y))) -> mark(cons(s(N),sieve(filter(Y,N,N)))) [5] active(nats(N)) -> mark(cons(N,nats(s(N)))) [6] active(zprimes) -> mark(sieve(nats(s(s(0))))) [7] active(filter(X1,X2,X3)) -> filter(active(X1),X2,X3) [8] active(filter(X1,X2,X3)) -> filter(X1,active(X2),X3) [9] active(filter(X1,X2,X3)) -> filter(X1,X2,active(X3)) [10] active(cons(X1,X2)) -> cons(active(X1),X2) [11] active(s(X)) -> s(active(X)) [12] active(sieve(X)) -> sieve(active(X)) [13] active(nats(X)) -> nats(active(X)) [14] filter(mark(X1),X2,X3) -> mark(filter(X1,X2,X3)) [15] filter(X1,mark(X2),X3) -> mark(filter(X1,X2,X3)) [16] filter(X1,X2,mark(X3)) -> mark(filter(X1,X2,X3)) [17] cons(mark(X1),X2) -> mark(cons(X1,X2)) [18] s(mark(X)) -> mark(s(X)) [19] sieve(mark(X)) -> mark(sieve(X)) [20] nats(mark(X)) -> mark(nats(X)) [21] proper(filter(X1,X2,X3)) -> filter(proper(X1),proper(X2),proper(X3)) [22] proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) [23] proper(0) -> ok(0) [24] proper(s(X)) -> s(proper(X)) [25] proper(sieve(X)) -> sieve(proper(X)) [26] proper(nats(X)) -> nats(proper(X)) [27] proper(zprimes) -> ok(zprimes) [28] filter(ok(X1),ok(X2),ok(X3)) -> ok(filter(X1,X2,X3)) [29] cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) [30] s(ok(X)) -> ok(s(X)) [31] sieve(ok(X)) -> ok(sieve(X)) [32] nats(ok(X)) -> ok(nats(X)) [33] top(mark(X)) -> top(proper(X)) [34] top(ok(X)) -> top(active(X)) Sub problem: guided: DP termination of: END GUIDED APPLY CRITERIA (Graph splitting) Found 8 components: { --> --> --> --> } { --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> } { --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> } { --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> } { --> --> --> --> } { --> --> --> --> } { --> --> --> --> } { --> --> --> --> } APPLY CRITERIA (Subterm criterion) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { cons(mark(X1),X2) >= mark(cons(X1,X2)) ; cons(ok(X1),ok(X2)) >= ok(cons(X1,X2)) ; filter(mark(X1),X2,X3) >= mark(filter(X1,X2,X3)) ; filter(ok(X1),ok(X2),ok(X3)) >= ok(filter(X1,X2,X3)) ; filter(X1,mark(X2),X3) >= mark(filter(X1,X2,X3)) ; filter(X1,X2,mark(X3)) >= mark(filter(X1,X2,X3)) ; active(cons(X1,X2)) >= cons(active(X1),X2) ; active(filter(cons(X,Y),0,M)) >= mark(cons(0,filter(Y,M,M))) ; active(filter(cons(X,Y),s(N),M)) >= mark(cons(X,filter(Y,N,M))) ; active(filter(X1,X2,X3)) >= filter(active(X1),X2,X3) ; active(filter(X1,X2,X3)) >= filter(X1,active(X2),X3) ; active(filter(X1,X2,X3)) >= filter(X1,X2,active(X3)) ; active(s(X)) >= s(active(X)) ; active(sieve(cons(0,Y))) >= mark(cons(0,sieve(Y))) ; active(sieve(cons(s(N),Y))) >= mark(cons(s(N),sieve(filter(Y,N,N)))) ; active(sieve(X)) >= sieve(active(X)) ; active(nats(X)) >= nats(active(X)) ; active(nats(N)) >= mark(cons(N,nats(s(N)))) ; active(zprimes) >= mark(sieve(nats(s(s(0))))) ; s(mark(X)) >= mark(s(X)) ; s(ok(X)) >= ok(s(X)) ; sieve(mark(X)) >= mark(sieve(X)) ; sieve(ok(X)) >= ok(sieve(X)) ; nats(mark(X)) >= mark(nats(X)) ; nats(ok(X)) >= ok(nats(X)) ; proper(cons(X1,X2)) >= cons(proper(X1),proper(X2)) ; proper(0) >= ok(0) ; proper(filter(X1,X2,X3)) >= filter(proper(X1),proper(X2),proper(X3)) ; proper(s(X)) >= s(proper(X)) ; proper(sieve(X)) >= sieve(proper(X)) ; proper(nats(X)) >= nats(proper(X)) ; proper(zprimes) >= ok(zprimes) ; top(mark(X)) >= top(proper(X)) ; top(ok(X)) >= top(active(X)) ; Marked_top(mark(X)) >= Marked_top(proper(X)) ; Marked_top(ok(X)) >= Marked_top(active(X)) ; } + Disjunctions:{ { Marked_top(mark(X)) > Marked_top(proper(X)) ; } { Marked_top(ok(X)) > Marked_top(active(X)) ; } } === TIMER virtual : 10.000000 === Entering poly_solver Starting Sat solver initialization Calling Sat solver... === STOPING TIMER virtual === === TIMER real : 10.000000 === === STOPING TIMER real === Sat solver returned Sat solver result read === STOPING TIMER real === === STOPING TIMER virtual === constraint: cons(mark(X1),X2) >= mark(cons(X1,X2)) constraint: cons(ok(X1),ok(X2)) >= ok(cons(X1,X2)) constraint: filter(mark(X1),X2,X3) >= mark(filter(X1,X2,X3)) constraint: filter(ok(X1),ok(X2),ok(X3)) >= ok(filter(X1,X2,X3)) constraint: filter(X1,mark(X2),X3) >= mark(filter(X1,X2,X3)) constraint: filter(X1,X2,mark(X3)) >= mark(filter(X1,X2,X3)) constraint: active(cons(X1,X2)) >= cons(active(X1),X2) constraint: active(filter(cons(X,Y),0,M)) >= mark(cons(0,filter(Y,M,M))) constraint: active(filter(cons(X,Y),s(N),M)) >= mark(cons(X,filter(Y,N,M))) constraint: active(filter(X1,X2,X3)) >= filter(active(X1),X2,X3) constraint: active(filter(X1,X2,X3)) >= filter(X1,active(X2),X3) constraint: active(filter(X1,X2,X3)) >= filter(X1,X2,active(X3)) constraint: active(s(X)) >= s(active(X)) constraint: active(sieve(cons(0,Y))) >= mark(cons(0,sieve(Y))) constraint: active(sieve(cons(s(N),Y))) >= mark(cons(s(N),sieve(filter(Y,N,N)))) constraint: active(sieve(X)) >= sieve(active(X)) constraint: active(nats(X)) >= nats(active(X)) constraint: active(nats(N)) >= mark(cons(N,nats(s(N)))) constraint: active(zprimes) >= mark(sieve(nats(s(s(0))))) constraint: s(mark(X)) >= mark(s(X)) constraint: s(ok(X)) >= ok(s(X)) constraint: sieve(mark(X)) >= mark(sieve(X)) constraint: sieve(ok(X)) >= ok(sieve(X)) constraint: nats(mark(X)) >= mark(nats(X)) constraint: nats(ok(X)) >= ok(nats(X)) constraint: proper(cons(X1,X2)) >= cons(proper(X1),proper(X2)) constraint: proper(0) >= ok(0) constraint: proper(filter(X1,X2,X3)) >= filter(proper(X1),proper(X2), proper(X3)) constraint: proper(s(X)) >= s(proper(X)) constraint: proper(sieve(X)) >= sieve(proper(X)) constraint: proper(nats(X)) >= nats(proper(X)) constraint: proper(zprimes) >= ok(zprimes) constraint: top(mark(X)) >= top(proper(X)) constraint: top(ok(X)) >= top(active(X)) constraint: Marked_top(mark(X)) >= Marked_top(proper(X)) constraint: Marked_top(ok(X)) >= Marked_top(active(X)) APPLY CRITERIA (Subterm criterion) ST: Marked_proper -> 1 APPLY CRITERIA (Subterm criterion) ST: Marked_active -> 1 APPLY CRITERIA (Subterm criterion) ST: Marked_filter -> 3 APPLY CRITERIA (Subterm criterion) ST: Marked_cons -> 2 APPLY CRITERIA (Subterm criterion) ST: Marked_s -> 1 APPLY CRITERIA (Subterm criterion) ST: Marked_sieve -> 1 APPLY CRITERIA (Subterm criterion) ST: Marked_nats -> 1 APPLY CRITERIA (Graph splitting) Found 1 components: { --> } APPLY CRITERIA (Subterm criterion) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { cons(mark(X1),X2) >= mark(cons(X1,X2)) ; cons(ok(X1),ok(X2)) >= ok(cons(X1,X2)) ; filter(mark(X1),X2,X3) >= mark(filter(X1,X2,X3)) ; filter(ok(X1),ok(X2),ok(X3)) >= ok(filter(X1,X2,X3)) ; filter(X1,mark(X2),X3) >= mark(filter(X1,X2,X3)) ; filter(X1,X2,mark(X3)) >= mark(filter(X1,X2,X3)) ; active(cons(X1,X2)) >= cons(active(X1),X2) ; active(filter(cons(X,Y),0,M)) >= mark(cons(0,filter(Y,M,M))) ; active(filter(cons(X,Y),s(N),M)) >= mark(cons(X,filter(Y,N,M))) ; active(filter(X1,X2,X3)) >= filter(active(X1),X2,X3) ; active(filter(X1,X2,X3)) >= filter(X1,active(X2),X3) ; active(filter(X1,X2,X3)) >= filter(X1,X2,active(X3)) ; active(s(X)) >= s(active(X)) ; active(sieve(cons(0,Y))) >= mark(cons(0,sieve(Y))) ; active(sieve(cons(s(N),Y))) >= mark(cons(s(N),sieve(filter(Y,N,N)))) ; active(sieve(X)) >= sieve(active(X)) ; active(nats(X)) >= nats(active(X)) ; active(nats(N)) >= mark(cons(N,nats(s(N)))) ; active(zprimes) >= mark(sieve(nats(s(s(0))))) ; s(mark(X)) >= mark(s(X)) ; s(ok(X)) >= ok(s(X)) ; sieve(mark(X)) >= mark(sieve(X)) ; sieve(ok(X)) >= ok(sieve(X)) ; nats(mark(X)) >= mark(nats(X)) ; nats(ok(X)) >= ok(nats(X)) ; proper(cons(X1,X2)) >= cons(proper(X1),proper(X2)) ; proper(0) >= ok(0) ; proper(filter(X1,X2,X3)) >= filter(proper(X1),proper(X2),proper(X3)) ; proper(s(X)) >= s(proper(X)) ; proper(sieve(X)) >= sieve(proper(X)) ; proper(nats(X)) >= nats(proper(X)) ; proper(zprimes) >= ok(zprimes) ; top(mark(X)) >= top(proper(X)) ; top(ok(X)) >= top(active(X)) ; Marked_top(ok(X)) >= Marked_top(active(X)) ; } + Disjunctions:{ { Marked_top(ok(X)) > Marked_top(active(X)) ; } } === TIMER virtual : 10.000000 === Entering poly_solver Starting Sat solver initialization Calling Sat solver... === STOPING TIMER virtual === === TIMER real : 10.000000 === === STOPING TIMER real === Sat solver returned Sat solver result read === STOPING TIMER real === === STOPING TIMER virtual === constraint: cons(mark(X1),X2) >= mark(cons(X1,X2)) constraint: cons(ok(X1),ok(X2)) >= ok(cons(X1,X2)) constraint: filter(mark(X1),X2,X3) >= mark(filter(X1,X2,X3)) constraint: filter(ok(X1),ok(X2),ok(X3)) >= ok(filter(X1,X2,X3)) constraint: filter(X1,mark(X2),X3) >= mark(filter(X1,X2,X3)) constraint: filter(X1,X2,mark(X3)) >= mark(filter(X1,X2,X3)) constraint: active(cons(X1,X2)) >= cons(active(X1),X2) constraint: active(filter(cons(X,Y),0,M)) >= mark(cons(0,filter(Y,M,M))) constraint: active(filter(cons(X,Y),s(N),M)) >= mark(cons(X,filter(Y,N,M))) constraint: active(filter(X1,X2,X3)) >= filter(active(X1),X2,X3) constraint: active(filter(X1,X2,X3)) >= filter(X1,active(X2),X3) constraint: active(filter(X1,X2,X3)) >= filter(X1,X2,active(X3)) constraint: active(s(X)) >= s(active(X)) constraint: active(sieve(cons(0,Y))) >= mark(cons(0,sieve(Y))) constraint: active(sieve(cons(s(N),Y))) >= mark(cons(s(N),sieve(filter(Y,N,N)))) constraint: active(sieve(X)) >= sieve(active(X)) constraint: active(nats(X)) >= nats(active(X)) constraint: active(nats(N)) >= mark(cons(N,nats(s(N)))) constraint: active(zprimes) >= mark(sieve(nats(s(s(0))))) constraint: s(mark(X)) >= mark(s(X)) constraint: s(ok(X)) >= ok(s(X)) constraint: sieve(mark(X)) >= mark(sieve(X)) constraint: sieve(ok(X)) >= ok(sieve(X)) constraint: nats(mark(X)) >= mark(nats(X)) constraint: nats(ok(X)) >= ok(nats(X)) constraint: proper(cons(X1,X2)) >= cons(proper(X1),proper(X2)) constraint: proper(0) >= ok(0) constraint: proper(filter(X1,X2,X3)) >= filter(proper(X1),proper(X2), proper(X3)) constraint: proper(s(X)) >= s(proper(X)) constraint: proper(sieve(X)) >= sieve(proper(X)) constraint: proper(nats(X)) >= nats(proper(X)) constraint: proper(zprimes) >= ok(zprimes) constraint: top(mark(X)) >= top(proper(X)) constraint: top(ok(X)) >= top(active(X)) constraint: Marked_top(ok(X)) >= Marked_top(active(X)) APPLY CRITERIA (Graph splitting) Found 0 components: APPLY CRITERIA (Graph splitting) Found 0 components: APPLY CRITERIA (Graph splitting) Found 0 components: APPLY CRITERIA (Graph splitting) Found 1 components: { --> --> --> --> } APPLY CRITERIA (Subterm criterion) ST: Marked_filter -> 2 APPLY CRITERIA (Graph splitting) Found 1 components: { --> } APPLY CRITERIA (Subterm criterion) ST: Marked_filter -> 1 APPLY CRITERIA (Graph splitting) Found 0 components: APPLY CRITERIA (Graph splitting) Found 1 components: { --> } APPLY CRITERIA (Subterm criterion) ST: Marked_cons -> 1 APPLY CRITERIA (Graph splitting) Found 0 components: APPLY CRITERIA (Graph splitting) Found 0 components: APPLY CRITERIA (Graph splitting) Found 0 components: APPLY CRITERIA (Graph splitting) Found 0 components: SOLVED { TRS termination of: [1] active(filter(cons(X,Y),0,M)) -> mark(cons(0,filter(Y,M,M))) [2] active(filter(cons(X,Y),s(N),M)) -> mark(cons(X,filter(Y,N,M))) [3] active(sieve(cons(0,Y))) -> mark(cons(0,sieve(Y))) [4] active(sieve(cons(s(N),Y))) -> mark(cons(s(N),sieve(filter(Y,N,N)))) [5] active(nats(N)) -> mark(cons(N,nats(s(N)))) [6] active(zprimes) -> mark(sieve(nats(s(s(0))))) [7] active(filter(X1,X2,X3)) -> filter(active(X1),X2,X3) [8] active(filter(X1,X2,X3)) -> filter(X1,active(X2),X3) [9] active(filter(X1,X2,X3)) -> filter(X1,X2,active(X3)) [10] active(cons(X1,X2)) -> cons(active(X1),X2) [11] active(s(X)) -> s(active(X)) [12] active(sieve(X)) -> sieve(active(X)) [13] active(nats(X)) -> nats(active(X)) [14] filter(mark(X1),X2,X3) -> mark(filter(X1,X2,X3)) [15] filter(X1,mark(X2),X3) -> mark(filter(X1,X2,X3)) [16] filter(X1,X2,mark(X3)) -> mark(filter(X1,X2,X3)) [17] cons(mark(X1),X2) -> mark(cons(X1,X2)) [18] s(mark(X)) -> mark(s(X)) [19] sieve(mark(X)) -> mark(sieve(X)) [20] nats(mark(X)) -> mark(nats(X)) [21] proper(filter(X1,X2,X3)) -> filter(proper(X1),proper(X2),proper(X3)) [22] proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) [23] proper(0) -> ok(0) [24] proper(s(X)) -> s(proper(X)) [25] proper(sieve(X)) -> sieve(proper(X)) [26] proper(nats(X)) -> nats(proper(X)) [27] proper(zprimes) -> ok(zprimes) [28] filter(ok(X1),ok(X2),ok(X3)) -> ok(filter(X1,X2,X3)) [29] cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) [30] s(ok(X)) -> ok(s(X)) [31] sieve(ok(X)) -> ok(sieve(X)) [32] nats(ok(X)) -> ok(nats(X)) [33] top(mark(X)) -> top(proper(X)) [34] top(ok(X)) -> top(active(X)) , CRITERION: MDP [ { DP termination of: , CRITERION: SG [ { DP termination of: , CRITERION: CG using polynomial interpretation = [ mark ] (X0) = 1*X0 + 1; [ zprimes ] () = 3; [ active ] (X0) = 1*X0; [ Marked_top ] (X0) = 2*X0; [ 0 ] () = 0; [ ok ] (X0) = 1*X0; [ sieve ] (X0) = 1*X0 + 1; [ cons ] (X0,X1) = 1*X0; [ proper ] (X0) = 1*X0; [ s ] (X0) = 2*X0; [ filter ] (X0,X1,X2) = 2*X2 + 2*X1 + 2*X0 + 2; [ top ] (X0) = 0; [ nats ] (X0) = 1*X0 + 1; removing [ { DP termination of: , CRITERION: SG [ { DP termination of: , CRITERION: ORD [ Solution found: polynomial interpretation = [ mark ] (X0) = 2 + 0; [ zprimes ] () = 3 + 0; [ active ] (X0) = 2*X0 + 0; [ Marked_top ] (X0) = 2*X0 + 0; [ 0 ] () = 3 + 0; [ ok ] (X0) = 3 + 2*X0 + 0; [ sieve ] (X0) = 1*X0 + 0; [ cons ] (X0,X1) = 2 + 2*X0 + 0; [ proper ] (X0) = 3*X0 + 0; [ s ] (X0) = 2*X0 + 0; [ filter ] (X0,X1,X2) = 2*X0 + 2*X1 + 3*X2 + 0; [ top ] (X0) = 0; [ nats ] (X0) = 2 + 3*X0 + 0; ]} ]} ]} { DP termination of: , CRITERION: ST [ { DP termination of: , CRITERION: SG [ ]} ]} { DP termination of: , CRITERION: ST [ { DP termination of: , CRITERION: SG [ ]} ]} { DP termination of: , CRITERION: ST [ { DP termination of: , CRITERION: SG [ { DP termination of: , CRITERION: ST [ { DP termination of: , CRITERION: SG [ { DP termination of: , CRITERION: ST [ { DP termination of: , CRITERION: SG [ ]} ]} ]} ]} ]} ]} { DP termination of: , CRITERION: ST [ { DP termination of: , CRITERION: SG [ { DP termination of: , CRITERION: ST [ { DP termination of: , CRITERION: SG [ ]} ]} ]} ]} { DP termination of: , CRITERION: ST [ { DP termination of: , CRITERION: SG [ ]} ]} { DP termination of: , CRITERION: ST [ { DP termination of: , CRITERION: SG [ ]} ]} { DP termination of: , CRITERION: ST [ { DP termination of: , CRITERION: SG [ ]} ]} ]} ]} Cime worked for 0.493888 seconds (real time) Cime Exit Status: 0