YES Solver Timeout: 4 Global Timeout: 60 No parsing errors! Init Location: 0 Transitions: ~(1)) /\ (arg2 > 1) /\ (undef4 > ~(1)) /\ (arg1 > 0), par{arg1 -> (0 - undef4), arg2 -> (0 - undef3)}> (arg1 + 1), arg2 -> (arg2 + arg1)}> undef7, arg2 -> undef8}> Fresh variables: undef3, undef4, undef7, undef8, Undef variables: undef3, undef4, undef7, undef8, Abstraction variables: Exit nodes: Accepting locations: Asserts: Preprocessed LLVMGraph Init Location: 0 Transitions: ~(1)) /\ (undef8 > 1) /\ (undef4 > ~(1)) /\ (undef7 > 0)> (arg1 + 1), arg2 -> (arg2 + arg1)}> Fresh variables: undef3, undef4, undef7, undef8, Undef variables: undef3, undef4, undef7, undef8, Abstraction variables: Exit nodes: Accepting locations: Asserts: ************************************************************* ******************************************************************************************* *********************** WORKING TRANSITION SYSTEM (DAG) *********************** ******************************************************************************************* Init Location: 0 Graph 0: Transitions: Variables: Graph 1: Transitions: 1 + arg1, arg2 -> arg1 + arg2, rest remain the same}> Variables: arg1, arg2 Precedence: Graph 0 Graph 1 Map Locations to Subgraph: ( 0 , 0 ) ( 2 , 1 ) ******************************************************************************************* ******************************** CHECKING ASSERTIONS ******************************** ******************************************************************************************* Proving termination of subgraph 0 Proving termination of subgraph 1 Checking unfeasibility... Time used: 0.002351 Checking conditional termination of SCC {l2}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000591s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001709s Trying to remove transition: 1 + arg1, arg2 -> arg1 + arg2, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.006548s Time used: 0.006391 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.007877s Time used: 0.007508 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 1.000425s Time used: 1.00031 LOG: SAT solveNonLinear - Elapsed time: 1.008302s Cost: 1; Total time: 1.00782 Failed at location 2: arg1 <= arg2 Before Improving: Quasi-invariant at l2: arg1 <= arg2 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.004973s Remaining time after improvement: 0.998903 Termination implied by a set of quasi-invariant(s): Quasi-invariant at l2: arg1 <= arg2 [ 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: 1 + arg1, arg2 -> arg1 + arg2, rest remain the same}> [ Termination Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: 1 + arg1, arg2 -> arg1 + arg2, rest remain the same}> New Graphs: Calling Safety with literal arg1 <= arg2 and entry LOG: CALL check - Post:arg1 <= arg2 - Process 1 * Exit transition: * Postcondition : arg1 <= arg2 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000564s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.000693s INVARIANTS: 2: Quasi-INVARIANTS to narrow Graph: 2: arg1 <= arg2 , Narrowing transition: 1 + arg1, arg2 -> arg1 + arg2, rest remain the same}> LOG: Narrow transition size 1 invGraph after Narrowing: Transitions: 1 + arg1, arg2 -> arg1 + arg2, rest remain the same}> Variables: arg1, arg2 Checking conditional termination of SCC {l2}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000524s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001709s Trying to remove transition: 1 + arg1, arg2 -> arg1 + arg2, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.006141s Time used: 0.006003 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.002210s Time used: 4.00155 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.007626s Time used: 4.00103 Solving with 3 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 1.005844s Time used: 1.00049 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.011572s Time used: 0.0077 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 1.000865s Time used: 1.00072 LOG: SAT solveNonLinear - Elapsed time: 1.012437s Cost: 1; Total time: 1.00842 Quasi-ranking function: 50000 - arg1 New Graphs: Transitions: 1 + arg1, arg2 -> arg1 + arg2, rest remain the same}> Variables: arg1, arg2 Checking conditional termination of SCC {l2}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000889s Ranking function: (~(1) / 50000) + (1 / 50000)*arg1 + (~(1) / 50000)*arg2 New Graphs: Program Terminates