- : unit = () - : unit = () h : heuristic = - : unit = () APPLY CRITERIA (Marked dependency pairs) TRS termination of: [1] a__filter(cons(X,Y),0,M) -> cons(0,filter(Y,M,M)) [2] a__filter(cons(X,Y),s(N),M) -> cons(mark(X),filter(Y,N,M)) [3] a__sieve(cons(0,Y)) -> cons(0,sieve(Y)) [4] a__sieve(cons(s(N),Y)) -> cons(s(mark(N)),sieve(filter(Y,N,N))) [5] a__nats(N) -> cons(mark(N),nats(s(N))) [6] a__zprimes -> a__sieve(a__nats(s(s(0)))) [7] mark(filter(X1,X2,X3)) -> a__filter(mark(X1),mark(X2),mark(X3)) [8] mark(sieve(X)) -> a__sieve(mark(X)) [9] mark(nats(X)) -> a__nats(mark(X)) [10] mark(zprimes) -> a__zprimes [11] mark(cons(X1,X2)) -> cons(mark(X1),X2) [12] mark(0) -> 0 [13] mark(s(X)) -> s(mark(X)) [14] a__filter(X1,X2,X3) -> filter(X1,X2,X3) [15] a__sieve(X) -> sieve(X) [16] a__nats(X) -> nats(X) [17] a__zprimes -> zprimes Sub problem: guided: DP termination of: END GUIDED APPLY CRITERIA (Graph splitting) Found 1 components: { --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> } APPLY CRITERIA (Subterm criterion) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { a__filter(cons(X,Y),0,M) >= cons(0,filter(Y,M,M)) ; a__filter(cons(X,Y),s(N),M) >= cons(mark(X),filter(Y,N,M)) ; a__filter(X1,X2,X3) >= filter(X1,X2,X3) ; mark(cons(X1,X2)) >= cons(mark(X1),X2) ; mark(0) >= 0 ; mark(filter(X1,X2,X3)) >= a__filter(mark(X1),mark(X2),mark(X3)) ; mark(s(X)) >= s(mark(X)) ; mark(sieve(X)) >= a__sieve(mark(X)) ; mark(nats(X)) >= a__nats(mark(X)) ; mark(zprimes) >= a__zprimes ; a__sieve(cons(0,Y)) >= cons(0,sieve(Y)) ; a__sieve(cons(s(N),Y)) >= cons(s(mark(N)),sieve(filter(Y,N,N))) ; a__sieve(X) >= sieve(X) ; a__nats(X) >= nats(X) ; a__nats(N) >= cons(mark(N),nats(s(N))) ; a__zprimes >= a__sieve(a__nats(s(s(0)))) ; a__zprimes >= zprimes ; Marked_a__zprimes >= Marked_a__nats(s(s(0))) ; Marked_a__zprimes >= Marked_a__sieve(a__nats(s(s(0)))) ; Marked_a__nats(N) >= Marked_mark(N) ; Marked_a__sieve(cons(s(N),Y)) >= Marked_mark(N) ; Marked_a__filter(cons(X,Y),s(N),M) >= Marked_mark(X) ; Marked_mark(cons(X1,X2)) >= Marked_mark(X1) ; Marked_mark(filter(X1,X2,X3)) >= Marked_a__filter(mark(X1),mark(X2),mark(X3)) ; Marked_mark(filter(X1,X2,X3)) >= Marked_mark(X1) ; Marked_mark(filter(X1,X2,X3)) >= Marked_mark(X2) ; Marked_mark(filter(X1,X2,X3)) >= Marked_mark(X3) ; Marked_mark(s(X)) >= Marked_mark(X) ; Marked_mark(sieve(X)) >= Marked_a__sieve(mark(X)) ; Marked_mark(sieve(X)) >= Marked_mark(X) ; Marked_mark(nats(X)) >= Marked_a__nats(mark(X)) ; Marked_mark(nats(X)) >= Marked_mark(X) ; Marked_mark(zprimes) >= Marked_a__zprimes ; } + Disjunctions:{ { Marked_a__zprimes > Marked_a__nats(s(s(0))) ; } { Marked_a__zprimes > Marked_a__sieve(a__nats(s(s(0)))) ; } { Marked_a__nats(N) > Marked_mark(N) ; } { Marked_a__sieve(cons(s(N),Y)) > Marked_mark(N) ; } { Marked_a__filter(cons(X,Y),s(N),M) > Marked_mark(X) ; } { Marked_mark(cons(X1,X2)) > Marked_mark(X1) ; } { Marked_mark(filter(X1,X2,X3)) > Marked_a__filter(mark(X1),mark(X2),mark(X3)) ; } { Marked_mark(filter(X1,X2,X3)) > Marked_mark(X1) ; } { Marked_mark(filter(X1,X2,X3)) > Marked_mark(X2) ; } { Marked_mark(filter(X1,X2,X3)) > Marked_mark(X3) ; } { Marked_mark(s(X)) > Marked_mark(X) ; } { Marked_mark(sieve(X)) > Marked_a__sieve(mark(X)) ; } { Marked_mark(sieve(X)) > Marked_mark(X) ; } { Marked_mark(nats(X)) > Marked_a__nats(mark(X)) ; } { Marked_mark(nats(X)) > Marked_mark(X) ; } { Marked_mark(zprimes) > Marked_a__zprimes ; } } === 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: a__filter(cons(X,Y),0,M) >= cons(0,filter(Y,M,M)) constraint: a__filter(cons(X,Y),s(N),M) >= cons(mark(X),filter(Y,N,M)) constraint: a__filter(X1,X2,X3) >= filter(X1,X2,X3) constraint: mark(cons(X1,X2)) >= cons(mark(X1),X2) constraint: mark(0) >= 0 constraint: mark(filter(X1,X2,X3)) >= a__filter(mark(X1),mark(X2),mark(X3)) constraint: mark(s(X)) >= s(mark(X)) constraint: mark(sieve(X)) >= a__sieve(mark(X)) constraint: mark(nats(X)) >= a__nats(mark(X)) constraint: mark(zprimes) >= a__zprimes constraint: a__sieve(cons(0,Y)) >= cons(0,sieve(Y)) constraint: a__sieve(cons(s(N),Y)) >= cons(s(mark(N)),sieve(filter(Y,N,N))) constraint: a__sieve(X) >= sieve(X) constraint: a__nats(X) >= nats(X) constraint: a__nats(N) >= cons(mark(N),nats(s(N))) constraint: a__zprimes >= a__sieve(a__nats(s(s(0)))) constraint: a__zprimes >= zprimes constraint: Marked_a__zprimes >= Marked_a__nats(s(s(0))) constraint: Marked_a__zprimes >= Marked_a__sieve(a__nats(s(s(0)))) constraint: Marked_a__nats(N) >= Marked_mark(N) constraint: Marked_a__sieve(cons(s(N),Y)) >= Marked_mark(N) constraint: Marked_a__filter(cons(X,Y),s(N),M) >= Marked_mark(X) constraint: Marked_mark(cons(X1,X2)) >= Marked_mark(X1) constraint: Marked_mark(filter(X1,X2,X3)) >= Marked_a__filter(mark(X1), mark(X2),mark(X3)) constraint: Marked_mark(filter(X1,X2,X3)) >= Marked_mark(X1) constraint: Marked_mark(filter(X1,X2,X3)) >= Marked_mark(X2) constraint: Marked_mark(filter(X1,X2,X3)) >= Marked_mark(X3) constraint: Marked_mark(s(X)) >= Marked_mark(X) constraint: Marked_mark(sieve(X)) >= Marked_a__sieve(mark(X)) constraint: Marked_mark(sieve(X)) >= Marked_mark(X) constraint: Marked_mark(nats(X)) >= Marked_a__nats(mark(X)) constraint: Marked_mark(nats(X)) >= Marked_mark(X) constraint: Marked_mark(zprimes) >= Marked_a__zprimes APPLY CRITERIA (Graph splitting) Found 1 components: { --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> } APPLY CRITERIA (Subterm criterion) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { a__filter(cons(X,Y),0,M) >= cons(0,filter(Y,M,M)) ; a__filter(cons(X,Y),s(N),M) >= cons(mark(X),filter(Y,N,M)) ; a__filter(X1,X2,X3) >= filter(X1,X2,X3) ; mark(cons(X1,X2)) >= cons(mark(X1),X2) ; mark(0) >= 0 ; mark(filter(X1,X2,X3)) >= a__filter(mark(X1),mark(X2),mark(X3)) ; mark(s(X)) >= s(mark(X)) ; mark(sieve(X)) >= a__sieve(mark(X)) ; mark(nats(X)) >= a__nats(mark(X)) ; mark(zprimes) >= a__zprimes ; a__sieve(cons(0,Y)) >= cons(0,sieve(Y)) ; a__sieve(cons(s(N),Y)) >= cons(s(mark(N)),sieve(filter(Y,N,N))) ; a__sieve(X) >= sieve(X) ; a__nats(X) >= nats(X) ; a__nats(N) >= cons(mark(N),nats(s(N))) ; a__zprimes >= a__sieve(a__nats(s(s(0)))) ; a__zprimes >= zprimes ; Marked_a__sieve(cons(s(N),Y)) >= Marked_mark(N) ; Marked_a__filter(cons(X,Y),s(N),M) >= Marked_mark(X) ; Marked_mark(cons(X1,X2)) >= Marked_mark(X1) ; Marked_mark(filter(X1,X2,X3)) >= Marked_a__filter(mark(X1),mark(X2),mark(X3)) ; Marked_mark(filter(X1,X2,X3)) >= Marked_mark(X1) ; Marked_mark(filter(X1,X2,X3)) >= Marked_mark(X2) ; Marked_mark(filter(X1,X2,X3)) >= Marked_mark(X3) ; Marked_mark(s(X)) >= Marked_mark(X) ; Marked_mark(sieve(X)) >= Marked_a__sieve(mark(X)) ; Marked_mark(sieve(X)) >= Marked_mark(X) ; } + Disjunctions:{ { Marked_a__sieve(cons(s(N),Y)) > Marked_mark(N) ; } { Marked_a__filter(cons(X,Y),s(N),M) > Marked_mark(X) ; } { Marked_mark(cons(X1,X2)) > Marked_mark(X1) ; } { Marked_mark(filter(X1,X2,X3)) > Marked_a__filter(mark(X1),mark(X2),mark(X3)) ; } { Marked_mark(filter(X1,X2,X3)) > Marked_mark(X1) ; } { Marked_mark(filter(X1,X2,X3)) > Marked_mark(X2) ; } { Marked_mark(filter(X1,X2,X3)) > Marked_mark(X3) ; } { Marked_mark(s(X)) > Marked_mark(X) ; } { Marked_mark(sieve(X)) > Marked_a__sieve(mark(X)) ; } { Marked_mark(sieve(X)) > Marked_mark(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: a__filter(cons(X,Y),0,M) >= cons(0,filter(Y,M,M)) constraint: a__filter(cons(X,Y),s(N),M) >= cons(mark(X),filter(Y,N,M)) constraint: a__filter(X1,X2,X3) >= filter(X1,X2,X3) constraint: mark(cons(X1,X2)) >= cons(mark(X1),X2) constraint: mark(0) >= 0 constraint: mark(filter(X1,X2,X3)) >= a__filter(mark(X1),mark(X2),mark(X3)) constraint: mark(s(X)) >= s(mark(X)) constraint: mark(sieve(X)) >= a__sieve(mark(X)) constraint: mark(nats(X)) >= a__nats(mark(X)) constraint: mark(zprimes) >= a__zprimes constraint: a__sieve(cons(0,Y)) >= cons(0,sieve(Y)) constraint: a__sieve(cons(s(N),Y)) >= cons(s(mark(N)),sieve(filter(Y,N,N))) constraint: a__sieve(X) >= sieve(X) constraint: a__nats(X) >= nats(X) constraint: a__nats(N) >= cons(mark(N),nats(s(N))) constraint: a__zprimes >= a__sieve(a__nats(s(s(0)))) constraint: a__zprimes >= zprimes constraint: Marked_a__sieve(cons(s(N),Y)) >= Marked_mark(N) constraint: Marked_a__filter(cons(X,Y),s(N),M) >= Marked_mark(X) constraint: Marked_mark(cons(X1,X2)) >= Marked_mark(X1) constraint: Marked_mark(filter(X1,X2,X3)) >= Marked_a__filter(mark(X1), mark(X2),mark(X3)) constraint: Marked_mark(filter(X1,X2,X3)) >= Marked_mark(X1) constraint: Marked_mark(filter(X1,X2,X3)) >= Marked_mark(X2) constraint: Marked_mark(filter(X1,X2,X3)) >= Marked_mark(X3) constraint: Marked_mark(s(X)) >= Marked_mark(X) constraint: Marked_mark(sieve(X)) >= Marked_a__sieve(mark(X)) constraint: Marked_mark(sieve(X)) >= Marked_mark(X) APPLY CRITERIA (Graph splitting) Found 1 components: { --> --> --> --> } APPLY CRITERIA (Subterm criterion) ST: Marked_mark -> 1 APPLY CRITERIA (Graph splitting) Found 0 components: SOLVED { TRS termination of: [1] a__filter(cons(X,Y),0,M) -> cons(0,filter(Y,M,M)) [2] a__filter(cons(X,Y),s(N),M) -> cons(mark(X),filter(Y,N,M)) [3] a__sieve(cons(0,Y)) -> cons(0,sieve(Y)) [4] a__sieve(cons(s(N),Y)) -> cons(s(mark(N)),sieve(filter(Y,N,N))) [5] a__nats(N) -> cons(mark(N),nats(s(N))) [6] a__zprimes -> a__sieve(a__nats(s(s(0)))) [7] mark(filter(X1,X2,X3)) -> a__filter(mark(X1),mark(X2),mark(X3)) [8] mark(sieve(X)) -> a__sieve(mark(X)) [9] mark(nats(X)) -> a__nats(mark(X)) [10] mark(zprimes) -> a__zprimes [11] mark(cons(X1,X2)) -> cons(mark(X1),X2) [12] mark(0) -> 0 [13] mark(s(X)) -> s(mark(X)) [14] a__filter(X1,X2,X3) -> filter(X1,X2,X3) [15] a__sieve(X) -> sieve(X) [16] a__nats(X) -> nats(X) [17] a__zprimes -> zprimes , CRITERION: MDP [ { DP termination of: , CRITERION: SG [ { DP termination of: , CRITERION: CG using polynomial interpretation = [ cons ] (X0,X1) = 2*X0; [ Marked_mark ] (X0) = 3*X0; [ nats ] (X0) = 2*X0 + 3; [ mark ] (X0) = 1*X0; [ Marked_a__zprimes ] () = 3; [ filter ] (X0,X1,X2) = 1*X2 + 1*X1 + 1*X0; [ a__zprimes ] () = 3; [ sieve ] (X0) = 1*X0; [ Marked_a__sieve ] (X0) = 1*X0; [ 0 ] () = 0; [ a__nats ] (X0) = 2*X0 + 3; [ s ] (X0) = 3*X0; [ Marked_a__nats ] (X0) = 3*X0 + 3; [ a__filter ] (X0,X1,X2) = 1*X2 + 1*X1 + 1*X0; [ zprimes ] () = 3; [ a__sieve ] (X0) = 1*X0; [ Marked_a__filter ] (X0,X1,X2) = 3*X0; removing < Marked_mark(nats(X)),Marked_mark(X)> [ { DP termination of: , CRITERION: SG [ { DP termination of: , CRITERION: CG using polynomial interpretation = [ cons ] (X0,X1) = 2*X0; [ Marked_mark ] (X0) = 1*X0 + 1; [ nats ] (X0) = 2*X0; [ mark ] (X0) = 1*X0; [ filter ] (X0,X1,X2) = 1*X2 + 1*X1 + 1*X0 + 3; [ a__zprimes ] () = 3; [ sieve ] (X0) = 2*X0 + 3; [ Marked_a__sieve ] (X0) = 2*X0 + 2; [ 0 ] () = 0; [ a__nats ] (X0) = 2*X0; [ s ] (X0) = 2*X0; [ a__filter ] (X0,X1,X2) = 1*X2 + 1*X1 + 1*X0 + 3; [ zprimes ] () = 3; [ a__sieve ] (X0) = 2*X0 + 3; [ Marked_a__filter ] (X0,X1,X2) = 1*X0 + 2; removing < Marked_mark(filter(X1,X2,X3)),Marked_a__filter(mark(X1),mark(X2),mark(X3))>< Marked_mark(filter(X1,X2,X3)),Marked_mark(X1)> [ { DP termination of: , CRITERION: SG [ { DP termination of: , CRITERION: ST [ { DP termination of: , CRITERION: SG [ ]} ]} ]} ]} ]} ]} ]} ]} Cime worked for 0.313462 seconds (real time) Cime Exit Status: 0