NO Solver Timeout: 4 Global Timeout: 60 No parsing errors! Init Location: 0 Transitions: ~(1)) /\ ((undef2 - 1) <= arg1) /\ (arg1 > 0) /\ (undef1 > 0) /\ (undef2 > 1), par{arg1 -> undef1, arg2 -> undef2, arg3 -> 1, arg4 -> arg2}> 0) /\ (arg4 <= arg3) /\ (arg2 > 0) /\ (undef5 > ~(1)), par{arg1 -> undef5, arg2 -> undef6, arg3 -> undef7, arg4 -> undef8}> ~(1)) /\ (undef9 > ~(1)), par{arg1 -> undef9, arg2 -> undef10, arg3 -> undef11, arg4 -> undef12}> 0) /\ (undef13 > ~(1)), par{arg1 -> undef13, arg2 -> undef14, arg3 -> undef15, arg4 -> undef16}> 0) /\ (undef17 > ~(1)), par{arg1 -> undef17, arg2 -> undef18, arg3 -> undef19, arg4 -> undef20}> (arg3 + 2)) /\ (arg4 > (arg3 + 1)) /\ (arg4 > ~(1)) /\ (undef21 <= arg1) /\ (undef21 <= arg2) /\ (arg1 > 0) /\ (arg2 > 0) /\ (undef21 > 0) /\ (undef22 > 6), par{arg1 -> undef21, arg2 -> undef22, arg3 -> (arg3 + 4)}> undef25, arg2 -> undef26, arg3 -> undef27, arg4 -> undef28}> Fresh variables: undef1, undef2, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef22, undef25, undef26, undef27, undef28, Undef variables: undef1, undef2, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef22, undef25, undef26, undef27, undef28, Abstraction variables: Exit nodes: Accepting locations: Asserts: Preprocessed LLVMGraph Init Location: 0 Transitions: ~(1)) /\ ((undef2 - 1) <= undef25) /\ (undef25 > 0) /\ (undef1 > 0) /\ (undef2 > 1)> 0) /\ (arg4 <= arg3) /\ (arg2 > 0) /\ (undef5 > ~(1)), par{arg1 -> undef5, arg2 -> undef6, arg3 -> undef7, arg4 -> undef8}> (arg3 + 2)) /\ (arg4 > (arg3 + 1)) /\ (arg4 > ~(1)) /\ (undef21 <= arg1) /\ (undef21 <= arg2) /\ (arg1 > 0) /\ (arg2 > 0) /\ (undef21 > 0) /\ (undef22 > 6), par{arg1 -> undef21, arg2 -> undef22, arg3 -> (arg3 + 4)}> ~(1)) /\ (undef9 > ~(1)), par{arg1 -> undef9, arg2 -> undef10, arg3 -> undef11, arg4 -> undef12}> 0) /\ (undef13 > ~(1)), par{arg1 -> undef13, arg2 -> undef14, arg3 -> undef15, arg4 -> undef16}> 0) /\ (undef17 > ~(1)), par{arg1 -> undef17, arg2 -> undef18, arg3 -> undef19, arg4 -> undef20}> Fresh variables: undef1, undef2, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef22, undef25, undef26, undef27, undef28, Undef variables: undef1, undef2, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef15, undef16, undef17, undef18, undef19, undef20, undef21, undef22, 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: undef21, arg2 -> undef22, arg3 -> 4 + arg3, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Graph 2: Transitions: undef13, arg2 -> undef14, arg3 -> undef15, arg4 -> undef16, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Graph 3: Transitions: undef17, arg2 -> undef18, arg3 -> undef19, arg4 -> undef20, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Precedence: Graph 0 Graph 1 Graph 2 undef5, arg2 -> undef6, arg3 -> undef7, arg4 -> undef8, rest remain the same}> Graph 3 undef9, arg2 -> undef10, arg3 -> undef11, arg4 -> undef12, rest remain the same}> Map Locations to Subgraph: ( 0 , 0 ) ( 2 , 1 ) ( 3 , 2 ) ( 4 , 3 ) ******************************************************************************************* ******************************** CHECKING ASSERTIONS ******************************** ******************************************************************************************* Proving termination of subgraph 0 Proving termination of subgraph 1 Checking unfeasibility... Time used: 0.006006 Checking conditional termination of SCC {l2}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001505s Ranking function: (~(3) / 4) + (~(1) / 4)*arg3 + (1 / 4)*arg4 New Graphs: Proving termination of subgraph 2 Checking unfeasibility... Time used: 0.002635 Checking conditional termination of SCC {l3}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000867s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002368s Trying to remove transition: undef13, arg2 -> undef14, arg3 -> undef15, arg4 -> undef16, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.007776s Time used: 0.007629 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.011513s Time used: 0.010951 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 0.014398s Time used: 0.014393 LOG: SAT solveNonLinear - Elapsed time: 0.025911s Cost: 1; Total time: 0.025344 Failed at location 3: arg1 <= 0 Before Improving: Quasi-invariant at l3: arg1 <= 0 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002759s Remaining time after improvement: 0.998857 Termination implied by a set of quasi-invariant(s): Quasi-invariant at l3: arg1 <= 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: undef13, arg2 -> undef14, arg3 -> undef15, arg4 -> undef16, rest remain the same}> [ Termination Graph ] Strengthening and disabling transitions... > It's unfeasible. Removing transition: undef13, arg2 -> undef14, arg3 -> undef15, arg4 -> undef16, rest remain the same}> New Graphs: Calling Safety with literal arg1 <= 0 and entry undef5, arg2 -> undef6, arg3 -> undef7, arg4 -> undef8, rest remain the same}> LOG: CALL check - Post:arg1 <= 0 - Process 1 * Exit transition: undef5, arg2 -> undef6, arg3 -> undef7, arg4 -> undef8, rest remain the same}> * Postcondition : arg1 <= 0 Postcodition moved up: undef5 <= 0 LOG: Try proving POST Postcondition: undef5 <= 0 LOG: CALL check - Post:undef5 <= 0 - Process 2 * Exit transition: * Postcondition : undef5 <= 0 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000895s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.001084s LOG: NarrowEntry size 1 Narrowing transition: undef21, arg2 -> undef22, arg3 -> 4 + arg3, rest remain the same}> LOG: Narrow transition size 1 ENTRIES: END ENTRIES: GRAPH: undef21, arg2 -> undef22, arg3 -> 4 + arg3, rest remain the same}> END GRAPH: EXIT: undef5, arg2 -> undef6, arg3 -> undef7, arg4 -> undef8, rest remain the same}> POST: arg1 <= 0 LOG: Try proving POST Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.021696s Time used: 0.021485 Improving Solution with cost 51 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 1.000490s Time used: 1.00048 LOG: SAT solveNonLinear - Elapsed time: 1.022187s Cost: 51; Total time: 1.02196 Failed at location 2: 1 + arg4 <= arg3 Before Improving: Quasi-invariant at l2: 1 + arg4 <= arg3 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.004573s Quasi-invariant improved LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001842s Remaining time after improvement: 0.996069 Some transition disabled by a set of quasi-invariant(s): Quasi-invariant at l2: arg4 <= arg3 LOG: NEXT CALL check - disable LOG: CALL check - Post:arg4 <= arg3 - Process 3 * Exit transition: * Postcondition : arg4 <= arg3 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001066s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.001241s Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.125951s Time used: 0.125656 Improving Solution with cost 2 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 1.000377s Time used: 1.00037 LOG: SAT solveNonLinear - Elapsed time: 1.126327s Cost: 2; Total time: 1.12603 Failed at location 2: arg4 <= 1 + arg3 Failed at location 2: 1 + arg3 <= arg4 Before Improving: Quasi-invariant at l2: arg4 <= 1 + arg3 Quasi-invariant at l2: 1 + arg3 <= arg4 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.018732s Remaining time after improvement: 0.997863 Postcondition implied by a set of quasi-invariant(s): Quasi-invariant at l2: arg4 <= 1 + arg3 Quasi-invariant at l2: 1 + arg3 <= arg4 Postcondition: arg4 <= 1 + arg3 LOG: CALL check - Post:arg4 <= 1 + arg3 - Process 4 * Exit transition: * Postcondition : arg4 <= 1 + arg3 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001386s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.001562s Postcondition: 1 + arg3 <= arg4 LOG: CALL check - Post:1 + arg3 <= arg4 - Process 5 * Exit transition: * Postcondition : 1 + arg3 <= arg4 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001071s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.001274s LOG: NarrowEntry size 2 INVARIANTS: 2: Quasi-INVARIANTS to narrow Graph: 2: 1 + arg3 <= arg4 , arg4 <= 1 + arg3 , Narrowing transition: undef21, arg2 -> undef22, arg3 -> 4 + arg3, rest remain the same}> LOG: Narrow transition size 2 ENTRIES: END ENTRIES: GRAPH: undef21, arg2 -> undef22, arg3 -> 4 + arg3, rest remain the same}> END GRAPH: EXIT: undef5, arg2 -> undef6, arg3 -> undef7, arg4 -> undef8, rest remain the same}> POST: arg1 <= 0 LOG: Try proving POST Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.000689s Time used: 4.00058 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 1.242528s Time used: 1.23432 Improving Solution with cost 2 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 1.001089s Time used: 1.00108 LOG: SAT solveNonLinear - Elapsed time: 2.243617s Cost: 2; Total time: 2.23541 Failed at location 2: arg4 <= 2 + arg3 Failed at location 2: 1 + arg3 <= arg4 Before Improving: Quasi-invariant at l2: arg4 <= 2 + arg3 Quasi-invariant at l2: 1 + arg3 <= arg4 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.013968s Remaining time after improvement: 0.996224 Postcondition implied by a set of quasi-invariant(s): Quasi-invariant at l2: arg4 <= 2 + arg3 Quasi-invariant at l2: 1 + arg3 <= arg4 Postcondition: 1 + arg3 <= arg4 LOG: CALL check - Post:1 + arg3 <= arg4 - Process 6 * Exit transition: * Postcondition : 1 + arg3 <= arg4 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001439s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.001622s Postcondition: arg4 <= 2 + arg3 LOG: CALL check - Post:arg4 <= 2 + arg3 - Process 7 * Exit transition: * Postcondition : arg4 <= 2 + arg3 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001230s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.001412s LOG: NarrowEntry size 1 LOG: NarrowEntry size 1 INVARIANTS: 2: Quasi-INVARIANTS to narrow Graph: 2: 1 + arg3 <= arg4 , arg4 <= 2 + arg3 , Narrowing transition: undef21, arg2 -> undef22, arg3 -> 4 + arg3, rest remain the same}> LOG: Narrow transition size 2 ENTRIES: END ENTRIES: GRAPH: undef21, arg2 -> undef22, arg3 -> 4 + arg3, rest remain the same}> END GRAPH: EXIT: undef5, arg2 -> undef6, arg3 -> undef7, arg4 -> undef8, rest remain the same}> POST: arg1 <= 0 LOG: Try proving POST Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.001071s Time used: 4.00096 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.003579s Time used: 4.00069 Solving with 3 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 1.005105s Time used: 1.00017 LOG: Postcondition is not implied - no solution > Postcondition is not implied! LOG: RETURN check - Elapsed time: 17.497891s INVARIANTS: 3: Quasi-INVARIANTS to narrow Graph: 3: arg1 <= 0 , Narrowing transition: undef13, arg2 -> undef14, arg3 -> undef15, arg4 -> undef16, rest remain the same}> LOG: Narrow transition size 1 invGraph after Narrowing: Transitions: undef13, arg2 -> undef14, arg3 -> undef15, arg4 -> undef16, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking conditional termination of SCC {l3}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000885s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002722s Trying to remove transition: undef13, arg2 -> undef14, arg3 -> undef15, arg4 -> undef16, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.007764s Time used: 0.007608 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.012250s Time used: 0.011507 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.001354s Time used: 4.00057 Solving with 3 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 1.004313s Time used: 1.00005 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.014752s Time used: 0.008817 Proving non-termination of subgraph 2 Transitions: undef13, arg2 -> undef14, arg3 -> undef15, arg4 -> undef16, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking conditional non-termination of SCC {l3}... EXIT TRANSITIONS: Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.025097s Time used: 0.024823 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 0.045232s Time used: 0.045226 LOG: SAT solveNonLinear - Elapsed time: 0.070329s Cost: 1; Total time: 0.070049 Failed at location 3: 1 <= arg1 Before Improving: Quasi-invariant at l3: 1 <= arg1 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.011543s Remaining time after improvement: 0.998597 Minimizing number of undef constraints... LOG: CALL solveNonLinear LOG: RETURN solveNonLinear - Elapsed time: 0.002631s Non-termination implied by a set of quasi-invariant(s): Quasi-invariant at l3: 1 <= arg1 Constraint over undef '1 <= undef13' in transition: undef13, arg2 -> undef14, arg3 -> undef15, arg4 -> undef16, rest remain the same}> Strengthening and disabling EXIT transitions... Closed exits from l3: 1 Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef13, arg2 -> undef14, arg3 -> undef15, arg4 -> undef16, rest remain the same}> Calling reachability with... Transition: Conditions: 1 <= arg1, OPEN EXITS: --- Reachability graph --- > Graph without transitions. Calling reachability with... Transition: undef5, arg2 -> undef6, arg3 -> undef7, arg4 -> undef8, rest remain the same}> Conditions: 1 <= arg1, OPEN EXITS: undef5, arg2 -> undef6, arg3 -> undef7, arg4 -> undef8, rest remain the same}> (condsUp: 0 <= undef5, 1 <= undef5) --- Reachability graph --- > Graph without transitions. Calling reachability with... Transition: Conditions: 1 <= arg1, 1 <= arg2, arg4 <= arg3, 0 <= undef5, 1 <= undef5, OPEN EXITS: > Conditions are reachable! Program does NOT terminate