- : unit = () h : heuristic = - : unit = () APPLY CRITERIA (Marked dependency pairs) TRS termination of: [1] active(fact(X)) -> mark(if(zero(X),s(0),prod(X,fact(p(X))))) [2] active(add(0,X)) -> mark(X) [3] active(add(s(X),Y)) -> mark(s(add(X,Y))) [4] active(prod(0,X)) -> mark(0) [5] active(prod(s(X),Y)) -> mark(add(Y,prod(X,Y))) [6] active(if(true,X,Y)) -> mark(X) [7] active(if(false,X,Y)) -> mark(Y) [8] active(zero(0)) -> mark(true) [9] active(zero(s(X))) -> mark(false) [10] active(p(s(X))) -> mark(X) [11] mark(fact(X)) -> active(fact(mark(X))) [12] mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) [13] mark(zero(X)) -> active(zero(mark(X))) [14] mark(s(X)) -> active(s(mark(X))) [15] mark(0) -> active(0) [16] mark(prod(X1,X2)) -> active(prod(mark(X1),mark(X2))) [17] mark(p(X)) -> active(p(mark(X))) [18] mark(add(X1,X2)) -> active(add(mark(X1),mark(X2))) [19] mark(true) -> active(true) [20] mark(false) -> active(false) [21] fact(mark(X)) -> fact(X) [22] fact(active(X)) -> fact(X) [23] if(mark(X1),X2,X3) -> if(X1,X2,X3) [24] if(X1,mark(X2),X3) -> if(X1,X2,X3) [25] if(X1,X2,mark(X3)) -> if(X1,X2,X3) [26] if(active(X1),X2,X3) -> if(X1,X2,X3) [27] if(X1,active(X2),X3) -> if(X1,X2,X3) [28] if(X1,X2,active(X3)) -> if(X1,X2,X3) [29] zero(mark(X)) -> zero(X) [30] zero(active(X)) -> zero(X) [31] s(mark(X)) -> s(X) [32] s(active(X)) -> s(X) [33] prod(mark(X1),X2) -> prod(X1,X2) [34] prod(X1,mark(X2)) -> prod(X1,X2) [35] prod(active(X1),X2) -> prod(X1,X2) [36] prod(X1,active(X2)) -> prod(X1,X2) [37] p(mark(X)) -> p(X) [38] p(active(X)) -> p(X) [39] add(mark(X1),X2) -> add(X1,X2) [40] add(X1,mark(X2)) -> add(X1,X2) [41] add(active(X1),X2) -> add(X1,X2) [42] add(X1,active(X2)) -> add(X1,X2) Sub problem: guided: DP termination of: END GUIDED APPLY CRITERIA (Graph splitting) Found 8 components: { --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> } { --> --> --> --> } { --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> } { --> --> --> --> } { --> --> --> --> } { --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> } { --> --> --> --> } { --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> } APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { mark(if(X1,X2,X3)) >= active(if(mark(X1),X2,X3)) ; mark(zero(X)) >= active(zero(mark(X))) ; mark(s(X)) >= active(s(mark(X))) ; mark(0) >= active(0) ; mark(prod(X1,X2)) >= active(prod(mark(X1),mark(X2))) ; mark(fact(X)) >= active(fact(mark(X))) ; mark(p(X)) >= active(p(mark(X))) ; mark(add(X1,X2)) >= active(add(mark(X1),mark(X2))) ; mark(true) >= active(true) ; mark(false) >= active(false) ; if(mark(X1),X2,X3) >= if(X1,X2,X3) ; if(active(X1),X2,X3) >= if(X1,X2,X3) ; if(X1,mark(X2),X3) >= if(X1,X2,X3) ; if(X1,active(X2),X3) >= if(X1,X2,X3) ; if(X1,X2,mark(X3)) >= if(X1,X2,X3) ; if(X1,X2,active(X3)) >= if(X1,X2,X3) ; zero(mark(X)) >= zero(X) ; zero(active(X)) >= zero(X) ; s(mark(X)) >= s(X) ; s(active(X)) >= s(X) ; prod(mark(X1),X2) >= prod(X1,X2) ; prod(active(X1),X2) >= prod(X1,X2) ; prod(X1,mark(X2)) >= prod(X1,X2) ; prod(X1,active(X2)) >= prod(X1,X2) ; fact(mark(X)) >= fact(X) ; fact(active(X)) >= fact(X) ; p(mark(X)) >= p(X) ; p(active(X)) >= p(X) ; active(if(true,X,Y)) >= mark(X) ; active(if(false,X,Y)) >= mark(Y) ; active(zero(s(X))) >= mark(false) ; active(zero(0)) >= mark(true) ; active(prod(s(X),Y)) >= mark(add(Y,prod(X,Y))) ; active(prod(0,X)) >= mark(0) ; active(fact(X)) >= mark(if(zero(X),s(0),prod(X,fact(p(X))))) ; active(p(s(X))) >= mark(X) ; active(add(s(X),Y)) >= mark(s(add(X,Y))) ; active(add(0,X)) >= mark(X) ; add(mark(X1),X2) >= add(X1,X2) ; add(active(X1),X2) >= add(X1,X2) ; add(X1,mark(X2)) >= add(X1,X2) ; add(X1,active(X2)) >= add(X1,X2) ; Marked_mark(if(X1,X2,X3)) >= Marked_mark(X1) ; Marked_mark(if(X1,X2,X3)) >= Marked_active(if(mark(X1),X2,X3)) ; Marked_mark(zero(X)) >= Marked_mark(X) ; Marked_mark(zero(X)) >= Marked_active(zero(mark(X))) ; Marked_mark(s(X)) >= Marked_mark(X) ; Marked_mark(s(X)) >= Marked_active(s(mark(X))) ; Marked_mark(prod(X1,X2)) >= Marked_mark(X1) ; Marked_mark(prod(X1,X2)) >= Marked_mark(X2) ; Marked_mark(prod(X1,X2)) >= Marked_active(prod(mark(X1),mark(X2))) ; Marked_mark(fact(X)) >= Marked_mark(X) ; Marked_mark(fact(X)) >= Marked_active(fact(mark(X))) ; Marked_mark(p(X)) >= Marked_mark(X) ; Marked_mark(p(X)) >= Marked_active(p(mark(X))) ; Marked_mark(add(X1,X2)) >= Marked_mark(X1) ; Marked_mark(add(X1,X2)) >= Marked_mark(X2) ; Marked_mark(add(X1,X2)) >= Marked_active(add(mark(X1),mark(X2))) ; Marked_active(if(true,X,Y)) >= Marked_mark(X) ; Marked_active(if(false,X,Y)) >= Marked_mark(Y) ; Marked_active(prod(s(X),Y)) >= Marked_mark(add(Y,prod(X,Y))) ; Marked_active(fact(X)) >= Marked_mark(if(zero(X),s(0),prod(X,fact(p(X))))) ; Marked_active(p(s(X))) >= Marked_mark(X) ; Marked_active(add(s(X),Y)) >= Marked_mark(s(add(X,Y))) ; Marked_active(add(0,X)) >= Marked_mark(X) ; } + Disjunctions:{ { Marked_mark(if(X1,X2,X3)) > Marked_mark(X1) ; } { Marked_mark(if(X1,X2,X3)) > Marked_active(if(mark(X1),X2,X3)) ; } { Marked_mark(zero(X)) > Marked_mark(X) ; } { Marked_mark(zero(X)) > Marked_active(zero(mark(X))) ; } { Marked_mark(s(X)) > Marked_mark(X) ; } { Marked_mark(s(X)) > Marked_active(s(mark(X))) ; } { Marked_mark(prod(X1,X2)) > Marked_mark(X1) ; } { Marked_mark(prod(X1,X2)) > Marked_mark(X2) ; } { Marked_mark(prod(X1,X2)) > Marked_active(prod(mark(X1),mark(X2))) ; } { Marked_mark(fact(X)) > Marked_mark(X) ; } { Marked_mark(fact(X)) > Marked_active(fact(mark(X))) ; } { Marked_mark(p(X)) > Marked_mark(X) ; } { Marked_mark(p(X)) > Marked_active(p(mark(X))) ; } { Marked_mark(add(X1,X2)) > Marked_mark(X1) ; } { Marked_mark(add(X1,X2)) > Marked_mark(X2) ; } { Marked_mark(add(X1,X2)) > Marked_active(add(mark(X1),mark(X2))) ; } { Marked_active(if(true,X,Y)) > Marked_mark(X) ; } { Marked_active(if(false,X,Y)) > Marked_mark(Y) ; } { Marked_active(prod(s(X),Y)) > Marked_mark(add(Y,prod(X,Y))) ; } { Marked_active(fact(X)) > Marked_mark(if(zero(X),s(0),prod(X,fact(p(X))))) ; } { Marked_active(p(s(X))) > Marked_mark(X) ; } { Marked_active(add(s(X),Y)) > Marked_mark(s(add(X,Y))) ; } { Marked_active(add(0,X)) > 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: mark(if(X1,X2,X3)) >= active(if(mark(X1),X2,X3)) constraint: mark(zero(X)) >= active(zero(mark(X))) constraint: mark(s(X)) >= active(s(mark(X))) constraint: mark(0) >= active(0) constraint: mark(prod(X1,X2)) >= active(prod(mark(X1),mark(X2))) constraint: mark(fact(X)) >= active(fact(mark(X))) constraint: mark(p(X)) >= active(p(mark(X))) constraint: mark(add(X1,X2)) >= active(add(mark(X1),mark(X2))) constraint: mark(true) >= active(true) constraint: mark(false) >= active(false) constraint: if(mark(X1),X2,X3) >= if(X1,X2,X3) constraint: if(active(X1),X2,X3) >= if(X1,X2,X3) constraint: if(X1,mark(X2),X3) >= if(X1,X2,X3) constraint: if(X1,active(X2),X3) >= if(X1,X2,X3) constraint: if(X1,X2,mark(X3)) >= if(X1,X2,X3) constraint: if(X1,X2,active(X3)) >= if(X1,X2,X3) constraint: zero(mark(X)) >= zero(X) constraint: zero(active(X)) >= zero(X) constraint: s(mark(X)) >= s(X) constraint: s(active(X)) >= s(X) constraint: prod(mark(X1),X2) >= prod(X1,X2) constraint: prod(active(X1),X2) >= prod(X1,X2) constraint: prod(X1,mark(X2)) >= prod(X1,X2) constraint: prod(X1,active(X2)) >= prod(X1,X2) constraint: fact(mark(X)) >= fact(X) constraint: fact(active(X)) >= fact(X) constraint: p(mark(X)) >= p(X) constraint: p(active(X)) >= p(X) constraint: active(if(true,X,Y)) >= mark(X) constraint: active(if(false,X,Y)) >= mark(Y) constraint: active(zero(s(X))) >= mark(false) constraint: active(zero(0)) >= mark(true) constraint: active(prod(s(X),Y)) >= mark(add(Y,prod(X,Y))) constraint: active(prod(0,X)) >= mark(0) constraint: active(fact(X)) >= mark(if(zero(X),s(0),prod(X,fact(p(X))))) constraint: active(p(s(X))) >= mark(X) constraint: active(add(s(X),Y)) >= mark(s(add(X,Y))) constraint: active(add(0,X)) >= mark(X) constraint: add(mark(X1),X2) >= add(X1,X2) constraint: add(active(X1),X2) >= add(X1,X2) constraint: add(X1,mark(X2)) >= add(X1,X2) constraint: add(X1,active(X2)) >= add(X1,X2) constraint: Marked_mark(if(X1,X2,X3)) >= Marked_mark(X1) constraint: Marked_mark(if(X1,X2,X3)) >= Marked_active(if(mark(X1),X2,X3)) constraint: Marked_mark(zero(X)) >= Marked_mark(X) constraint: Marked_mark(zero(X)) >= Marked_active(zero(mark(X))) constraint: Marked_mark(s(X)) >= Marked_mark(X) constraint: Marked_mark(s(X)) >= Marked_active(s(mark(X))) constraint: Marked_mark(prod(X1,X2)) >= Marked_mark(X1) constraint: Marked_mark(prod(X1,X2)) >= Marked_mark(X2) constraint: Marked_mark(prod(X1,X2)) >= Marked_active(prod(mark(X1),mark(X2))) constraint: Marked_mark(fact(X)) >= Marked_mark(X) constraint: Marked_mark(fact(X)) >= Marked_active(fact(mark(X))) constraint: Marked_mark(p(X)) >= Marked_mark(X) constraint: Marked_mark(p(X)) >= Marked_active(p(mark(X))) constraint: Marked_mark(add(X1,X2)) >= Marked_mark(X1) constraint: Marked_mark(add(X1,X2)) >= Marked_mark(X2) constraint: Marked_mark(add(X1,X2)) >= Marked_active(add(mark(X1),mark(X2))) constraint: Marked_active(if(true,X,Y)) >= Marked_mark(X) constraint: Marked_active(if(false,X,Y)) >= Marked_mark(Y) constraint: Marked_active(prod(s(X),Y)) >= Marked_mark(add(Y,prod(X,Y))) constraint: Marked_active(fact(X)) >= Marked_mark(if(zero(X),s(0), prod(X,fact(p(X))))) constraint: Marked_active(p(s(X))) >= Marked_mark(X) constraint: Marked_active(add(s(X),Y)) >= Marked_mark(s(add(X,Y))) constraint: Marked_active(add(0,X)) >= Marked_mark(X) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { mark(if(X1,X2,X3)) >= active(if(mark(X1),X2,X3)) ; mark(zero(X)) >= active(zero(mark(X))) ; mark(s(X)) >= active(s(mark(X))) ; mark(0) >= active(0) ; mark(prod(X1,X2)) >= active(prod(mark(X1),mark(X2))) ; mark(fact(X)) >= active(fact(mark(X))) ; mark(p(X)) >= active(p(mark(X))) ; mark(add(X1,X2)) >= active(add(mark(X1),mark(X2))) ; mark(true) >= active(true) ; mark(false) >= active(false) ; if(mark(X1),X2,X3) >= if(X1,X2,X3) ; if(active(X1),X2,X3) >= if(X1,X2,X3) ; if(X1,mark(X2),X3) >= if(X1,X2,X3) ; if(X1,active(X2),X3) >= if(X1,X2,X3) ; if(X1,X2,mark(X3)) >= if(X1,X2,X3) ; if(X1,X2,active(X3)) >= if(X1,X2,X3) ; zero(mark(X)) >= zero(X) ; zero(active(X)) >= zero(X) ; s(mark(X)) >= s(X) ; s(active(X)) >= s(X) ; prod(mark(X1),X2) >= prod(X1,X2) ; prod(active(X1),X2) >= prod(X1,X2) ; prod(X1,mark(X2)) >= prod(X1,X2) ; prod(X1,active(X2)) >= prod(X1,X2) ; fact(mark(X)) >= fact(X) ; fact(active(X)) >= fact(X) ; p(mark(X)) >= p(X) ; p(active(X)) >= p(X) ; active(if(true,X,Y)) >= mark(X) ; active(if(false,X,Y)) >= mark(Y) ; active(zero(s(X))) >= mark(false) ; active(zero(0)) >= mark(true) ; active(prod(s(X),Y)) >= mark(add(Y,prod(X,Y))) ; active(prod(0,X)) >= mark(0) ; active(fact(X)) >= mark(if(zero(X),s(0),prod(X,fact(p(X))))) ; active(p(s(X))) >= mark(X) ; active(add(s(X),Y)) >= mark(s(add(X,Y))) ; active(add(0,X)) >= mark(X) ; add(mark(X1),X2) >= add(X1,X2) ; add(active(X1),X2) >= add(X1,X2) ; add(X1,mark(X2)) >= add(X1,X2) ; add(X1,active(X2)) >= add(X1,X2) ; Marked_fact(mark(X)) >= Marked_fact(X) ; Marked_fact(active(X)) >= Marked_fact(X) ; } + Disjunctions:{ { Marked_fact(mark(X)) > Marked_fact(X) ; } { Marked_fact(active(X)) > Marked_fact(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 === STOPING TIMER real === === STOPING TIMER virtual === No solution found for these parameters. Entering rpo_solver === TIMER virtual : 25.000000 === Search parameters: AFS type: 2 ; time limit: 25.. === STOPING TIMER virtual === === TIMER virtual : 25.000000 === Search parameters: AFS type: 2 ; time limit: 25.. === STOPING TIMER virtual === === TIMER virtual : 15.000000 === Entering poly_solver Starting Sat solver initialization Calling Sat solver... === STOPING TIMER virtual === === TIMER real : 15.000000 === === STOPING TIMER real === Sat solver returned === STOPING TIMER real === === STOPING TIMER virtual === No solution found for these parameters. === TIMER virtual : 50.000000 === trying sub matrices of size: 1 Matrix interpretation constraints generated. Search parameters: LINEAR MATRIX 3x3 (strict=1x1) ; time limit: 50.. Termination constraints generated. Starting Sat solver initialization Calling Sat solver... === STOPING TIMER virtual === === TIMER real : 50.000000 === === STOPING TIMER real === Sat solver returned === STOPING TIMER real === === STOPING TIMER virtual === No solution found for these parameters. No solution found for these constraints. APPLY CRITERIA (ID_CRIT) NOT SOLVED No proof found Cime worked for 39.616993 seconds (real time) Cime Exit Status: 0