YES Solver Timeout: 4 Global Timeout: 60 No parsing errors! Init Location: 0 Transitions: ~(1)) /\ (arg1 > 0) /\ (undef1 > 0), par{arg1 -> undef1, arg2 -> 0, arg3 -> arg2, arg4 -> undef4}> arg2) /\ (arg3 > 0) /\ (undef9 > ~(1)) /\ (undef5 <= arg1) /\ (arg1 > 0) /\ (undef5 > 0), par{arg1 -> undef5, arg3 -> undef7, arg4 -> arg3}> arg2) /\ (arg3 > 0) /\ (undef11 > ~(1)) /\ (arg1 > 0), par{arg1 -> arg3, arg2 -> undef11, arg3 -> undef12, arg4 -> undef13}> arg2) /\ (arg3 > 0) /\ (undef14 <= arg1) /\ (arg1 > 0) /\ (undef14 > 0), par{arg1 -> undef14, arg3 -> 1, arg4 -> arg3}> arg2) /\ (arg3 > 0) /\ (undef22 > ~(1)) /\ (undef18 <= arg1) /\ (arg1 > 0) /\ (undef18 > 0), par{arg1 -> undef18, arg4 -> arg3}> 0) /\ (arg3 > 0) /\ (undef23 <= arg1) /\ (arg1 > 0) /\ (undef23 > 0), par{arg1 -> undef23, arg3 -> arg4, arg4 -> undef26}> 0) /\ (undef28 > ~(1)) /\ (arg2 < arg3) /\ (arg1 > 0), par{arg1 -> arg3, arg2 -> undef28, arg3 -> undef29, arg4 -> undef30}> 0) /\ (undef35 > ~(1)) /\ (arg2 < arg3) /\ (undef31 <= arg1) /\ (arg1 > 0) /\ (undef31 > 0), par{arg1 -> undef31, arg3 -> undef33, arg4 -> arg3}> 0) /\ (undef36 <= arg1) /\ (arg1 > 0) /\ (undef36 > 0), par{arg1 -> undef36, arg3 -> 1, arg4 -> arg3}> 0) /\ (undef44 > ~(1)) /\ (arg2 < arg3) /\ (undef40 <= arg1) /\ (arg1 > 0) /\ (undef40 > 0), par{arg1 -> undef40, arg4 -> arg3}> 0) /\ (arg1 > 0) /\ (undef45 > 0) /\ (1 = arg3), par{arg1 -> undef45, arg2 -> (arg2 + 1), arg3 -> arg4, arg4 -> undef48}> 0) /\ (arg4 > 0) /\ (undef49 <= arg1) /\ (arg1 > 0) /\ (undef49 > 0), par{arg1 -> undef49, arg2 -> (arg2 + 1), arg3 -> arg4, arg4 -> undef52}> 0) /\ (arg2 > 1) /\ ((arg1 * arg1) >= 1) /\ (undef57 > 0) /\ (arg2 > undef57), par{arg3 -> undef55, arg4 -> undef56}> 0) /\ (arg2 > 1) /\ ((arg1 * arg1) >= 1) /\ (arg2 > undef59) /\ (undef59 > 0) /\ ((arg2 - (2 * undef59)) < 2) /\ ((arg2 - (2 * undef59)) >= 0), par{arg1 -> (arg1 * arg1), arg2 -> undef59, arg3 -> undef60, arg4 -> undef61}> 0) /\ (arg4 > 0) /\ (arg1 > 0), par{arg1 -> arg3, arg2 -> undef63, arg3 -> undef64, arg4 -> undef65}> 0) /\ (arg4 > 0) /\ (arg1 > 0), par{arg1 -> arg3, arg2 -> undef67, arg3 -> undef68, arg4 -> undef69}> 1) /\ ((arg1 - 1) < arg1), par{arg1 -> (arg1 - 1), arg2 -> undef71, arg3 -> undef72, arg4 -> undef73}> 1) /\ ((arg1 - 1) < arg1), par{arg1 -> (arg1 - 1), arg2 -> undef75, arg3 -> undef76, arg4 -> undef77}> undef78, arg2 -> undef79, arg3 -> undef80, arg4 -> undef81}> Fresh variables: undef1, undef4, undef5, undef7, undef9, undef11, undef12, undef13, undef14, undef18, undef22, undef23, undef26, undef28, undef29, undef30, undef31, undef33, undef35, undef36, undef40, undef44, undef45, undef48, undef49, undef52, undef55, undef56, undef57, undef59, undef60, undef61, undef63, undef64, undef65, undef67, undef68, undef69, undef71, undef72, undef73, undef75, undef76, undef77, undef78, undef79, undef80, undef81, Undef variables: undef1, undef4, undef5, undef7, undef9, undef11, undef12, undef13, undef14, undef18, undef22, undef23, undef26, undef28, undef29, undef30, undef31, undef33, undef35, undef36, undef40, undef44, undef45, undef48, undef49, undef52, undef55, undef56, undef57, undef59, undef60, undef61, undef63, undef64, undef65, undef67, undef68, undef69, undef71, undef72, undef73, undef75, undef76, undef77, undef78, undef79, undef80, undef81, Abstraction variables: Exit nodes: Accepting locations: Asserts: Preprocessed LLVMGraph Init Location: 0 Transitions: ~(1)) /\ (undef78 > 0) /\ (undef1 > 0)> arg2) /\ (arg3 > 0) /\ (undef9 > ~(1)) /\ (undef5 <= arg1) /\ (arg1 > 0) /\ (undef5 > 0) /\ (arg3 > 0) /\ (undef7 > 0) /\ (undef23 <= undef5) /\ (undef5 > 0) /\ (undef23 > 0) /\ (arg3 > 0) /\ (undef28 > ~(1)) /\ (arg2 < arg3) /\ (undef23 > 0), par{arg1 -> arg3, arg2 -> undef28, arg3 -> undef29, arg4 -> undef30}> arg2) /\ (arg3 > 0) /\ (undef9 > ~(1)) /\ (undef5 <= arg1) /\ (arg1 > 0) /\ (undef5 > 0) /\ (arg3 > 0) /\ (undef7 > 0) /\ (undef23 <= undef5) /\ (undef5 > 0) /\ (undef23 > 0) /\ (arg3 > 0) /\ (undef35 > ~(1)) /\ (arg2 < arg3) /\ (undef31 <= undef23) /\ (undef23 > 0) /\ (undef31 > 0), par{arg1 -> undef31, arg3 -> undef33, arg4 -> arg3}> arg2) /\ (arg3 > 0) /\ (undef9 > ~(1)) /\ (undef5 <= arg1) /\ (arg1 > 0) /\ (undef5 > 0) /\ (arg3 > 0) /\ (undef7 > 0) /\ (undef23 <= undef5) /\ (undef5 > 0) /\ (undef23 > 0) /\ (arg2 < arg3) /\ (arg3 > 0) /\ (undef36 <= undef23) /\ (undef23 > 0) /\ (undef36 > 0), par{arg1 -> undef36, arg3 -> 1, arg4 -> arg3}> arg2) /\ (arg3 > 0) /\ (undef9 > ~(1)) /\ (undef5 <= arg1) /\ (arg1 > 0) /\ (undef5 > 0) /\ (arg3 > 0) /\ (undef7 > 0) /\ (undef23 <= undef5) /\ (undef5 > 0) /\ (undef23 > 0) /\ (arg3 > 0) /\ (undef44 > ~(1)) /\ (arg2 < arg3) /\ (undef40 <= undef23) /\ (undef23 > 0) /\ (undef40 > 0), par{arg1 -> undef40, arg3 -> arg3, arg4 -> arg3}> arg2) /\ (arg3 > 0) /\ (undef9 > ~(1)) /\ (undef5 <= arg1) /\ (arg1 > 0) /\ (undef5 > 0) /\ (undef7 > 0) /\ (arg3 > 0) /\ (undef5 > 0) /\ (undef7 > 1) /\ ((undef7 - 1) < undef7), par{arg1 -> (undef7 - 1), arg2 -> undef71, arg3 -> undef72, arg4 -> undef73}> arg2) /\ (arg3 > 0) /\ (undef11 > ~(1)) /\ (arg1 > 0), par{arg1 -> arg3, arg2 -> undef11, arg3 -> undef12, arg4 -> undef13}> arg2) /\ (arg3 > 0) /\ (undef14 <= arg1) /\ (arg1 > 0) /\ (undef14 > 0) /\ (arg3 > 0) /\ (1 > 0) /\ (undef23 <= undef14) /\ (undef14 > 0) /\ (undef23 > 0) /\ (arg3 > 0) /\ (undef28 > ~(1)) /\ (arg2 < arg3) /\ (undef23 > 0), par{arg1 -> arg3, arg2 -> undef28, arg3 -> undef29, arg4 -> undef30}> arg2) /\ (arg3 > 0) /\ (undef14 <= arg1) /\ (arg1 > 0) /\ (undef14 > 0) /\ (arg3 > 0) /\ (1 > 0) /\ (undef23 <= undef14) /\ (undef14 > 0) /\ (undef23 > 0) /\ (arg3 > 0) /\ (undef35 > ~(1)) /\ (arg2 < arg3) /\ (undef31 <= undef23) /\ (undef23 > 0) /\ (undef31 > 0), par{arg1 -> undef31, arg3 -> undef33, arg4 -> arg3}> arg2) /\ (arg3 > 0) /\ (undef14 <= arg1) /\ (arg1 > 0) /\ (undef14 > 0) /\ (arg3 > 0) /\ (1 > 0) /\ (undef23 <= undef14) /\ (undef14 > 0) /\ (undef23 > 0) /\ (arg2 < arg3) /\ (arg3 > 0) /\ (undef36 <= undef23) /\ (undef23 > 0) /\ (undef36 > 0), par{arg1 -> undef36, arg3 -> 1, arg4 -> arg3}> arg2) /\ (arg3 > 0) /\ (undef14 <= arg1) /\ (arg1 > 0) /\ (undef14 > 0) /\ (arg3 > 0) /\ (1 > 0) /\ (undef23 <= undef14) /\ (undef14 > 0) /\ (undef23 > 0) /\ (arg3 > 0) /\ (undef44 > ~(1)) /\ (arg2 < arg3) /\ (undef40 <= undef23) /\ (undef23 > 0) /\ (undef40 > 0), par{arg1 -> undef40, arg3 -> arg3, arg4 -> arg3}> arg2) /\ (arg3 > 0) /\ (undef22 > ~(1)) /\ (undef18 <= arg1) /\ (arg1 > 0) /\ (undef18 > 0) /\ (arg3 > 0) /\ (arg3 > 0) /\ (undef23 <= undef18) /\ (undef18 > 0) /\ (undef23 > 0) /\ (arg3 > 0) /\ (undef28 > ~(1)) /\ (arg2 < arg3) /\ (undef23 > 0), par{arg1 -> arg3, arg2 -> undef28, arg3 -> undef29, arg4 -> undef30}> arg2) /\ (arg3 > 0) /\ (undef22 > ~(1)) /\ (undef18 <= arg1) /\ (arg1 > 0) /\ (undef18 > 0) /\ (arg3 > 0) /\ (arg3 > 0) /\ (undef23 <= undef18) /\ (undef18 > 0) /\ (undef23 > 0) /\ (arg3 > 0) /\ (undef35 > ~(1)) /\ (arg2 < arg3) /\ (undef31 <= undef23) /\ (undef23 > 0) /\ (undef31 > 0), par{arg1 -> undef31, arg3 -> undef33, arg4 -> arg3}> arg2) /\ (arg3 > 0) /\ (undef22 > ~(1)) /\ (undef18 <= arg1) /\ (arg1 > 0) /\ (undef18 > 0) /\ (arg3 > 0) /\ (arg3 > 0) /\ (undef23 <= undef18) /\ (undef18 > 0) /\ (undef23 > 0) /\ (arg2 < arg3) /\ (arg3 > 0) /\ (undef36 <= undef23) /\ (undef23 > 0) /\ (undef36 > 0), par{arg1 -> undef36, arg3 -> 1, arg4 -> arg3}> arg2) /\ (arg3 > 0) /\ (undef22 > ~(1)) /\ (undef18 <= arg1) /\ (arg1 > 0) /\ (undef18 > 0) /\ (arg3 > 0) /\ (arg3 > 0) /\ (undef23 <= undef18) /\ (undef18 > 0) /\ (undef23 > 0) /\ (arg3 > 0) /\ (undef44 > ~(1)) /\ (arg2 < arg3) /\ (undef40 <= undef23) /\ (undef23 > 0) /\ (undef40 > 0), par{arg1 -> undef40, arg3 -> arg3, arg4 -> arg3}> arg2) /\ (arg3 > 0) /\ (undef22 > ~(1)) /\ (undef18 <= arg1) /\ (arg1 > 0) /\ (undef18 > 0) /\ (arg3 > 0) /\ (arg3 > 0) /\ (undef18 > 0) /\ (arg3 > 1) /\ ((arg3 - 1) < arg3), par{arg1 -> (arg3 - 1), arg2 -> undef71, arg3 -> undef72, arg4 -> undef73}> 0) /\ (arg2 > 1) /\ (undef57 > 0) /\ (arg2 > undef57) /\ (arg1 > 0) /\ (arg2 > 1) /\ (arg2 > undef59) /\ (undef59 > 0) /\ ((arg2 - (2 * undef59)) < 2) /\ ((arg2 - (2 * undef59)) >= 0), par{arg1 -> abstract_82, arg2 -> undef59, arg3 -> undef60, arg4 -> undef61}> 0) /\ (arg1 > 0) /\ (undef45 > 0) /\ (1 = arg3), par{arg1 -> undef45, arg2 -> (arg2 + 1), arg3 -> arg4, arg4 -> undef48}> 0) /\ (arg4 > 0) /\ (undef49 <= arg1) /\ (arg1 > 0) /\ (undef49 > 0), par{arg1 -> undef49, arg2 -> (arg2 + 1), arg3 -> arg4, arg4 -> undef52}> 0) /\ (arg4 > 0) /\ (arg1 > 0), par{arg1 -> arg3, arg2 -> undef67, arg3 -> undef68, arg4 -> undef69}> 1) /\ ((arg1 - 1) < arg1) /\ ((arg1 - 1) > 1) /\ (((arg1 - 1) - 1) < (arg1 - 1)), par{arg1 -> ((arg1 - 1) - 1), arg2 -> undef71, arg3 -> undef72, arg4 -> undef73}> Fresh variables: undef1, undef4, undef5, undef7, undef9, undef11, undef12, undef13, undef14, undef18, undef22, undef23, undef26, undef28, undef29, undef30, undef31, undef33, undef35, undef36, undef40, undef44, undef45, undef48, undef49, undef52, undef55, undef56, undef57, undef59, undef60, undef61, undef63, undef64, undef65, undef67, undef68, undef69, undef71, undef72, undef73, undef75, undef76, undef77, undef78, undef79, undef80, undef81, abstract_82, Undef variables: undef1, undef4, undef5, undef7, undef9, undef11, undef12, undef13, undef14, undef18, undef22, undef23, undef26, undef28, undef29, undef30, undef31, undef33, undef35, undef36, undef40, undef44, undef45, undef48, undef49, undef52, undef55, undef56, undef57, undef59, undef60, undef61, undef63, undef64, undef65, undef67, undef68, undef69, undef71, undef72, undef73, undef75, undef76, undef77, undef78, undef79, undef80, undef81, Abstraction variables: abstract_82 --> ( * arg1 arg1 ) Exit nodes: Accepting locations: Asserts: ************************************************************* ******************************************************************************************* *********************** WORKING TRANSITION SYSTEM (DAG) *********************** ******************************************************************************************* Init Location: 0 Graph 0: Transitions: Variables: Graph 1: Transitions: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> undef40, arg4 -> arg3, rest remain the same}> undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> undef40, arg4 -> arg3, rest remain the same}> undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> undef40, arg4 -> arg3, rest remain the same}> undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Graph 2: Transitions: -2 + arg1, arg2 -> undef71, arg3 -> undef72, arg4 -> undef73, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Graph 3: Transitions: abstract_82, arg2 -> undef59, arg3 -> undef60, arg4 -> undef61, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Precedence: Graph 0 Graph 1 Graph 2 -1 + undef7, arg2 -> undef71, arg3 -> undef72, arg4 -> undef73, rest remain the same}> -1 + arg3, arg2 -> undef71, arg3 -> undef72, arg4 -> undef73, rest remain the same}> arg3, arg2 -> undef67, arg3 -> undef68, arg4 -> undef69, rest remain the same}> Graph 3 arg3, arg2 -> undef28, arg3 -> undef29, arg4 -> undef30, rest remain the same}> arg3, arg2 -> undef11, arg3 -> undef12, arg4 -> undef13, rest remain the same}> arg3, arg2 -> undef28, arg3 -> undef29, arg4 -> undef30, rest remain the same}> arg3, arg2 -> undef28, arg3 -> undef29, arg4 -> undef30, rest remain the same}> Map Locations to Subgraph: ( 0 , 0 ) ( 2 , 1 ) ( 4 , 3 ) ( 6 , 1 ) ( 9 , 2 ) ******************************************************************************************* ******************************** CHECKING ASSERTIONS ******************************** ******************************************************************************************* Detected abstraction incompatible with non-termination check. Proving termination of subgraph 0 Proving termination of subgraph 1 Checking unfeasibility... Time used: 0.099801 Checking conditional termination of SCC {l2, l6}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.019751s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.157323s Trying to remove transition: undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.078459s Time used: 0.065111 Trying to remove transition: undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.080070s Time used: 0.068114 Trying to remove transition: undef40, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.090218s Time used: 0.078349 Trying to remove transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.074623s Time used: 0.06248 Trying to remove transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.095878s Time used: 0.083706 Trying to remove transition: undef40, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.113806s Time used: 0.101526 Trying to remove transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.079324s Time used: 0.066928 Trying to remove transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.075548s Time used: 0.063059 Trying to remove transition: undef40, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.090384s Time used: 0.077687 Trying to remove transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.087482s Time used: 0.074752 Trying to remove transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.084511s Time used: 0.071615 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.412012s Time used: 0.400114 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 1.002723s Time used: 1.00276 LOG: SAT solveNonLinear - Elapsed time: 1.414734s Cost: 1; Total time: 1.40287 Failed at location 2: arg3 <= 0 Before Improving: Quasi-invariant at l2: arg3 <= 0 Quasi-invariant at l6: 1 <= 0 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.043628s Remaining time after improvement: 0.966508 Termination implied by a set of quasi-invariant(s): Quasi-invariant at l2: arg3 <= 0 Quasi-invariant at l6: 1 <= 0 [ Invariant Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> [ Termination Graph ] Strengthening and disabling transitions... > It's unfeasible. Removing transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> New Graphs: Calling Safety with literal arg3 <= 0 and entry LOG: CALL check - Post:arg3 <= 0 - Process 1 * Exit transition: * Postcondition : arg3 <= 0 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.003435s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.003590s INVARIANTS: 2: 6: Quasi-INVARIANTS to narrow Graph: 2: arg3 <= 0 , 6: 1 <= 0 , Narrowing transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef40, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef40, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef40, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> LOG: Narrow transition size 1 invGraph after Narrowing: Transitions: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> undef40, arg4 -> arg3, rest remain the same}> undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> undef40, arg4 -> arg3, rest remain the same}> undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> undef40, arg4 -> arg3, rest remain the same}> undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking conditional termination of SCC {l2, l6}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.015621s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.141742s Trying to remove transition: undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.085187s Time used: 0.070099 Trying to remove transition: undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.084377s Time used: 0.070573 Trying to remove transition: undef40, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.095222s Time used: 0.081295 Trying to remove transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.091022s Time used: 0.076946 Trying to remove transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.084090s Time used: 0.070141 Trying to remove transition: undef40, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.109145s Time used: 0.095136 Trying to remove transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.083549s Time used: 0.069544 Trying to remove transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.088865s Time used: 0.074871 Trying to remove transition: undef40, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.098465s Time used: 0.084403 Trying to remove transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.090608s Time used: 0.076475 Trying to remove transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.084976s Time used: 0.070865 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.013860s Time used: 4.00285 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 3.284498s Time used: 3.27651 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 0.726467s Time used: 0.726509 LOG: SAT solveNonLinear - Elapsed time: 4.010965s Cost: 1; Total time: 4.00302 Failed at location 2: arg3 <= 1 Before Improving: Quasi-invariant at l2: 1 <= arg3 Quasi-invariant at l2: arg3 <= 1 Quasi-invariant at l6: arg2 <= 1 + arg4 Quasi-invariant at l6: arg4 <= 1 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.070981s Remaining time after improvement: 0.948542 Termination implied by a set of quasi-invariant(s): Quasi-invariant at l2: 1 <= arg3 Quasi-invariant at l2: arg3 <= 1 Quasi-invariant at l6: arg2 <= 1 + arg4 Quasi-invariant at l6: arg4 <= 1 [ Invariant Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> [ Termination Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> Ranking function: -1 + 3*arg1 - arg2 New Graphs: Calling Safety with literal arg3 <= 1 and entry LOG: CALL check - Post:arg3 <= 1 - Process 2 * Exit transition: * Postcondition : arg3 <= 1 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002260s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.002415s INVARIANTS: 2: 1 <= arg3 , 6: Quasi-INVARIANTS to narrow Graph: 2: arg3 <= 1 , 6: arg2 <= 1 + arg4 , arg4 <= 1 , Narrowing transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef40, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef40, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef40, arg4 -> arg3, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> LOG: Narrow transition size 2 Narrowing transition: undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> LOG: Narrow transition size 2 invGraph after Narrowing: Transitions: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> undef40, arg4 -> arg3, rest remain the same}> undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> undef40, arg4 -> arg3, rest remain the same}> undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> undef40, arg4 -> arg3, rest remain the same}> undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking conditional termination of SCC {l2, l6}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.020718s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.308729s Trying to remove transition: undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.119903s Time used: 0.115641 Trying to remove transition: undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.132833s Time used: 0.114647 Trying to remove transition: undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.125492s Time used: 0.107338 Trying to remove transition: undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.190169s Time used: 0.172134 Trying to remove transition: undef40, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.146243s Time used: 0.128156 Trying to remove transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.136853s Time used: 0.118579 Trying to remove transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.150338s Time used: 0.132295 Trying to remove transition: undef40, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.131811s Time used: 0.113737 Trying to remove transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.152579s Time used: 0.134658 Trying to remove transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.118807s Time used: 0.103744 Trying to remove transition: undef40, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.110366s Time used: 0.095371 Trying to remove transition: undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.149186s Time used: 0.134101 Trying to remove transition: undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.116951s Time used: 0.102032 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.180825s Time used: 0.166039 LOG: SAT solveNonLinear - Elapsed time: 0.180825s Cost: 0; Total time: 0.166039 Termination implied by a set of invariant(s): Invariant at l2: arg2 <= arg3 Invariant at l6: 1 + arg2 <= arg4 [ Invariant Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> [ Termination Graph ] Strengthening and disabling transitions... > It's unfeasible. Removing transition: undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef31, arg3 -> undef33, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef36, arg3 -> 1, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef40, arg4 -> arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef45, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef48, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef49, arg2 -> 1 + arg2, arg3 -> arg4, arg4 -> undef52, rest remain the same}> It's unfeasible after collapsing. Removing transition: undef45, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef48, rest remain the same}> It's unfeasible after collapsing. Removing transition: undef45, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef48, rest remain the same}> It's unfeasible after collapsing. Removing transition: undef45, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef48, rest remain the same}> New Graphs: Transitions: undef45, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef48, rest remain the same}> undef49, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef52, rest remain the same}> undef45, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef48, rest remain the same}> undef49, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef52, rest remain the same}> undef49, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef52, rest remain the same}> undef45, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef48, rest remain the same}> undef49, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef52, rest remain the same}> undef45, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef48, rest remain the same}> undef49, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef52, rest remain the same}> undef49, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef52, rest remain the same}> undef45, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef48, rest remain the same}> undef49, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef52, rest remain the same}> undef45, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef48, rest remain the same}> undef49, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef52, rest remain the same}> undef49, arg2 -> 1 + arg2, arg3 -> arg3, arg4 -> undef52, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking conditional termination of SCC {l2}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.036657s Ranking function: -1 - arg2 + arg3 New Graphs: INVARIANTS: 2: arg2 <= arg3 , 6: 1 + arg2 <= arg4 , Quasi-INVARIANTS to narrow Graph: 2: 6: Proving termination of subgraph 2 Checking unfeasibility... Time used: 0.009779 Checking conditional termination of SCC {l9}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.003905s Ranking function: (~(3) / 2) + (1 / 2)*arg1 New Graphs: Proving termination of subgraph 3 Checking unfeasibility... Time used: 0.009907 Checking conditional termination of SCC {l4}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.004653s Ranking function: -2 + arg2 New Graphs: Program Terminates