YES Solver Timeout: 4 Global Timeout: 60 No parsing errors! Init Location: 0 Transitions: ~(1)) /\ (undef6 <= (200 * arg2)) /\ (undef7 <= arg1) /\ (arg1 > 0) /\ (undef7 > 0), par{arg3 -> undef3, arg4 -> undef4, arg5 -> undef5}> ~(1)) /\ (undef10 <= (200 * arg2)) /\ (undef8 <= arg1) /\ (arg1 > 0) /\ (undef8 > 0) /\ (((200 * arg2) - (13 * undef10)) < 13) /\ (((200 * arg2) - (13 * undef10)) >= 0), par{arg1 -> undef8, arg2 -> (100 * arg2), arg3 -> undef10, arg4 -> ((100 * arg2) + undef10), arg5 -> 0}> 0) /\ (undef18 > ~(1)) /\ (arg5 >= undef18) /\ (arg1 >= undef13) /\ (arg1 > 0) /\ (undef13 > 0), par{arg1 -> undef13, arg3 -> (arg3 - 1), arg4 -> (arg2 + (arg3 - 1))}> 0) /\ (undef24 > ~(1)) /\ (arg5 > ~(1)) /\ (arg5 < undef24) /\ (undef25 > ~(1)) /\ ((arg5 + 1) >= undef24) /\ (undef19 <= arg1) /\ (arg1 > 0) /\ (undef19 > 0), par{arg1 -> undef19, arg3 -> (arg3 - 1), arg4 -> (arg2 + (arg3 - 1)), arg5 -> (arg5 + 1)}> ~(1)) /\ ((arg5 + 1) < undef31) /\ (arg4 > 0) /\ (arg5 > ~(1)) /\ (undef32 > ~(1)) /\ ((undef32 * undef33) <= 9) /\ (undef33 > ~(1)) /\ (undef26 <= arg1) /\ (arg1 > 0) /\ (undef26 > 0), par{arg1 -> undef26, arg3 -> (arg3 - 1), arg4 -> (arg2 + (arg3 - 1)), arg5 -> (arg5 + 2)}> ~(1)) /\ ((arg5 + 1) < undef39) /\ (arg4 > 0) /\ (arg5 > ~(1)) /\ (undef40 > ~(1)) /\ ((undef40 * undef41) > 9) /\ (undef41 > ~(1)) /\ (undef34 <= arg1) /\ (arg1 > 0) /\ (undef34 > 0), par{arg1 -> undef34, arg2 -> (arg2 - 1), arg4 -> ((arg2 - 1) + arg3), arg5 -> (arg5 + 2)}> undef42, arg2 -> undef43, arg3 -> undef44, arg4 -> undef45, arg5 -> undef46}> Fresh variables: undef3, undef4, undef5, undef6, undef7, undef8, undef10, undef13, undef18, undef19, undef24, undef25, undef26, undef31, undef32, undef33, undef34, undef39, undef40, undef41, undef42, undef43, undef44, undef45, undef46, Undef variables: undef3, undef4, undef5, undef6, undef7, undef8, undef10, undef13, undef18, undef19, undef24, undef25, undef26, undef31, undef32, undef33, undef34, undef39, undef40, undef41, undef42, undef43, undef44, undef45, undef46, Abstraction variables: Exit nodes: Accepting locations: Asserts: Preprocessed LLVMGraph Init Location: 0 Transitions: ~(1)) /\ (undef6 <= (200 * undef43)) /\ (undef7 <= undef42) /\ (undef42 > 0) /\ (undef7 > 0) /\ (undef43 > ~(1)) /\ (undef10 <= (200 * undef43)) /\ (undef8 <= undef42) /\ (undef42 > 0) /\ (undef8 > 0) /\ (((200 * undef43) - (13 * undef10)) < 13) /\ (((200 * undef43) - (13 * undef10)) >= 0)> 0) /\ (undef18 > ~(1)) /\ (arg5 >= undef18) /\ (arg1 >= undef13) /\ (arg1 > 0) /\ (undef13 > 0), par{arg1 -> undef13, arg3 -> (arg3 - 1), arg4 -> (arg2 + (arg3 - 1))}> 0) /\ (undef24 > ~(1)) /\ (arg5 > ~(1)) /\ (arg5 < undef24) /\ (undef25 > ~(1)) /\ ((arg5 + 1) >= undef24) /\ (undef19 <= arg1) /\ (arg1 > 0) /\ (undef19 > 0), par{arg1 -> undef19, arg3 -> (arg3 - 1), arg4 -> (arg2 + (arg3 - 1)), arg5 -> (arg5 + 1)}> ~(1)) /\ ((arg5 + 1) < undef31) /\ (arg4 > 0) /\ (arg5 > ~(1)) /\ (undef32 > ~(1)) /\ (undef33 > ~(1)) /\ (undef26 <= arg1) /\ (arg1 > 0) /\ (undef26 > 0), par{arg1 -> undef26, arg3 -> (arg3 - 1), arg4 -> (arg2 + (arg3 - 1)), arg5 -> (arg5 + 2)}> ~(1)) /\ ((arg5 + 1) < undef39) /\ (arg4 > 0) /\ (arg5 > ~(1)) /\ (undef40 > ~(1)) /\ (undef41 > ~(1)) /\ (undef34 <= arg1) /\ (arg1 > 0) /\ (undef34 > 0), par{arg1 -> undef34, arg2 -> (arg2 - 1), arg4 -> ((arg2 - 1) + arg3), arg5 -> (arg5 + 2)}> Fresh variables: undef3, undef4, undef5, undef6, undef7, undef8, undef10, undef13, undef18, undef19, undef24, undef25, undef26, undef31, undef32, undef33, undef34, undef39, undef40, undef41, undef42, undef43, undef44, undef45, undef46, Undef variables: undef3, undef4, undef5, undef6, undef7, undef8, undef10, undef13, undef18, undef19, undef24, undef25, undef26, undef31, undef32, undef33, undef34, undef39, undef40, undef41, undef42, undef43, undef44, undef45, undef46, Abstraction variables: Exit nodes: Accepting locations: Asserts: ************************************************************* ******************************************************************************************* *********************** WORKING TRANSITION SYSTEM (DAG) *********************** ******************************************************************************************* Init Location: 0 Graph 0: Transitions: Variables: Graph 1: Transitions: undef13, arg3 -> -1 + arg3, arg4 -> -1 + arg2 + arg3, rest remain the same}> undef19, arg3 -> -1 + arg3, arg4 -> -1 + arg2 + arg3, arg5 -> 1 + arg5, rest remain the same}> undef26, arg3 -> -1 + arg3, arg4 -> -1 + arg2 + arg3, arg5 -> 2 + arg5, rest remain the same}> undef34, arg2 -> -1 + arg2, arg4 -> -1 + arg2 + arg3, arg5 -> 2 + arg5, rest remain the same}> Variables: arg1, arg2, arg3, arg4, arg5 Precedence: Graph 0 Graph 1 Map Locations to Subgraph: ( 0 , 0 ) ( 3 , 1 ) ******************************************************************************************* ******************************** CHECKING ASSERTIONS ******************************** ******************************************************************************************* Detected abstraction incompatible with non-termination check. Proving termination of subgraph 0 Proving termination of subgraph 1 Checking unfeasibility... Time used: 0.048421 Checking conditional termination of SCC {l3}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.005807s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.032176s Trying to remove transition: undef34, arg2 -> -1 + arg2, arg4 -> -1 + arg2 + arg3, arg5 -> 2 + arg5, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.062838s Time used: 0.060575 Trying to remove transition: undef26, arg3 -> -1 + arg3, arg4 -> -1 + arg2 + arg3, arg5 -> 2 + arg5, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.052862s Time used: 0.047435 Trying to remove transition: undef19, arg3 -> -1 + arg3, arg4 -> -1 + arg2 + arg3, arg5 -> 1 + arg5, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.045856s Time used: 0.040424 Trying to remove transition: undef13, arg3 -> -1 + arg3, arg4 -> -1 + arg2 + arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.050765s Time used: 0.045295 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.187429s Time used: 0.181995 LOG: SAT solveNonLinear - Elapsed time: 0.187429s Cost: 0; Total time: 0.181995 Termination implied by a set of invariant(s): Invariant at l3: 1 + arg4 <= arg1 + arg2 + arg3 [ Invariant Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef13, arg3 -> -1 + arg3, arg4 -> -1 + arg2 + arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef19, arg3 -> -1 + arg3, arg4 -> -1 + arg2 + arg3, arg5 -> 1 + arg5, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef26, arg3 -> -1 + arg3, arg4 -> -1 + arg2 + arg3, arg5 -> 2 + arg5, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef34, arg2 -> -1 + arg2, arg4 -> -1 + arg2 + arg3, arg5 -> 2 + arg5, 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): undef13, arg3 -> -1 + arg3, arg4 -> -1 + arg2 + arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef19, arg3 -> -1 + arg3, arg4 -> -1 + arg2 + arg3, arg5 -> 1 + arg5, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef26, arg3 -> -1 + arg3, arg4 -> -1 + arg2 + arg3, arg5 -> 2 + arg5, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef34, arg2 -> -1 + arg2, arg4 -> -1 + arg2 + arg3, arg5 -> 2 + arg5, rest remain the same}> Ranking function: arg1 + arg2 + arg3 New Graphs: INVARIANTS: 3: 1 + arg4 <= arg1 + arg2 + arg3 , Quasi-INVARIANTS to narrow Graph: 3: Program Terminates