YES Solver Timeout: 4 Global Timeout: 300 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.042351 Checking conditional termination of SCC {l2, l6}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.008832s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.065040s 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.036932s Time used: 0.030174 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.037595s Time used: 0.031423 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.041903s Time used: 0.035701 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.035744s Time used: 0.029445 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.044379s Time used: 0.038043 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.051320s Time used: 0.044897 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.037747s Time used: 0.031285 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.036287s Time used: 0.029705 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.042524s Time used: 0.035899 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.041514s Time used: 0.034729 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.040125s Time used: 0.033261 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.178859s Time used: 0.172955 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 1.001225s Time used: 1.00122 LOG: SAT solveNonLinear - Elapsed time: 1.180084s Cost: 1; Total time: 1.17417 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.018939s Remaining time after improvement: 0.985753 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.001208s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.001270s 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.006851s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.054033s 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.050171s Time used: 0.042138 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.042090s Time used: 0.032665 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.046078s Time used: 0.038443 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.045272s Time used: 0.037381 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.041227s Time used: 0.033455 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.051525s Time used: 0.043745 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.040996s Time used: 0.03324 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.042502s Time used: 0.03476 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.046574s Time used: 0.038852 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.043566s Time used: 0.035811 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.041208s Time used: 0.03344 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.007581s Time used: 4.00188 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 1.508432s Time used: 1.504 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 1.001412s Time used: 1.0014 LOG: SAT solveNonLinear - Elapsed time: 2.509844s Cost: 1; Total time: 2.5054 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.036256s Remaining time after improvement: 0.976679 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.001016s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.001082s 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.009131s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.140804s 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.057462s Time used: 0.055265 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.060340s Time used: 0.051642 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.057990s Time used: 0.04931 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.084053s Time used: 0.075381 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.066654s Time used: 0.057982 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.062692s Time used: 0.0539 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.068340s Time used: 0.05949 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.060170s Time used: 0.051355 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.068710s Time used: 0.060073 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.056730s Time used: 0.049133 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.054035s Time used: 0.046592 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.068250s Time used: 0.060739 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.054699s Time used: 0.047293 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.084075s Time used: 0.076688 LOG: SAT solveNonLinear - Elapsed time: 0.084075s Cost: 0; Total time: 0.076688 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.016902s 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.00478 Checking conditional termination of SCC {l9}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001921s Ranking function: (~(3) / 2) + (1 / 2)*arg1 New Graphs: Proving termination of subgraph 3 Checking unfeasibility... Time used: 0.004908 Checking conditional termination of SCC {l4}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002338s Ranking function: -2 + arg2 New Graphs: Program Terminates