- : unit = () - : unit = () h : heuristic = - : unit = () APPLY CRITERIA (Marked dependency pairs) TRS termination of: [1] rev1(0,nil) -> 0 [2] rev1(s(X),nil) -> s(X) [3] rev1(X,cons(Y,L)) -> rev1(Y,L) [4] rev(nil) -> nil [5] rev(cons(X,L)) -> cons(rev1(X,L),rev2(X,L)) [6] rev2(X,nil) -> nil [7] rev2(X,cons(Y,L)) -> rev(cons(X,rev(rev2(Y,L)))) Sub problem: guided: DP termination of: END GUIDED APPLY CRITERIA (Graph splitting) Found 2 components: { --> --> --> --> --> --> --> --> } { --> } APPLY CRITERIA (Subterm criterion) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { rev1(0,nil) >= 0 ; rev1(s(X),nil) >= s(X) ; rev1(X,cons(Y,L)) >= rev1(Y,L) ; rev(nil) >= nil ; rev(cons(X,L)) >= cons(rev1(X,L),rev2(X,L)) ; rev2(X,nil) >= nil ; rev2(X,cons(Y,L)) >= rev(cons(X,rev(rev2(Y,L)))) ; Marked_rev2(X,cons(Y,L)) >= Marked_rev2(Y,L) ; Marked_rev2(X,cons(Y,L)) >= Marked_rev(cons(X,rev(rev2(Y,L)))) ; Marked_rev2(X,cons(Y,L)) >= Marked_rev(rev2(Y,L)) ; Marked_rev(cons(X,L)) >= Marked_rev2(X,L) ; } + Disjunctions:{ { Marked_rev2(X,cons(Y,L)) > Marked_rev2(Y,L) ; } { Marked_rev2(X,cons(Y,L)) > Marked_rev(cons(X,rev(rev2(Y,L)))) ; } { Marked_rev2(X,cons(Y,L)) > Marked_rev(rev2(Y,L)) ; } { Marked_rev(cons(X,L)) > Marked_rev2(X,L) ; } } === 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: rev1(0,nil) >= 0 constraint: rev1(s(X),nil) >= s(X) constraint: rev1(X,cons(Y,L)) >= rev1(Y,L) constraint: rev(nil) >= nil constraint: rev(cons(X,L)) >= cons(rev1(X,L),rev2(X,L)) constraint: rev2(X,nil) >= nil constraint: rev2(X,cons(Y,L)) >= rev(cons(X,rev(rev2(Y,L)))) constraint: Marked_rev2(X,cons(Y,L)) >= Marked_rev2(Y,L) constraint: Marked_rev2(X,cons(Y,L)) >= Marked_rev(cons(X,rev(rev2(Y,L)))) constraint: Marked_rev2(X,cons(Y,L)) >= Marked_rev(rev2(Y,L)) constraint: Marked_rev(cons(X,L)) >= Marked_rev2(X,L) APPLY CRITERIA (Subterm criterion) ST: Marked_rev1 -> 2 APPLY CRITERIA (Graph splitting) Found 0 components: APPLY CRITERIA (Graph splitting) Found 0 components: SOLVED { TRS termination of: [1] rev1(0,nil) -> 0 [2] rev1(s(X),nil) -> s(X) [3] rev1(X,cons(Y,L)) -> rev1(Y,L) [4] rev(nil) -> nil [5] rev(cons(X,L)) -> cons(rev1(X,L),rev2(X,L)) [6] rev2(X,nil) -> nil [7] rev2(X,cons(Y,L)) -> rev(cons(X,rev(rev2(Y,L)))) , CRITERION: MDP [ { DP termination of: , CRITERION: SG [ { DP termination of: , CRITERION: ORD [ Solution found: polynomial interpretation = [ 0 ] () = 0; [ Marked_rev ] (X0) = 1 + 2*X0 + 0; [ cons ] (X0,X1) = 3 + 2*X1 + 0; [ nil ] () = 0; [ rev2 ] (X0,X1) = 1*X1 + 0; [ rev1 ] (X0,X1) = 0; [ rev ] (X0) = 1*X0 + 0; [ s ] (X0) = 0; [ Marked_rev2 ] (X0,X1) = 3*X1 + 0; ]} { DP termination of: , CRITERION: ST [ { DP termination of: , CRITERION: SG [ ]} ]} ]} ]} Cime worked for 0.068227 seconds (real time) Cime Exit Status: 0