- : unit = () - : unit = () h : heuristic = - : unit = () APPLY CRITERIA (Marked dependency pairs) TRS termination of: [1] minus_active(0,y) -> 0 [2] mark(0) -> 0 [3] minus_active(s(x),s(y)) -> minus_active(x,y) [4] mark(s(x)) -> s(mark(x)) [5] ge_active(x,0) -> true [6] mark(minus(x,y)) -> minus_active(x,y) [7] ge_active(0,s(y)) -> false [8] mark(ge(x,y)) -> ge_active(x,y) [9] ge_active(s(x),s(y)) -> ge_active(x,y) [10] mark(div(x,y)) -> div_active(mark(x),y) [11] div_active(0,s(y)) -> 0 [12] mark(if(x,y,z)) -> if_active(mark(x),y,z) [13] div_active(s(x),s(y)) -> if_active(ge_active(x,y),s(div(minus(x,y),s(y))),0) [14] if_active(true,x,y) -> mark(x) [15] minus_active(x,y) -> minus(x,y) [16] if_active(false,x,y) -> mark(y) [17] ge_active(x,y) -> ge(x,y) [18] if_active(x,y,z) -> if(x,y,z) [19] div_active(x,y) -> div(x,y) Sub problem: guided: DP termination of: END GUIDED APPLY CRITERIA (Graph splitting) Found 3 components: { --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> } { --> } { --> } APPLY CRITERIA (Subterm criterion) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { minus_active(0,y) >= 0 ; minus_active(s(x),s(y)) >= minus_active(x,y) ; minus_active(x,y) >= minus(x,y) ; mark(0) >= 0 ; mark(s(x)) >= s(mark(x)) ; mark(minus(x,y)) >= minus_active(x,y) ; mark(ge(x,y)) >= ge_active(x,y) ; mark(div(x,y)) >= div_active(mark(x),y) ; mark(if(x,y,z)) >= if_active(mark(x),y,z) ; ge_active(0,s(y)) >= false ; ge_active(s(x),s(y)) >= ge_active(x,y) ; ge_active(x,0) >= true ; ge_active(x,y) >= ge(x,y) ; div_active(0,s(y)) >= 0 ; div_active(s(x),s(y)) >= if_active(ge_active(x,y),s(div(minus(x,y),s(y))),0) ; div_active(x,y) >= div(x,y) ; if_active(true,x,y) >= mark(x) ; if_active(false,x,y) >= mark(y) ; if_active(x,y,z) >= if(x,y,z) ; Marked_div_active(s(x),s(y)) >= Marked_if_active(ge_active(x,y), s(div(minus(x,y),s(y))),0) ; Marked_if_active(true,x,y) >= Marked_mark(x) ; Marked_if_active(false,x,y) >= Marked_mark(y) ; Marked_mark(s(x)) >= Marked_mark(x) ; Marked_mark(div(x,y)) >= Marked_div_active(mark(x),y) ; Marked_mark(div(x,y)) >= Marked_mark(x) ; Marked_mark(if(x,y,z)) >= Marked_if_active(mark(x),y,z) ; Marked_mark(if(x,y,z)) >= Marked_mark(x) ; } + Disjunctions:{ { Marked_div_active(s(x),s(y)) > Marked_if_active(ge_active(x,y), s(div(minus(x,y),s(y))),0) ; } { Marked_if_active(true,x,y) > Marked_mark(x) ; } { Marked_if_active(false,x,y) > Marked_mark(y) ; } { Marked_mark(s(x)) > Marked_mark(x) ; } { Marked_mark(div(x,y)) > Marked_div_active(mark(x),y) ; } { Marked_mark(div(x,y)) > Marked_mark(x) ; } { Marked_mark(if(x,y,z)) > Marked_if_active(mark(x),y,z) ; } { Marked_mark(if(x,y,z)) > 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: minus_active(0,y) >= 0 constraint: minus_active(s(x),s(y)) >= minus_active(x,y) constraint: minus_active(x,y) >= minus(x,y) constraint: mark(0) >= 0 constraint: mark(s(x)) >= s(mark(x)) constraint: mark(minus(x,y)) >= minus_active(x,y) constraint: mark(ge(x,y)) >= ge_active(x,y) constraint: mark(div(x,y)) >= div_active(mark(x),y) constraint: mark(if(x,y,z)) >= if_active(mark(x),y,z) constraint: ge_active(0,s(y)) >= false constraint: ge_active(s(x),s(y)) >= ge_active(x,y) constraint: ge_active(x,0) >= true constraint: ge_active(x,y) >= ge(x,y) constraint: div_active(0,s(y)) >= 0 constraint: div_active(s(x),s(y)) >= if_active(ge_active(x,y), s(div(minus(x,y),s(y))),0) constraint: div_active(x,y) >= div(x,y) constraint: if_active(true,x,y) >= mark(x) constraint: if_active(false,x,y) >= mark(y) constraint: if_active(x,y,z) >= if(x,y,z) constraint: Marked_div_active(s(x),s(y)) >= Marked_if_active(ge_active(x,y), s(div(minus(x,y),s(y))), 0) constraint: Marked_if_active(true,x,y) >= Marked_mark(x) constraint: Marked_if_active(false,x,y) >= Marked_mark(y) constraint: Marked_mark(s(x)) >= Marked_mark(x) constraint: Marked_mark(div(x,y)) >= Marked_div_active(mark(x),y) constraint: Marked_mark(div(x,y)) >= Marked_mark(x) constraint: Marked_mark(if(x,y,z)) >= Marked_if_active(mark(x),y,z) constraint: Marked_mark(if(x,y,z)) >= Marked_mark(x) APPLY CRITERIA (Subterm criterion) ST: Marked_minus_active -> 1 APPLY CRITERIA (Subterm criterion) ST: Marked_ge_active -> 1 APPLY CRITERIA (Graph splitting) Found 1 components: { --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> } APPLY CRITERIA (Subterm criterion) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { minus_active(0,y) >= 0 ; minus_active(s(x),s(y)) >= minus_active(x,y) ; minus_active(x,y) >= minus(x,y) ; mark(0) >= 0 ; mark(s(x)) >= s(mark(x)) ; mark(minus(x,y)) >= minus_active(x,y) ; mark(ge(x,y)) >= ge_active(x,y) ; mark(div(x,y)) >= div_active(mark(x),y) ; mark(if(x,y,z)) >= if_active(mark(x),y,z) ; ge_active(0,s(y)) >= false ; ge_active(s(x),s(y)) >= ge_active(x,y) ; ge_active(x,0) >= true ; ge_active(x,y) >= ge(x,y) ; div_active(0,s(y)) >= 0 ; div_active(s(x),s(y)) >= if_active(ge_active(x,y),s(div(minus(x,y),s(y))),0) ; div_active(x,y) >= div(x,y) ; if_active(true,x,y) >= mark(x) ; if_active(false,x,y) >= mark(y) ; if_active(x,y,z) >= if(x,y,z) ; Marked_div_active(s(x),s(y)) >= Marked_if_active(ge_active(x,y), s(div(minus(x,y),s(y))),0) ; Marked_if_active(true,x,y) >= Marked_mark(x) ; Marked_if_active(false,x,y) >= Marked_mark(y) ; Marked_mark(s(x)) >= Marked_mark(x) ; Marked_mark(div(x,y)) >= Marked_div_active(mark(x),y) ; Marked_mark(if(x,y,z)) >= Marked_if_active(mark(x),y,z) ; Marked_mark(if(x,y,z)) >= Marked_mark(x) ; } + Disjunctions:{ { Marked_div_active(s(x),s(y)) > Marked_if_active(ge_active(x,y), s(div(minus(x,y),s(y))),0) ; } { Marked_if_active(true,x,y) > Marked_mark(x) ; } { Marked_if_active(false,x,y) > Marked_mark(y) ; } { Marked_mark(s(x)) > Marked_mark(x) ; } { Marked_mark(div(x,y)) > Marked_div_active(mark(x),y) ; } { Marked_mark(if(x,y,z)) > Marked_if_active(mark(x),y,z) ; } { Marked_mark(if(x,y,z)) > 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: minus_active(0,y) >= 0 constraint: minus_active(s(x),s(y)) >= minus_active(x,y) constraint: minus_active(x,y) >= minus(x,y) constraint: mark(0) >= 0 constraint: mark(s(x)) >= s(mark(x)) constraint: mark(minus(x,y)) >= minus_active(x,y) constraint: mark(ge(x,y)) >= ge_active(x,y) constraint: mark(div(x,y)) >= div_active(mark(x),y) constraint: mark(if(x,y,z)) >= if_active(mark(x),y,z) constraint: ge_active(0,s(y)) >= false constraint: ge_active(s(x),s(y)) >= ge_active(x,y) constraint: ge_active(x,0) >= true constraint: ge_active(x,y) >= ge(x,y) constraint: div_active(0,s(y)) >= 0 constraint: div_active(s(x),s(y)) >= if_active(ge_active(x,y), s(div(minus(x,y),s(y))),0) constraint: div_active(x,y) >= div(x,y) constraint: if_active(true,x,y) >= mark(x) constraint: if_active(false,x,y) >= mark(y) constraint: if_active(x,y,z) >= if(x,y,z) constraint: Marked_div_active(s(x),s(y)) >= Marked_if_active(ge_active(x,y), s(div(minus(x,y),s(y))), 0) constraint: Marked_if_active(true,x,y) >= Marked_mark(x) constraint: Marked_if_active(false,x,y) >= Marked_mark(y) constraint: Marked_mark(s(x)) >= Marked_mark(x) constraint: Marked_mark(div(x,y)) >= Marked_div_active(mark(x),y) constraint: Marked_mark(if(x,y,z)) >= Marked_if_active(mark(x),y,z) constraint: Marked_mark(if(x,y,z)) >= Marked_mark(x) APPLY CRITERIA (Graph splitting) Found 1 components: { --> --> --> --> --> --> --> --> --> } APPLY CRITERIA (Subterm criterion) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { minus_active(0,y) >= 0 ; minus_active(s(x),s(y)) >= minus_active(x,y) ; minus_active(x,y) >= minus(x,y) ; mark(0) >= 0 ; mark(s(x)) >= s(mark(x)) ; mark(minus(x,y)) >= minus_active(x,y) ; mark(ge(x,y)) >= ge_active(x,y) ; mark(div(x,y)) >= div_active(mark(x),y) ; mark(if(x,y,z)) >= if_active(mark(x),y,z) ; ge_active(0,s(y)) >= false ; ge_active(s(x),s(y)) >= ge_active(x,y) ; ge_active(x,0) >= true ; ge_active(x,y) >= ge(x,y) ; div_active(0,s(y)) >= 0 ; div_active(s(x),s(y)) >= if_active(ge_active(x,y),s(div(minus(x,y),s(y))),0) ; div_active(x,y) >= div(x,y) ; if_active(true,x,y) >= mark(x) ; if_active(false,x,y) >= mark(y) ; if_active(x,y,z) >= if(x,y,z) ; Marked_div_active(s(x),s(y)) >= Marked_if_active(ge_active(x,y), s(div(minus(x,y),s(y))),0) ; Marked_if_active(true,x,y) >= Marked_mark(x) ; Marked_if_active(false,x,y) >= Marked_mark(y) ; Marked_mark(s(x)) >= Marked_mark(x) ; Marked_mark(div(x,y)) >= Marked_div_active(mark(x),y) ; } + Disjunctions:{ { Marked_div_active(s(x),s(y)) > Marked_if_active(ge_active(x,y), s(div(minus(x,y),s(y))),0) ; } { Marked_if_active(true,x,y) > Marked_mark(x) ; } { Marked_if_active(false,x,y) > Marked_mark(y) ; } { Marked_mark(s(x)) > Marked_mark(x) ; } { Marked_mark(div(x,y)) > Marked_div_active(mark(x),y) ; } } === 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: minus_active(0,y) >= 0 constraint: minus_active(s(x),s(y)) >= minus_active(x,y) constraint: minus_active(x,y) >= minus(x,y) constraint: mark(0) >= 0 constraint: mark(s(x)) >= s(mark(x)) constraint: mark(minus(x,y)) >= minus_active(x,y) constraint: mark(ge(x,y)) >= ge_active(x,y) constraint: mark(div(x,y)) >= div_active(mark(x),y) constraint: mark(if(x,y,z)) >= if_active(mark(x),y,z) constraint: ge_active(0,s(y)) >= false constraint: ge_active(s(x),s(y)) >= ge_active(x,y) constraint: ge_active(x,0) >= true constraint: ge_active(x,y) >= ge(x,y) constraint: div_active(0,s(y)) >= 0 constraint: div_active(s(x),s(y)) >= if_active(ge_active(x,y), s(div(minus(x,y),s(y))),0) constraint: div_active(x,y) >= div(x,y) constraint: if_active(true,x,y) >= mark(x) constraint: if_active(false,x,y) >= mark(y) constraint: if_active(x,y,z) >= if(x,y,z) constraint: Marked_div_active(s(x),s(y)) >= Marked_if_active(ge_active(x,y), s(div(minus(x,y),s(y))), 0) constraint: Marked_if_active(true,x,y) >= Marked_mark(x) constraint: Marked_if_active(false,x,y) >= Marked_mark(y) constraint: Marked_mark(s(x)) >= Marked_mark(x) constraint: Marked_mark(div(x,y)) >= Marked_div_active(mark(x),y) 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] minus_active(0,y) -> 0 [2] mark(0) -> 0 [3] minus_active(s(x),s(y)) -> minus_active(x,y) [4] mark(s(x)) -> s(mark(x)) [5] ge_active(x,0) -> true [6] mark(minus(x,y)) -> minus_active(x,y) [7] ge_active(0,s(y)) -> false [8] mark(ge(x,y)) -> ge_active(x,y) [9] ge_active(s(x),s(y)) -> ge_active(x,y) [10] mark(div(x,y)) -> div_active(mark(x),y) [11] div_active(0,s(y)) -> 0 [12] mark(if(x,y,z)) -> if_active(mark(x),y,z) [13] div_active(s(x),s(y)) -> if_active(ge_active(x,y),s(div(minus(x,y),s(y))),0) [14] if_active(true,x,y) -> mark(x) [15] minus_active(x,y) -> minus(x,y) [16] if_active(false,x,y) -> mark(y) [17] ge_active(x,y) -> ge(x,y) [18] if_active(x,y,z) -> if(x,y,z) [19] div_active(x,y) -> div(x,y) , CRITERION: MDP [ { DP termination of: , CRITERION: SG [ { DP termination of: , CRITERION: CG using polynomial interpretation = [ 0 ] () = 0; [ Marked_mark ] (X0) = 2*X0; [ ge ] (X0,X1) = 0; [ true ] () = 0; [ if ] (X0,X1,X2) = 1*X2 + 1*X1 + 2*X0; [ mark ] (X0) = 2*X0; [ div ] (X0,X1) = 2*X0 + 1; [ minus ] (X0,X1) = 0; [ Marked_if_active ] (X0,X1,X2) = 2*X2 + 2*X1; [ minus_active ] (X0,X1) = 0; [ div_active ] (X0,X1) = 2*X0 + 2; [ ge_active ] (X0,X1) = 0; [ Marked_div_active ] (X0,X1) = 2; [ s ] (X0) = 1*X0; [ if_active ] (X0,X1,X2) = 2*X2 + 2*X1 + 2*X0; [ false ] () = 0; removing [ { DP termination of: , CRITERION: SG [ { DP termination of: , CRITERION: CG using polynomial interpretation = [ 0 ] () = 0; [ Marked_mark ] (X0) = 2*X0; [ ge ] (X0,X1) = 0; [ true ] () = 0; [ if ] (X0,X1,X2) = 2*X2 + 2*X1 + 1*X0 + 1; [ mark ] (X0) = 3*X0 + 2; [ div ] (X0,X1) = 0; [ minus ] (X0,X1) = 0; [ Marked_if_active ] (X0,X1,X2) = 2*X2 + 2*X1; [ minus_active ] (X0,X1) = 0; [ div_active ] (X0,X1) = 2; [ ge_active ] (X0,X1) = 0; [ Marked_div_active ] (X0,X1) = 0; [ s ] (X0) = 1*X0; [ if_active ] (X0,X1,X2) = 3*X2 + 3*X1 + 1*X0 + 2; [ false ] () = 0; removing [ { DP termination of: , CRITERION: SG [ { DP termination of: , CRITERION: CG using polynomial interpretation = [ 0 ] () = 0; [ Marked_mark ] (X0) = 1*X0; [ ge ] (X0,X1) = 0; [ true ] () = 0; [ if ] (X0,X1,X2) = 1*X2 + 2*X1; [ mark ] (X0) = 1*X0; [ div ] (X0,X1) = 2*X0; [ minus ] (X0,X1) = 0; [ Marked_if_active ] (X0,X1,X2) = 1*X2 + 1*X1; [ minus_active ] (X0,X1) = 0; [ div_active ] (X0,X1) = 2*X0; [ ge_active ] (X0,X1) = 0; [ Marked_div_active ] (X0,X1) = 2*X0; [ s ] (X0) = 2*X0 + 2; [ if_active ] (X0,X1,X2) = 1*X2 + 2*X1; [ false ] () = 0; removing [ { 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.483387 seconds (real time) Cime Exit Status: 0