- : unit = () - : unit = () h : heuristic = - : unit = () APPLY CRITERIA (Marked dependency pairs) TRS termination of: [1] active(U11(tt,M,N)) -> mark(U12(tt,M,N)) [2] active(U12(tt,M,N)) -> mark(s(plus(N,M))) [3] active(plus(N,0)) -> mark(N) [4] active(plus(N,s(M))) -> mark(U11(tt,M,N)) [5] active(U11(X1,X2,X3)) -> U11(active(X1),X2,X3) [6] active(U12(X1,X2,X3)) -> U12(active(X1),X2,X3) [7] active(s(X)) -> s(active(X)) [8] active(plus(X1,X2)) -> plus(active(X1),X2) [9] active(plus(X1,X2)) -> plus(X1,active(X2)) [10] U11(mark(X1),X2,X3) -> mark(U11(X1,X2,X3)) [11] U12(mark(X1),X2,X3) -> mark(U12(X1,X2,X3)) [12] s(mark(X)) -> mark(s(X)) [13] plus(mark(X1),X2) -> mark(plus(X1,X2)) [14] plus(X1,mark(X2)) -> mark(plus(X1,X2)) [15] proper(U11(X1,X2,X3)) -> U11(proper(X1),proper(X2),proper(X3)) [16] proper(tt) -> ok(tt) [17] proper(U12(X1,X2,X3)) -> U12(proper(X1),proper(X2),proper(X3)) [18] proper(s(X)) -> s(proper(X)) [19] proper(plus(X1,X2)) -> plus(proper(X1),proper(X2)) [20] proper(0) -> ok(0) [21] U11(ok(X1),ok(X2),ok(X3)) -> ok(U11(X1,X2,X3)) [22] U12(ok(X1),ok(X2),ok(X3)) -> ok(U12(X1,X2,X3)) [23] s(ok(X)) -> ok(s(X)) [24] plus(ok(X1),ok(X2)) -> ok(plus(X1,X2)) [25] top(mark(X)) -> top(proper(X)) [26] top(ok(X)) -> top(active(X)) Sub problem: guided: DP termination of: END GUIDED APPLY CRITERIA (Graph splitting) Found 7 components: { --> --> --> --> } { --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> } { --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> } { --> --> --> --> } { --> --> --> --> } { --> --> --> --> } { --> --> --> --> --> --> --> --> --> } APPLY CRITERIA (Subterm criterion) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { U12(mark(X1),X2,X3) >= mark(U12(X1,X2,X3)) ; U12(ok(X1),ok(X2),ok(X3)) >= ok(U12(X1,X2,X3)) ; active(U12(tt,M,N)) >= mark(s(plus(N,M))) ; active(U12(X1,X2,X3)) >= U12(active(X1),X2,X3) ; active(U11(tt,M,N)) >= mark(U12(tt,M,N)) ; active(U11(X1,X2,X3)) >= U11(active(X1),X2,X3) ; active(s(X)) >= s(active(X)) ; active(plus(N,s(M))) >= mark(U11(tt,M,N)) ; active(plus(N,0)) >= mark(N) ; active(plus(X1,X2)) >= plus(active(X1),X2) ; active(plus(X1,X2)) >= plus(X1,active(X2)) ; U11(mark(X1),X2,X3) >= mark(U11(X1,X2,X3)) ; U11(ok(X1),ok(X2),ok(X3)) >= ok(U11(X1,X2,X3)) ; s(mark(X)) >= mark(s(X)) ; s(ok(X)) >= ok(s(X)) ; plus(mark(X1),X2) >= mark(plus(X1,X2)) ; plus(ok(X1),ok(X2)) >= ok(plus(X1,X2)) ; plus(X1,mark(X2)) >= mark(plus(X1,X2)) ; proper(U12(X1,X2,X3)) >= U12(proper(X1),proper(X2),proper(X3)) ; proper(tt) >= ok(tt) ; proper(U11(X1,X2,X3)) >= U11(proper(X1),proper(X2),proper(X3)) ; proper(s(X)) >= s(proper(X)) ; proper(plus(X1,X2)) >= plus(proper(X1),proper(X2)) ; proper(0) >= ok(0) ; 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: U12(mark(X1),X2,X3) >= mark(U12(X1,X2,X3)) constraint: U12(ok(X1),ok(X2),ok(X3)) >= ok(U12(X1,X2,X3)) constraint: active(U12(tt,M,N)) >= mark(s(plus(N,M))) constraint: active(U12(X1,X2,X3)) >= U12(active(X1),X2,X3) constraint: active(U11(tt,M,N)) >= mark(U12(tt,M,N)) constraint: active(U11(X1,X2,X3)) >= U11(active(X1),X2,X3) constraint: active(s(X)) >= s(active(X)) constraint: active(plus(N,s(M))) >= mark(U11(tt,M,N)) constraint: active(plus(N,0)) >= mark(N) constraint: active(plus(X1,X2)) >= plus(active(X1),X2) constraint: active(plus(X1,X2)) >= plus(X1,active(X2)) constraint: U11(mark(X1),X2,X3) >= mark(U11(X1,X2,X3)) constraint: U11(ok(X1),ok(X2),ok(X3)) >= ok(U11(X1,X2,X3)) constraint: s(mark(X)) >= mark(s(X)) constraint: s(ok(X)) >= ok(s(X)) constraint: plus(mark(X1),X2) >= mark(plus(X1,X2)) constraint: plus(ok(X1),ok(X2)) >= ok(plus(X1,X2)) constraint: plus(X1,mark(X2)) >= mark(plus(X1,X2)) constraint: proper(U12(X1,X2,X3)) >= U12(proper(X1),proper(X2),proper(X3)) constraint: proper(tt) >= ok(tt) constraint: proper(U11(X1,X2,X3)) >= U11(proper(X1),proper(X2),proper(X3)) constraint: proper(s(X)) >= s(proper(X)) constraint: proper(plus(X1,X2)) >= plus(proper(X1),proper(X2)) constraint: proper(0) >= ok(0) 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_U11 -> 3 APPLY CRITERIA (Subterm criterion) ST: Marked_U12 -> 3 APPLY CRITERIA (Subterm criterion) ST: Marked_s -> 1 APPLY CRITERIA (Subterm criterion) ST: Marked_plus -> 2 APPLY CRITERIA (Graph splitting) Found 1 components: { --> } APPLY CRITERIA (Subterm criterion) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { U12(mark(X1),X2,X3) >= mark(U12(X1,X2,X3)) ; U12(ok(X1),ok(X2),ok(X3)) >= ok(U12(X1,X2,X3)) ; active(U12(tt,M,N)) >= mark(s(plus(N,M))) ; active(U12(X1,X2,X3)) >= U12(active(X1),X2,X3) ; active(U11(tt,M,N)) >= mark(U12(tt,M,N)) ; active(U11(X1,X2,X3)) >= U11(active(X1),X2,X3) ; active(s(X)) >= s(active(X)) ; active(plus(N,s(M))) >= mark(U11(tt,M,N)) ; active(plus(N,0)) >= mark(N) ; active(plus(X1,X2)) >= plus(active(X1),X2) ; active(plus(X1,X2)) >= plus(X1,active(X2)) ; U11(mark(X1),X2,X3) >= mark(U11(X1,X2,X3)) ; U11(ok(X1),ok(X2),ok(X3)) >= ok(U11(X1,X2,X3)) ; s(mark(X)) >= mark(s(X)) ; s(ok(X)) >= ok(s(X)) ; plus(mark(X1),X2) >= mark(plus(X1,X2)) ; plus(ok(X1),ok(X2)) >= ok(plus(X1,X2)) ; plus(X1,mark(X2)) >= mark(plus(X1,X2)) ; proper(U12(X1,X2,X3)) >= U12(proper(X1),proper(X2),proper(X3)) ; proper(tt) >= ok(tt) ; proper(U11(X1,X2,X3)) >= U11(proper(X1),proper(X2),proper(X3)) ; proper(s(X)) >= s(proper(X)) ; proper(plus(X1,X2)) >= plus(proper(X1),proper(X2)) ; proper(0) >= ok(0) ; 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: U12(mark(X1),X2,X3) >= mark(U12(X1,X2,X3)) constraint: U12(ok(X1),ok(X2),ok(X3)) >= ok(U12(X1,X2,X3)) constraint: active(U12(tt,M,N)) >= mark(s(plus(N,M))) constraint: active(U12(X1,X2,X3)) >= U12(active(X1),X2,X3) constraint: active(U11(tt,M,N)) >= mark(U12(tt,M,N)) constraint: active(U11(X1,X2,X3)) >= U11(active(X1),X2,X3) constraint: active(s(X)) >= s(active(X)) constraint: active(plus(N,s(M))) >= mark(U11(tt,M,N)) constraint: active(plus(N,0)) >= mark(N) constraint: active(plus(X1,X2)) >= plus(active(X1),X2) constraint: active(plus(X1,X2)) >= plus(X1,active(X2)) constraint: U11(mark(X1),X2,X3) >= mark(U11(X1,X2,X3)) constraint: U11(ok(X1),ok(X2),ok(X3)) >= ok(U11(X1,X2,X3)) constraint: s(mark(X)) >= mark(s(X)) constraint: s(ok(X)) >= ok(s(X)) constraint: plus(mark(X1),X2) >= mark(plus(X1,X2)) constraint: plus(ok(X1),ok(X2)) >= ok(plus(X1,X2)) constraint: plus(X1,mark(X2)) >= mark(plus(X1,X2)) constraint: proper(U12(X1,X2,X3)) >= U12(proper(X1),proper(X2),proper(X3)) constraint: proper(tt) >= ok(tt) constraint: proper(U11(X1,X2,X3)) >= U11(proper(X1),proper(X2),proper(X3)) constraint: proper(s(X)) >= s(proper(X)) constraint: proper(plus(X1,X2)) >= plus(proper(X1),proper(X2)) constraint: proper(0) >= ok(0) 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_U11 -> 1 APPLY CRITERIA (Graph splitting) Found 0 components: APPLY CRITERIA (Graph splitting) Found 1 components: { --> } APPLY CRITERIA (Subterm criterion) ST: Marked_U12 -> 1 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_plus -> 1 APPLY CRITERIA (Graph splitting) Found 0 components: SOLVED { TRS termination of: [1] active(U11(tt,M,N)) -> mark(U12(tt,M,N)) [2] active(U12(tt,M,N)) -> mark(s(plus(N,M))) [3] active(plus(N,0)) -> mark(N) [4] active(plus(N,s(M))) -> mark(U11(tt,M,N)) [5] active(U11(X1,X2,X3)) -> U11(active(X1),X2,X3) [6] active(U12(X1,X2,X3)) -> U12(active(X1),X2,X3) [7] active(s(X)) -> s(active(X)) [8] active(plus(X1,X2)) -> plus(active(X1),X2) [9] active(plus(X1,X2)) -> plus(X1,active(X2)) [10] U11(mark(X1),X2,X3) -> mark(U11(X1,X2,X3)) [11] U12(mark(X1),X2,X3) -> mark(U12(X1,X2,X3)) [12] s(mark(X)) -> mark(s(X)) [13] plus(mark(X1),X2) -> mark(plus(X1,X2)) [14] plus(X1,mark(X2)) -> mark(plus(X1,X2)) [15] proper(U11(X1,X2,X3)) -> U11(proper(X1),proper(X2),proper(X3)) [16] proper(tt) -> ok(tt) [17] proper(U12(X1,X2,X3)) -> U12(proper(X1),proper(X2),proper(X3)) [18] proper(s(X)) -> s(proper(X)) [19] proper(plus(X1,X2)) -> plus(proper(X1),proper(X2)) [20] proper(0) -> ok(0) [21] U11(ok(X1),ok(X2),ok(X3)) -> ok(U11(X1,X2,X3)) [22] U12(ok(X1),ok(X2),ok(X3)) -> ok(U12(X1,X2,X3)) [23] s(ok(X)) -> ok(s(X)) [24] plus(ok(X1),ok(X2)) -> ok(plus(X1,X2)) [25] top(mark(X)) -> top(proper(X)) [26] 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; [ proper ] (X0) = 1*X0; [ U11 ] (X0,X1,X2) = 2*X2 + 2*X1 + 2*X0 + 1; [ tt ] () = 2; [ top ] (X0) = 0; [ plus ] (X0,X1) = 2*X1 + 2*X0; [ U12 ] (X0,X1,X2) = 2*X2 + 2*X1 + 2*X0; [ ok ] (X0) = 1*X0; [ s ] (X0) = 1*X0 + 3; [ active ] (X0) = 1*X0; [ Marked_top ] (X0) = 1*X0; [ 0 ] () = 1; removing [ { DP termination of: , CRITERION: SG [ { DP termination of: , CRITERION: ORD [ Solution found: polynomial interpretation = [ mark ] (X0) = 2 + 0; [ proper ] (X0) = 2 + 3*X0 + 0; [ U11 ] (X0,X1,X2) = 2 + 2*X0 + 1*X1 + 0; [ tt ] () = 0; [ top ] (X0) = 0; [ plus ] (X0,X1) = 2 + 1*X1 + 0; [ U12 ] (X0,X1,X2) = 2 + 3*X0 + 0; [ ok ] (X0) = 2 + 1*X0 + 0; [ s ] (X0) = 1*X0 + 0; [ active ] (X0) = 1*X0 + 0; [ Marked_top ] (X0) = 3*X0 + 0; [ 0 ] () = 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 [ ]} ]} ]} ]} ]} ]} Cime worked for 0.287671 seconds (real time) Cime Exit Status: 0