- : unit = () h : heuristic = - : unit = () APPLY CRITERIA (Marked dependency pairs) TRS termination of: [1] f(x,nil) -> g(nil,x) [2] f(x,g(y,z)) -> g(f(x,y),z) [3] ++(x,nil) -> x [4] ++(x,g(y,z)) -> g(++(x,y),z) [5] null(nil) -> true [6] null(g(x,y)) -> false [7] mem(nil,y) -> false [8] mem(g(x,y),z) -> or(=(y,z),mem(x,z)) [9] mem(x,max(x)) -> not(null(x)) [10] max(g(g(nil,x),y)) -> max'(x,y) [11] max(g(g(g(x,y),z),u)) -> max'(max(g(g(x,y),z)),u) Sub problem: guided: DP termination of: END GUIDED APPLY CRITERIA (Graph splitting) Found 4 components: { --> } { --> } { --> } { --> } APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { f(x,g(y,z)) >= g(f(x,y),z) ; f(x,nil) >= g(nil,x) ; ++(x,g(y,z)) >= g(++(x,y),z) ; ++(x,nil) >= x ; null(g(x,y)) >= false ; null(nil) >= true ; mem(g(x,y),z) >= or(=(y,z),mem(x,z)) ; mem(nil,y) >= false ; mem(x,max(x)) >= not(null(x)) ; max(g(g(g(x,y),z),u)) >= max'(max(g(g(x,y),z)),u) ; max(g(g(nil,x),y)) >= max'(x,y) ; Marked_f(x,g(y,z)) >= Marked_f(x,y) ; } + Disjunctions:{ { Marked_f(x,g(y,z)) > Marked_f(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: f(x,g(y,z)) >= g(f(x,y),z) constraint: f(x,nil) >= g(nil,x) constraint: ++(x,g(y,z)) >= g(++(x,y),z) constraint: ++(x,nil) >= x constraint: null(g(x,y)) >= false constraint: null(nil) >= true constraint: mem(g(x,y),z) >= or(=(y,z),mem(x,z)) constraint: mem(nil,y) >= false constraint: mem(x,max(x)) >= not(null(x)) constraint: max(g(g(g(x,y),z),u)) >= max'(max(g(g(x,y),z)),u) constraint: max(g(g(nil,x),y)) >= max'(x,y) constraint: Marked_f(x,g(y,z)) >= Marked_f(x,y) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { f(x,g(y,z)) >= g(f(x,y),z) ; f(x,nil) >= g(nil,x) ; ++(x,g(y,z)) >= g(++(x,y),z) ; ++(x,nil) >= x ; null(g(x,y)) >= false ; null(nil) >= true ; mem(g(x,y),z) >= or(=(y,z),mem(x,z)) ; mem(nil,y) >= false ; mem(x,max(x)) >= not(null(x)) ; max(g(g(g(x,y),z),u)) >= max'(max(g(g(x,y),z)),u) ; max(g(g(nil,x),y)) >= max'(x,y) ; Marked_++(x,g(y,z)) >= Marked_++(x,y) ; } + Disjunctions:{ { Marked_++(x,g(y,z)) > Marked_++(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: f(x,g(y,z)) >= g(f(x,y),z) constraint: f(x,nil) >= g(nil,x) constraint: ++(x,g(y,z)) >= g(++(x,y),z) constraint: ++(x,nil) >= x constraint: null(g(x,y)) >= false constraint: null(nil) >= true constraint: mem(g(x,y),z) >= or(=(y,z),mem(x,z)) constraint: mem(nil,y) >= false constraint: mem(x,max(x)) >= not(null(x)) constraint: max(g(g(g(x,y),z),u)) >= max'(max(g(g(x,y),z)),u) constraint: max(g(g(nil,x),y)) >= max'(x,y) constraint: Marked_++(x,g(y,z)) >= Marked_++(x,y) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { f(x,g(y,z)) >= g(f(x,y),z) ; f(x,nil) >= g(nil,x) ; ++(x,g(y,z)) >= g(++(x,y),z) ; ++(x,nil) >= x ; null(g(x,y)) >= false ; null(nil) >= true ; mem(g(x,y),z) >= or(=(y,z),mem(x,z)) ; mem(nil,y) >= false ; mem(x,max(x)) >= not(null(x)) ; max(g(g(g(x,y),z),u)) >= max'(max(g(g(x,y),z)),u) ; max(g(g(nil,x),y)) >= max'(x,y) ; Marked_mem(g(x,y),z) >= Marked_mem(x,z) ; } + Disjunctions:{ { Marked_mem(g(x,y),z) > Marked_mem(x,z) ; } } === 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: f(x,g(y,z)) >= g(f(x,y),z) constraint: f(x,nil) >= g(nil,x) constraint: ++(x,g(y,z)) >= g(++(x,y),z) constraint: ++(x,nil) >= x constraint: null(g(x,y)) >= false constraint: null(nil) >= true constraint: mem(g(x,y),z) >= or(=(y,z),mem(x,z)) constraint: mem(nil,y) >= false constraint: mem(x,max(x)) >= not(null(x)) constraint: max(g(g(g(x,y),z),u)) >= max'(max(g(g(x,y),z)),u) constraint: max(g(g(nil,x),y)) >= max'(x,y) constraint: Marked_mem(g(x,y),z) >= Marked_mem(x,z) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { f(x,g(y,z)) >= g(f(x,y),z) ; f(x,nil) >= g(nil,x) ; ++(x,g(y,z)) >= g(++(x,y),z) ; ++(x,nil) >= x ; null(g(x,y)) >= false ; null(nil) >= true ; mem(g(x,y),z) >= or(=(y,z),mem(x,z)) ; mem(nil,y) >= false ; mem(x,max(x)) >= not(null(x)) ; max(g(g(g(x,y),z),u)) >= max'(max(g(g(x,y),z)),u) ; max(g(g(nil,x),y)) >= max'(x,y) ; Marked_max(g(g(g(x,y),z),u)) >= Marked_max(g(g(x,y),z)) ; } + Disjunctions:{ { Marked_max(g(g(g(x,y),z),u)) > Marked_max(g(g(x,y),z)) ; } } === 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: f(x,g(y,z)) >= g(f(x,y),z) constraint: f(x,nil) >= g(nil,x) constraint: ++(x,g(y,z)) >= g(++(x,y),z) constraint: ++(x,nil) >= x constraint: null(g(x,y)) >= false constraint: null(nil) >= true constraint: mem(g(x,y),z) >= or(=(y,z),mem(x,z)) constraint: mem(nil,y) >= false constraint: mem(x,max(x)) >= not(null(x)) constraint: max(g(g(g(x,y),z),u)) >= max'(max(g(g(x,y),z)),u) constraint: max(g(g(nil,x),y)) >= max'(x,y) constraint: Marked_max(g(g(g(x,y),z),u)) >= Marked_max(g(g(x,y),z)) 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] f(x,nil) -> g(nil,x) [2] f(x,g(y,z)) -> g(f(x,y),z) [3] ++(x,nil) -> x [4] ++(x,g(y,z)) -> g(++(x,y),z) [5] null(nil) -> true [6] null(g(x,y)) -> false [7] mem(nil,y) -> false [8] mem(g(x,y),z) -> or(=(y,z),mem(x,z)) [9] mem(x,max(x)) -> not(null(x)) [10] max(g(g(nil,x),y)) -> max'(x,y) [11] max(g(g(g(x,y),z),u)) -> max'(max(g(g(x,y),z)),u) , CRITERION: MDP [ { DP termination of: , CRITERION: SG [ { DP termination of: , CRITERION: ORD [ Solution found: polynomial interpretation = [ g ] (X0,X1) = 1 + 1*X0 + 3*X1 + 0; [ or ] (X0,X1) = 2 + 0; [ true ] () = 0; [ max' ] (X0,X1) = 3*X1 + 0; [ f ] (X0,X1) = 2 + 3*X0 + 1*X1 + 0; [ Marked_f ] (X0,X1) = 3*X1 + 0; [ not ] (X0) = 0; [ false ] () = 0; [ nil ] () = 2 + 0; [ = ] (X0,X1) = 0; [ null ] (X0) = 0; [ u ] () = 3 + 0; [ ++ ] (X0,X1) = 3*X0 + 2*X1 + 0; [ max ] (X0) = 2 + 2*X0 + 0; [ mem ] (X0,X1) = 2 + 2*X0 + 2*X1 + 0; ]} { DP termination of: , CRITERION: ORD [ Solution found: polynomial interpretation = [ g ] (X0,X1) = 2 + 1*X0 + 3*X1 + 0; [ or ] (X0,X1) = 0; [ true ] () = 2 + 0; [ max' ] (X0,X1) = 2 + 3*X1 + 0; [ f ] (X0,X1) = 3*X0 + 2*X1 + 0; [ not ] (X0) = 2 + 2*X0 + 0; [ false ] () = 2 + 0; [ nil ] () = 2 + 0; [ Marked_++ ] (X0,X1) = 3*X1 + 0; [ = ] (X0,X1) = 0; [ null ] (X0) = 2 + 0; [ u ] () = 3 + 0; [ ++ ] (X0,X1) = 3*X0 + 2*X1 + 0; [ max ] (X0) = 3 + 2*X0 + 0; [ mem ] (X0,X1) = 2 + 2*X0 + 2*X1 + 0; ]} { DP termination of: , CRITERION: ORD [ Solution found: polynomial interpretation = [ g ] (X0,X1) = 2 + 1*X0 + 3*X1 + 0; [ or ] (X0,X1) = 0; [ true ] () = 2 + 0; [ max' ] (X0,X1) = 1*X0 + 0; [ f ] (X0,X1) = 3*X0 + 2*X1 + 0; [ not ] (X0) = 2 + 2*X0 + 0; [ false ] () = 2 + 0; [ nil ] () = 2 + 0; [ = ] (X0,X1) = 0; [ null ] (X0) = 2 + 0; [ u ] () = 0; [ ++ ] (X0,X1) = 3*X0 + 1*X1 + 0; [ max ] (X0) = 3 + 2*X0 + 0; [ mem ] (X0,X1) = 2 + 2*X0 + 2*X1 + 0; [ Marked_mem ] (X0,X1) = 3*X0 + 0; ]} { DP termination of: , CRITERION: ORD [ Solution found: polynomial interpretation = [ g ] (X0,X1) = 2 + 1*X0 + 3*X1 + 0; [ or ] (X0,X1) = 0; [ true ] () = 0; [ max' ] (X0,X1) = 0; [ f ] (X0,X1) = 2 + 3*X0 + 1*X1 + 0; [ not ] (X0) = 0; [ false ] () = 0; [ Marked_max ] (X0) = 1*X0 + 0; [ nil ] () = 0; [ = ] (X0,X1) = 0; [ null ] (X0) = 0; [ u ] () = 0; [ ++ ] (X0,X1) = 3*X0 + 2*X1 + 0; [ max ] (X0) = 2 + 2*X0 + 0; [ mem ] (X0,X1) = 2 + 2*X0 + 2*X1 + 0; ]} ]} ]} Cime worked for 0.298916 seconds (real time) Cime Exit Status: 0