YES Solver Timeout: 4 Global Timeout: 60 No parsing errors! Init Location: 0 Transitions: 0) /\ (arg2 > ~(1)), par{arg3 -> undef3, arg4 -> undef4}> 0) /\ (arg2 > ~(1)) /\ ((arg2 - (5 * undef9)) >= 0) /\ ((arg2 - (5 * undef9)) < 5) /\ ((arg2 - (4 * undef10)) >= 0) /\ ((arg2 - (4 * undef10)) < 4) /\ ((arg2 - (5 * undef11)) >= 0) /\ ((arg2 - (5 * undef11)) < 5) /\ ((arg2 - (4 * undef12)) < 4) /\ ((arg2 - (4 * undef12)) >= 0), par{arg1 -> arg2, arg2 -> (arg2 - (5 * undef9)), arg3 -> (arg2 - (4 * undef10)), arg4 -> ((arg2 + (arg2 - (5 * undef11))) + ((3 * arg2) - (12 * undef12)))}> ~(1)) /\ (arg2 < arg1), par{arg1 -> (arg1 - 1), arg4 -> (((arg1 - 1) + arg2) + (3 * arg3))}> ~(1)) /\ (arg2 >= arg1), par{arg1 -> (arg1 + 1), arg2 -> (arg2 - 2), arg4 -> (((arg1 + 1) + (arg2 - 2)) + (3 * arg3))}> ~(1)) /\ (arg3 >= arg2) /\ (arg2 >= arg1), par{arg1 -> (arg1 + 1), arg2 -> (arg2 + 1), arg3 -> (arg3 - 1), arg4 -> (((arg1 + 1) + (arg2 + 1)) + ((3 * arg3) - 3))}> undef25, arg2 -> undef26, arg3 -> undef27, arg4 -> undef28}> Fresh variables: undef3, undef4, undef9, undef10, undef11, undef12, undef25, undef26, undef27, undef28, Undef variables: undef3, undef4, undef9, undef10, undef11, undef12, undef25, undef26, undef27, undef28, Abstraction variables: Exit nodes: Accepting locations: Asserts: Preprocessed LLVMGraph Init Location: 0 Transitions: 0) /\ (undef26 > ~(1)) /\ (undef25 > 0) /\ (undef26 > ~(1)) /\ ((undef26 - (5 * undef9)) >= 0) /\ ((undef26 - (5 * undef9)) < 5) /\ ((undef26 - (4 * undef10)) >= 0) /\ ((undef26 - (4 * undef10)) < 4) /\ ((undef26 - (5 * undef11)) >= 0) /\ ((undef26 - (5 * undef11)) < 5) /\ ((undef26 - (4 * undef12)) < 4) /\ ((undef26 - (4 * undef12)) >= 0)> ~(1)) /\ (arg2 < arg1), par{arg1 -> (arg1 - 1), arg4 -> (((arg1 - 1) + arg2) + (3 * arg3))}> ~(1)) /\ (arg2 >= arg1), par{arg1 -> (arg1 + 1), arg2 -> (arg2 - 2), arg4 -> (((arg1 + 1) + (arg2 - 2)) + (3 * arg3))}> ~(1)) /\ (arg3 >= arg2) /\ (arg2 >= arg1), par{arg1 -> (arg1 + 1), arg2 -> (arg2 + 1), arg3 -> (arg3 - 1), arg4 -> (((arg1 + 1) + (arg2 + 1)) + ((3 * arg3) - 3))}> Fresh variables: undef3, undef4, undef9, undef10, undef11, undef12, undef25, undef26, undef27, undef28, Undef variables: undef3, undef4, undef9, undef10, undef11, undef12, undef25, undef26, undef27, undef28, Abstraction variables: Exit nodes: Accepting locations: Asserts: ************************************************************* ******************************************************************************************* *********************** WORKING TRANSITION SYSTEM (DAG) *********************** ******************************************************************************************* Init Location: 0 Graph 0: Transitions: Variables: Graph 1: Transitions: -1 + arg1, arg4 -> -1 + arg1 + arg2 + 3*arg3, rest remain the same}> 1 + arg1, arg2 -> -2 + arg2, arg4 -> -1 + arg1 + arg2 + 3*arg3, rest remain the same}> 1 + arg1, arg2 -> 1 + arg2, arg3 -> -1 + arg3, arg4 -> -1 + arg1 + arg2 + 3*arg3, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Precedence: Graph 0 Graph 1 Map Locations to Subgraph: ( 0 , 0 ) ( 3 , 1 ) ******************************************************************************************* ******************************** CHECKING ASSERTIONS ******************************** ******************************************************************************************* Proving termination of subgraph 0 Proving termination of subgraph 1 Checking unfeasibility... Time used: 0.044664 Checking conditional termination of SCC {l3}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002771s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.054243s Trying to remove transition: 1 + arg1, arg2 -> 1 + arg2, arg3 -> -1 + arg3, arg4 -> -1 + arg1 + arg2 + 3*arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.754050s Time used: 0.753398 Trying to remove transition: 1 + arg1, arg2 -> -2 + arg2, arg4 -> -1 + arg1 + arg2 + 3*arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.005748s Time used: 4.00073 Trying to remove transition: -1 + arg1, arg4 -> -1 + arg1 + arg2 + 3*arg3, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.154336s Time used: 0.144677 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.003927s Time used: 4.00036 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 1.377456s Time used: 1.36838 Improving Solution with cost 2 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 1.000866s Time used: 1.00087 LOG: SAT solveNonLinear - Elapsed time: 2.378321s Cost: 2; Total time: 2.36925 Failed at location 3: arg3 <= 0 Failed at location 3: arg4 <= arg1 + arg2 + arg3 Before Improving: Quasi-invariant at l3: arg3 <= 0 Quasi-invariant at l3: arg4 <= arg1 + arg2 + arg3 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.011364s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.005673s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.005233s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.006454s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.005715s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.008087s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.009216s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.012054s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.005332s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.010031s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.124355s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.009410s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.031375s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.007919s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.016224s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.007682s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.039959s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.007807s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.035458s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.005545s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.007669s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.117774s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.008108s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.046149s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.005624s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.007706s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.045881s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.005605s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.007708s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.045999s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.005593s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.007724s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.045916s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.005613s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.007697s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.046515s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.006339s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.007987s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.046174s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.005644s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.007760s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.046001s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.005656s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.007742s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.045994s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.005632s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.007740s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.045872s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.005612s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.003734s Remaining time after improvement: -0.000509 Termination implied by a set of quasi-invariant(s): Quasi-invariant at l3: arg3 <= 24 Quasi-invariant at l3: arg4 <= 48 + 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): -1 + arg1, arg4 -> -1 + arg1 + arg2 + 3*arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): 1 + arg1, arg2 -> -2 + arg2, arg4 -> -1 + arg1 + arg2 + 3*arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): 1 + arg1, arg2 -> 1 + arg2, arg3 -> -1 + arg3, arg4 -> -1 + arg1 + arg2 + 3*arg3, 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): -1 + arg1, arg4 -> -1 + arg1 + arg2 + 3*arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): 1 + arg1, arg2 -> -2 + arg2, arg4 -> -1 + arg1 + arg2 + 3*arg3, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): 1 + arg1, arg2 -> 1 + arg2, arg3 -> -1 + arg3, arg4 -> -1 + arg1 + arg2 + 3*arg3, rest remain the same}> Ranking function: 142 + arg1 + arg2 + 3*arg3 New Graphs: Transitions: -1 + arg1, arg4 -> -1 + arg1 + arg2 + 3*arg3, rest remain the same}> 1 + arg1, arg2 -> -2 + arg2, arg4 -> -1 + arg1 + arg2 + 3*arg3, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking conditional termination of SCC {l3}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002444s Ranking function: 48 + 2*arg2 + arg3 New Graphs: Transitions: -1 + arg1, arg4 -> -1 + arg1 + arg2 + 3*arg3, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking conditional termination of SCC {l3}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001406s Ranking function: -1 + arg1 - arg2 New Graphs: Calling Safety with literal arg3 <= 24 and entry LOG: CALL check - Post:arg3 <= 24 - Process 1 * Exit transition: * Postcondition : arg3 <= 24 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000479s > Postcondition implied! LOG: RETURN check - Elapsed time: 0.000690s Calling Safety with literal arg4 <= 48 + arg1 + arg2 + arg3 and entry LOG: CALL check - Post:arg4 <= 48 + arg1 + arg2 + arg3 - Process 2 * Exit transition: * Postcondition : arg4 <= 48 + arg1 + arg2 + arg3 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000525s > Postcondition implied! LOG: RETURN check - Elapsed time: 0.000765s INVARIANTS: 3: arg3 <= 24 , arg4 <= 48 + arg1 + arg2 + arg3 , Quasi-INVARIANTS to narrow Graph: 3: Program Terminates