- : unit = () - : unit = () h : heuristic = - : unit = () APPLY CRITERIA (Marked dependency pairs) TRS termination of: [1] eq(0,0) -> true [2] eq(0,s(m)) -> false [3] eq(s(n),0) -> false [4] eq(s(n),s(m)) -> eq(n,m) [5] le(0,m) -> true [6] le(s(n),0) -> false [7] le(s(n),s(m)) -> le(n,m) [8] min(cons(0,nil)) -> 0 [9] min(cons(s(n),nil)) -> s(n) [10] min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) [11] if_min(true,cons(n,cons(m,x))) -> min(cons(n,x)) [12] if_min(false,cons(n,cons(m,x))) -> min(cons(m,x)) [13] replace(n,m,nil) -> nil [14] replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) [15] if_replace(true,n,m,cons(k,x)) -> cons(m,x) [16] if_replace(false,n,m,cons(k,x)) -> cons(k,replace(n,m,x)) [17] sort(nil) -> nil [18] sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) Sub problem: guided: DP termination of: END GUIDED APPLY CRITERIA (Graph splitting) Found 5 components: { --> } { --> --> } { --> } { --> --> --> --> } { --> } APPLY CRITERIA (Subterm criterion) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { eq(0,0) >= true ; eq(0,s(m)) >= false ; eq(s(n),0) >= false ; eq(s(n),s(m)) >= eq(n,m) ; le(0,m) >= true ; le(s(n),0) >= false ; le(s(n),s(m)) >= le(n,m) ; min(cons(0,nil)) >= 0 ; min(cons(s(n),nil)) >= s(n) ; min(cons(n,cons(m,x))) >= if_min(le(n,m),cons(n,cons(m,x))) ; if_min(true,cons(n,cons(m,x))) >= min(cons(n,x)) ; if_min(false,cons(n,cons(m,x))) >= min(cons(m,x)) ; replace(n,m,cons(k,x)) >= if_replace(eq(n,k),n,m,cons(k,x)) ; replace(n,m,nil) >= nil ; if_replace(true,n,m,cons(k,x)) >= cons(m,x) ; if_replace(false,n,m,cons(k,x)) >= cons(k,replace(n,m,x)) ; sort(cons(n,x)) >= cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) ; sort(nil) >= nil ; Marked_sort(cons(n,x)) >= Marked_sort(replace(min(cons(n,x)),n,x)) ; } + Disjunctions:{ { Marked_sort(cons(n,x)) > Marked_sort(replace(min(cons(n,x)),n,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: eq(0,0) >= true constraint: eq(0,s(m)) >= false constraint: eq(s(n),0) >= false constraint: eq(s(n),s(m)) >= eq(n,m) constraint: le(0,m) >= true constraint: le(s(n),0) >= false constraint: le(s(n),s(m)) >= le(n,m) constraint: min(cons(0,nil)) >= 0 constraint: min(cons(s(n),nil)) >= s(n) constraint: min(cons(n,cons(m,x))) >= if_min(le(n,m),cons(n,cons(m,x))) constraint: if_min(true,cons(n,cons(m,x))) >= min(cons(n,x)) constraint: if_min(false,cons(n,cons(m,x))) >= min(cons(m,x)) constraint: replace(n,m,cons(k,x)) >= if_replace(eq(n,k),n,m,cons(k,x)) constraint: replace(n,m,nil) >= nil constraint: if_replace(true,n,m,cons(k,x)) >= cons(m,x) constraint: if_replace(false,n,m,cons(k,x)) >= cons(k,replace(n,m,x)) constraint: sort(cons(n,x)) >= cons(min(cons(n,x)), sort(replace(min(cons(n,x)),n,x))) constraint: sort(nil) >= nil constraint: Marked_sort(cons(n,x)) >= Marked_sort(replace(min(cons(n,x)),n,x)) APPLY CRITERIA (Subterm criterion) ST: Marked_if_replace -> 4 Marked_replace -> 3 APPLY CRITERIA (Subterm criterion) ST: Marked_eq -> 1 APPLY CRITERIA (Subterm criterion) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { eq(0,0) >= true ; eq(0,s(m)) >= false ; eq(s(n),0) >= false ; eq(s(n),s(m)) >= eq(n,m) ; le(0,m) >= true ; le(s(n),0) >= false ; le(s(n),s(m)) >= le(n,m) ; min(cons(0,nil)) >= 0 ; min(cons(s(n),nil)) >= s(n) ; min(cons(n,cons(m,x))) >= if_min(le(n,m),cons(n,cons(m,x))) ; if_min(true,cons(n,cons(m,x))) >= min(cons(n,x)) ; if_min(false,cons(n,cons(m,x))) >= min(cons(m,x)) ; replace(n,m,cons(k,x)) >= if_replace(eq(n,k),n,m,cons(k,x)) ; replace(n,m,nil) >= nil ; if_replace(true,n,m,cons(k,x)) >= cons(m,x) ; if_replace(false,n,m,cons(k,x)) >= cons(k,replace(n,m,x)) ; sort(cons(n,x)) >= cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) ; sort(nil) >= nil ; Marked_min(cons(n,cons(m,x))) >= Marked_if_min(le(n,m),cons(n,cons(m,x))) ; Marked_if_min(true,cons(n,cons(m,x))) >= Marked_min(cons(n,x)) ; Marked_if_min(false,cons(n,cons(m,x))) >= Marked_min(cons(m,x)) ; } + Disjunctions:{ { Marked_min(cons(n,cons(m,x))) > Marked_if_min(le(n,m),cons(n,cons(m,x))) ; } { Marked_if_min(true,cons(n,cons(m,x))) > Marked_min(cons(n,x)) ; } { Marked_if_min(false,cons(n,cons(m,x))) > Marked_min(cons(m,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: eq(0,0) >= true constraint: eq(0,s(m)) >= false constraint: eq(s(n),0) >= false constraint: eq(s(n),s(m)) >= eq(n,m) constraint: le(0,m) >= true constraint: le(s(n),0) >= false constraint: le(s(n),s(m)) >= le(n,m) constraint: min(cons(0,nil)) >= 0 constraint: min(cons(s(n),nil)) >= s(n) constraint: min(cons(n,cons(m,x))) >= if_min(le(n,m),cons(n,cons(m,x))) constraint: if_min(true,cons(n,cons(m,x))) >= min(cons(n,x)) constraint: if_min(false,cons(n,cons(m,x))) >= min(cons(m,x)) constraint: replace(n,m,cons(k,x)) >= if_replace(eq(n,k),n,m,cons(k,x)) constraint: replace(n,m,nil) >= nil constraint: if_replace(true,n,m,cons(k,x)) >= cons(m,x) constraint: if_replace(false,n,m,cons(k,x)) >= cons(k,replace(n,m,x)) constraint: sort(cons(n,x)) >= cons(min(cons(n,x)), sort(replace(min(cons(n,x)),n,x))) constraint: sort(nil) >= nil constraint: Marked_min(cons(n,cons(m,x))) >= Marked_if_min(le(n,m), cons(n,cons(m,x))) constraint: Marked_if_min(true,cons(n,cons(m,x))) >= Marked_min(cons(n,x)) constraint: Marked_if_min(false,cons(n,cons(m,x))) >= Marked_min(cons(m,x)) APPLY CRITERIA (Subterm criterion) ST: Marked_le -> 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: APPLY CRITERIA (Graph splitting) Found 0 components: SOLVED { TRS termination of: [1] eq(0,0) -> true [2] eq(0,s(m)) -> false [3] eq(s(n),0) -> false [4] eq(s(n),s(m)) -> eq(n,m) [5] le(0,m) -> true [6] le(s(n),0) -> false [7] le(s(n),s(m)) -> le(n,m) [8] min(cons(0,nil)) -> 0 [9] min(cons(s(n),nil)) -> s(n) [10] min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) [11] if_min(true,cons(n,cons(m,x))) -> min(cons(n,x)) [12] if_min(false,cons(n,cons(m,x))) -> min(cons(m,x)) [13] replace(n,m,nil) -> nil [14] replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) [15] if_replace(true,n,m,cons(k,x)) -> cons(m,x) [16] if_replace(false,n,m,cons(k,x)) -> cons(k,replace(n,m,x)) [17] sort(nil) -> nil [18] sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) , CRITERION: MDP [ { DP termination of: , CRITERION: SG [ { DP termination of: , CRITERION: ORD [ Solution found: polynomial interpretation = [ true ] () = 0; [ nil ] () = 0; [ s ] (X0) = 0; [ sort ] (X0) = 2*X0 + 0; [ 0 ] () = 0; [ replace ] (X0,X1,X2) = 1 + 1*X2 + 0; [ min ] (X0) = 0; [ eq ] (X0,X1) = 0; [ if_min ] (X0,X1) = 0; [ le ] (X0,X1) = 0; [ Marked_sort ] (X0) = 1*X0 + 0; [ false ] () = 0; [ if_replace ] (X0,X1,X2,X3) = 1 + 1*X3 + 0; [ cons ] (X0,X1) = 2 + 1*X1 + 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: ORD [ Solution found: polynomial interpretation = [ true ] () = 0; [ nil ] () = 0; [ s ] (X0) = 0; [ sort ] (X0) = 2*X0 + 0; [ 0 ] () = 0; [ Marked_if_min ] (X0,X1) = 1*X1 + 0; [ replace ] (X0,X1,X2) = 1*X2 + 0; [ min ] (X0) = 3*X0 + 0; [ Marked_min ] (X0) = 2*X0 + 0; [ eq ] (X0,X1) = 0; [ if_min ] (X0,X1) = 2 + 2*X1 + 0; [ le ] (X0,X1) = 0; [ false ] () = 0; [ if_replace ] (X0,X1,X2,X3) = 1*X3 + 0; [ cons ] (X0,X1) = 2 + 3*X1 + 0; ]} { DP termination of: , CRITERION: ST [ { DP termination of: , CRITERION: SG [ ]} ]} ]} ]} Cime worked for 0.347306 seconds (real time) Cime Exit Status: 0