- : unit = () - : unit = () h : heuristic = - : unit = () APPLY CRITERIA (Marked dependency pairs) TRS termination of: [1] active(and(tt,T)) -> mark(T) [2] active(isNatIList(IL)) -> mark(isNatList(IL)) [3] active(isNat(0)) -> mark(tt) [4] active(isNat(s(N))) -> mark(isNat(N)) [5] active(isNat(length(L))) -> mark(isNatList(L)) [6] active(isNatIList(zeros)) -> mark(tt) [7] active(isNatIList(cons(N,IL))) -> mark(and(isNat(N),isNatIList(IL))) [8] active(isNatList(nil)) -> mark(tt) [9] active(isNatList(cons(N,L))) -> mark(and(isNat(N),isNatList(L))) [10] active(isNatList(take(N,IL))) -> mark(and(isNat(N),isNatIList(IL))) [11] active(zeros) -> mark(cons(0,zeros)) [12] active(take(0,IL)) -> mark(uTake1(isNatIList(IL))) [13] active(uTake1(tt)) -> mark(nil) [14] active(take(s(M),cons(N,IL))) -> mark(uTake2(and(isNat(M),and(isNat(N),isNatIList(IL))),M,N,IL)) [15] active(uTake2(tt,M,N,IL)) -> mark(cons(N,take(M,IL))) [16] active(length(cons(N,L))) -> mark(uLength(and(isNat(N),isNatList(L)),L)) [17] active(uLength(tt,L)) -> mark(s(length(L))) [18] active(and(X1,X2)) -> and(active(X1),X2) [19] active(and(X1,X2)) -> and(X1,active(X2)) [20] active(s(X)) -> s(active(X)) [21] active(length(X)) -> length(active(X)) [22] active(cons(X1,X2)) -> cons(active(X1),X2) [23] active(take(X1,X2)) -> take(active(X1),X2) [24] active(take(X1,X2)) -> take(X1,active(X2)) [25] active(uTake1(X)) -> uTake1(active(X)) [26] active(uTake2(X1,X2,X3,X4)) -> uTake2(active(X1),X2,X3,X4) [27] active(uLength(X1,X2)) -> uLength(active(X1),X2) [28] and(mark(X1),X2) -> mark(and(X1,X2)) [29] and(X1,mark(X2)) -> mark(and(X1,X2)) [30] s(mark(X)) -> mark(s(X)) [31] length(mark(X)) -> mark(length(X)) [32] cons(mark(X1),X2) -> mark(cons(X1,X2)) [33] take(mark(X1),X2) -> mark(take(X1,X2)) [34] take(X1,mark(X2)) -> mark(take(X1,X2)) [35] uTake1(mark(X)) -> mark(uTake1(X)) [36] uTake2(mark(X1),X2,X3,X4) -> mark(uTake2(X1,X2,X3,X4)) [37] uLength(mark(X1),X2) -> mark(uLength(X1,X2)) [38] proper(and(X1,X2)) -> and(proper(X1),proper(X2)) [39] proper(tt) -> ok(tt) [40] proper(isNatIList(X)) -> isNatIList(proper(X)) [41] proper(isNatList(X)) -> isNatList(proper(X)) [42] proper(isNat(X)) -> isNat(proper(X)) [43] proper(0) -> ok(0) [44] proper(s(X)) -> s(proper(X)) [45] proper(length(X)) -> length(proper(X)) [46] proper(zeros) -> ok(zeros) [47] proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) [48] proper(nil) -> ok(nil) [49] proper(take(X1,X2)) -> take(proper(X1),proper(X2)) [50] proper(uTake1(X)) -> uTake1(proper(X)) [51] proper(uTake2(X1,X2,X3,X4)) -> uTake2(proper(X1),proper(X2),proper(X3),proper(X4)) [52] proper(uLength(X1,X2)) -> uLength(proper(X1),proper(X2)) [53] and(ok(X1),ok(X2)) -> ok(and(X1,X2)) [54] isNatIList(ok(X)) -> ok(isNatIList(X)) [55] isNatList(ok(X)) -> ok(isNatList(X)) [56] isNat(ok(X)) -> ok(isNat(X)) [57] s(ok(X)) -> ok(s(X)) [58] length(ok(X)) -> ok(length(X)) [59] cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) [60] take(ok(X1),ok(X2)) -> ok(take(X1,X2)) [61] uTake1(ok(X)) -> ok(uTake1(X)) [62] uTake2(ok(X1),ok(X2),ok(X3),ok(X4)) -> ok(uTake2(X1,X2,X3,X4)) [63] uLength(ok(X1),ok(X2)) -> ok(uLength(X1,X2)) [64] top(mark(X)) -> top(proper(X)) [65] top(ok(X)) -> top(active(X)) Sub problem: guided: DP termination of: END GUIDED APPLY CRITERIA (Graph splitting) Found 14 components: { --> --> --> --> } { --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> } { --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> --> } { --> } { --> } { --> } { --> --> --> --> --> --> --> --> --> } { --> --> --> --> } { --> --> --> --> } { --> --> --> --> } { --> --> --> --> --> --> --> --> --> } { --> --> --> --> } { --> --> --> --> } { --> --> --> --> } APPLY CRITERIA (Subterm criterion) APPLY CRITERIA (Choosing graph) Trying to solve the following constraints: { active(and(tt,T)) >= mark(T) ; active(and(X1,X2)) >= and(active(X1),X2) ; active(and(X1,X2)) >= and(X1,active(X2)) ; active(isNatList(cons(N,L))) >= mark(and(isNat(N),isNatList(L))) ; active(isNatList(nil)) >= mark(tt) ; active(isNatList(take(N,IL))) >= mark(and(isNat(N),isNatIList(IL))) ; active(isNatIList(zeros)) >= mark(tt) ; active(isNatIList(cons(N,IL))) >= mark(and(isNat(N),isNatIList(IL))) ; active(isNatIList(IL)) >= mark(isNatList(IL)) ; active(isNat(0)) >= mark(tt) ; active(isNat(s(N))) >= mark(isNat(N)) ; active(isNat(length(L))) >= mark(isNatList(L)) ; active(s(X)) >= s(active(X)) ; active(length(cons(N,L))) >= mark(uLength(and(isNat(N),isNatList(L)),L)) ; active(length(X)) >= length(active(X)) ; active(zeros) >= mark(cons(0,zeros)) ; active(cons(X1,X2)) >= cons(active(X1),X2) ; active(take(0,IL)) >= mark(uTake1(isNatIList(IL))) ; active(take(s(M),cons(N,IL))) >= mark(uTake2(and(isNat(M), and(isNat(N),isNatIList(IL))), M,N,IL)) ; active(take(X1,X2)) >= take(active(X1),X2) ; active(take(X1,X2)) >= take(X1,active(X2)) ; active(uTake1(tt)) >= mark(nil) ; active(uTake1(X)) >= uTake1(active(X)) ; active(uTake2(tt,M,N,IL)) >= mark(cons(N,take(M,IL))) ; active(uTake2(X1,X2,X3,X4)) >= uTake2(active(X1),X2,X3,X4) ; active(uLength(tt,L)) >= mark(s(length(L))) ; active(uLength(X1,X2)) >= uLength(active(X1),X2) ; and(mark(X1),X2) >= mark(and(X1,X2)) ; and(ok(X1),ok(X2)) >= ok(and(X1,X2)) ; and(X1,mark(X2)) >= mark(and(X1,X2)) ; isNatList(ok(X)) >= ok(isNatList(X)) ; isNatIList(ok(X)) >= ok(isNatIList(X)) ; isNat(ok(X)) >= ok(isNat(X)) ; s(mark(X)) >= mark(s(X)) ; s(ok(X)) >= ok(s(X)) ; length(mark(X)) >= mark(length(X)) ; length(ok(X)) >= ok(length(X)) ; cons(mark(X1),X2) >= mark(cons(X1,X2)) ; cons(ok(X1),ok(X2)) >= ok(cons(X1,X2)) ; take(mark(X1),X2) >= mark(take(X1,X2)) ; take(ok(X1),ok(X2)) >= ok(take(X1,X2)) ; take(X1,mark(X2)) >= mark(take(X1,X2)) ; uTake1(mark(X)) >= mark(uTake1(X)) ; uTake1(ok(X)) >= ok(uTake1(X)) ; uTake2(mark(X1),X2,X3,X4) >= mark(uTake2(X1,X2,X3,X4)) ; uTake2(ok(X1),ok(X2),ok(X3),ok(X4)) >= ok(uTake2(X1,X2,X3,X4)) ; uLength(mark(X1),X2) >= mark(uLength(X1,X2)) ; uLength(ok(X1),ok(X2)) >= ok(uLength(X1,X2)) ; proper(and(X1,X2)) >= and(proper(X1),proper(X2)) ; proper(tt) >= ok(tt) ; proper(isNatList(X)) >= isNatList(proper(X)) ; proper(isNatIList(X)) >= isNatIList(proper(X)) ; proper(isNat(X)) >= isNat(proper(X)) ; proper(0) >= ok(0) ; proper(s(X)) >= s(proper(X)) ; proper(length(X)) >= length(proper(X)) ; proper(zeros) >= ok(zeros) ; proper(cons(X1,X2)) >= cons(proper(X1),proper(X2)) ; proper(nil) >= ok(nil) ; proper(take(X1,X2)) >= take(proper(X1),proper(X2)) ; proper(uTake1(X)) >= uTake1(proper(X)) ; proper(uTake2(X1,X2,X3,X4)) >= uTake2(proper(X1),proper(X2),proper(X3), proper(X4)) ; proper(uLength(X1,X2)) >= uLength(proper(X1),proper(X2)) ; 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 === 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 timeout reached === STOPING TIMER virtual === No solution found for these parameters. No solution found for these constraints. APPLY CRITERIA (Simple graph) Found the following constraints: { active(and(tt,T)) >= mark(T) ; active(and(X1,X2)) >= and(active(X1),X2) ; active(and(X1,X2)) >= and(X1,active(X2)) ; active(isNatList(cons(N,L))) >= mark(and(isNat(N),isNatList(L))) ; active(isNatList(nil)) >= mark(tt) ; active(isNatList(take(N,IL))) >= mark(and(isNat(N),isNatIList(IL))) ; active(isNatIList(zeros)) >= mark(tt) ; active(isNatIList(cons(N,IL))) >= mark(and(isNat(N),isNatIList(IL))) ; active(isNatIList(IL)) >= mark(isNatList(IL)) ; active(isNat(0)) >= mark(tt) ; active(isNat(s(N))) >= mark(isNat(N)) ; active(isNat(length(L))) >= mark(isNatList(L)) ; active(s(X)) >= s(active(X)) ; active(length(cons(N,L))) >= mark(uLength(and(isNat(N),isNatList(L)),L)) ; active(length(X)) >= length(active(X)) ; active(zeros) >= mark(cons(0,zeros)) ; active(cons(X1,X2)) >= cons(active(X1),X2) ; active(take(0,IL)) >= mark(uTake1(isNatIList(IL))) ; active(take(s(M),cons(N,IL))) >= mark(uTake2(and(isNat(M), and(isNat(N),isNatIList(IL))), M,N,IL)) ; active(take(X1,X2)) >= take(active(X1),X2) ; active(take(X1,X2)) >= take(X1,active(X2)) ; active(uTake1(tt)) >= mark(nil) ; active(uTake1(X)) >= uTake1(active(X)) ; active(uTake2(tt,M,N,IL)) >= mark(cons(N,take(M,IL))) ; active(uTake2(X1,X2,X3,X4)) >= uTake2(active(X1),X2,X3,X4) ; active(uLength(tt,L)) >= mark(s(length(L))) ; active(uLength(X1,X2)) >= uLength(active(X1),X2) ; and(mark(X1),X2) >= mark(and(X1,X2)) ; and(ok(X1),ok(X2)) >= ok(and(X1,X2)) ; and(X1,mark(X2)) >= mark(and(X1,X2)) ; isNatList(ok(X)) >= ok(isNatList(X)) ; isNatIList(ok(X)) >= ok(isNatIList(X)) ; isNat(ok(X)) >= ok(isNat(X)) ; s(mark(X)) >= mark(s(X)) ; s(ok(X)) >= ok(s(X)) ; length(mark(X)) >= mark(length(X)) ; length(ok(X)) >= ok(length(X)) ; cons(mark(X1),X2) >= mark(cons(X1,X2)) ; cons(ok(X1),ok(X2)) >= ok(cons(X1,X2)) ; take(mark(X1),X2) >= mark(take(X1,X2)) ; take(ok(X1),ok(X2)) >= ok(take(X1,X2)) ; take(X1,mark(X2)) >= mark(take(X1,X2)) ; uTake1(mark(X)) >= mark(uTake1(X)) ; uTake1(ok(X)) >= ok(uTake1(X)) ; uTake2(mark(X1),X2,X3,X4) >= mark(uTake2(X1,X2,X3,X4)) ; uTake2(ok(X1),ok(X2),ok(X3),ok(X4)) >= ok(uTake2(X1,X2,X3,X4)) ; uLength(mark(X1),X2) >= mark(uLength(X1,X2)) ; uLength(ok(X1),ok(X2)) >= ok(uLength(X1,X2)) ; proper(and(X1,X2)) >= and(proper(X1),proper(X2)) ; proper(tt) >= ok(tt) ; proper(isNatList(X)) >= isNatList(proper(X)) ; proper(isNatIList(X)) >= isNatIList(proper(X)) ; proper(isNat(X)) >= isNat(proper(X)) ; proper(0) >= ok(0) ; proper(s(X)) >= s(proper(X)) ; proper(length(X)) >= length(proper(X)) ; proper(zeros) >= ok(zeros) ; proper(cons(X1,X2)) >= cons(proper(X1),proper(X2)) ; proper(nil) >= ok(nil) ; proper(take(X1,X2)) >= take(proper(X1),proper(X2)) ; proper(uTake1(X)) >= uTake1(proper(X)) ; proper(uTake2(X1,X2,X3,X4)) >= uTake2(proper(X1),proper(X2),proper(X3), proper(X4)) ; proper(uLength(X1,X2)) >= uLength(proper(X1),proper(X2)) ; 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)) ; } APPLY CRITERIA (SOLVE_ORD) Trying to solve the following constraints: { active(and(tt,T)) >= mark(T) ; active(and(X1,X2)) >= and(active(X1),X2) ; active(and(X1,X2)) >= and(X1,active(X2)) ; active(isNatList(cons(N,L))) >= mark(and(isNat(N),isNatList(L))) ; active(isNatList(nil)) >= mark(tt) ; active(isNatList(take(N,IL))) >= mark(and(isNat(N),isNatIList(IL))) ; active(isNatIList(zeros)) >= mark(tt) ; active(isNatIList(cons(N,IL))) >= mark(and(isNat(N),isNatIList(IL))) ; active(isNatIList(IL)) >= mark(isNatList(IL)) ; active(isNat(0)) >= mark(tt) ; active(isNat(s(N))) >= mark(isNat(N)) ; active(isNat(length(L))) >= mark(isNatList(L)) ; active(s(X)) >= s(active(X)) ; active(length(cons(N,L))) >= mark(uLength(and(isNat(N),isNatList(L)),L)) ; active(length(X)) >= length(active(X)) ; active(zeros) >= mark(cons(0,zeros)) ; active(cons(X1,X2)) >= cons(active(X1),X2) ; active(take(0,IL)) >= mark(uTake1(isNatIList(IL))) ; active(take(s(M),cons(N,IL))) >= mark(uTake2(and(isNat(M), and(isNat(N),isNatIList(IL))), M,N,IL)) ; active(take(X1,X2)) >= take(active(X1),X2) ; active(take(X1,X2)) >= take(X1,active(X2)) ; active(uTake1(tt)) >= mark(nil) ; active(uTake1(X)) >= uTake1(active(X)) ; active(uTake2(tt,M,N,IL)) >= mark(cons(N,take(M,IL))) ; active(uTake2(X1,X2,X3,X4)) >= uTake2(active(X1),X2,X3,X4) ; active(uLength(tt,L)) >= mark(s(length(L))) ; active(uLength(X1,X2)) >= uLength(active(X1),X2) ; and(mark(X1),X2) >= mark(and(X1,X2)) ; and(ok(X1),ok(X2)) >= ok(and(X1,X2)) ; and(X1,mark(X2)) >= mark(and(X1,X2)) ; isNatList(ok(X)) >= ok(isNatList(X)) ; isNatIList(ok(X)) >= ok(isNatIList(X)) ; isNat(ok(X)) >= ok(isNat(X)) ; s(mark(X)) >= mark(s(X)) ; s(ok(X)) >= ok(s(X)) ; length(mark(X)) >= mark(length(X)) ; length(ok(X)) >= ok(length(X)) ; cons(mark(X1),X2) >= mark(cons(X1,X2)) ; cons(ok(X1),ok(X2)) >= ok(cons(X1,X2)) ; take(mark(X1),X2) >= mark(take(X1,X2)) ; take(ok(X1),ok(X2)) >= ok(take(X1,X2)) ; take(X1,mark(X2)) >= mark(take(X1,X2)) ; uTake1(mark(X)) >= mark(uTake1(X)) ; uTake1(ok(X)) >= ok(uTake1(X)) ; uTake2(mark(X1),X2,X3,X4) >= mark(uTake2(X1,X2,X3,X4)) ; uTake2(ok(X1),ok(X2),ok(X3),ok(X4)) >= ok(uTake2(X1,X2,X3,X4)) ; uLength(mark(X1),X2) >= mark(uLength(X1,X2)) ; uLength(ok(X1),ok(X2)) >= ok(uLength(X1,X2)) ; proper(and(X1,X2)) >= and(proper(X1),proper(X2)) ; proper(tt) >= ok(tt) ; proper(isNatList(X)) >= isNatList(proper(X)) ; proper(isNatIList(X)) >= isNatIList(proper(X)) ; proper(isNat(X)) >= isNat(proper(X)) ; proper(0) >= ok(0) ; proper(s(X)) >= s(proper(X)) ; proper(length(X)) >= length(proper(X)) ; proper(zeros) >= ok(zeros) ; proper(cons(X1,X2)) >= cons(proper(X1),proper(X2)) ; proper(nil) >= ok(nil) ; proper(take(X1,X2)) >= take(proper(X1),proper(X2)) ; proper(uTake1(X)) >= uTake1(proper(X)) ; proper(uTake2(X1,X2,X3,X4)) >= uTake2(proper(X1),proper(X2),proper(X3), proper(X4)) ; proper(uLength(X1,X2)) >= uLength(proper(X1),proper(X2)) ; 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:{ } === 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 === No solution found for these parameters.(20842 bt (30577) [818]) === 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 timeout reached === 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 138.680502 seconds (real time) Cime Exit Status: 0