NO Solver Timeout: 4 Global Timeout: 60 No parsing errors! Init Location: 0 Transitions: 0) /\ (arg2 > ~(1)) /\ (undef1 > 0) /\ (undef2 > ~(1)), par{arg1 -> undef1, arg2 -> undef2, arg3 -> undef3, arg4 -> undef4}> 0) /\ (undef5 > 0) /\ (undef6 > ~(1)), par{arg1 -> undef5, arg2 -> undef6, arg3 -> undef7, arg4 -> undef8}> 0) /\ (undef14 > 0) /\ (undef9 <= arg2) /\ (arg1 > 0) /\ (arg2 > ~(1)) /\ (undef9 > ~(1)), par{arg1 -> undef9, arg2 -> undef10, arg3 -> undef11, arg4 -> undef12}> ~(1)) /\ (undef16 > ~(1)) /\ (arg1 > 0), par{arg1 -> 0, arg2 -> undef16, arg3 -> 1, arg4 -> undef18}> ~(1)) /\ (arg2 > arg1) /\ (arg3 > 0), par{arg1 -> arg2, arg2 -> arg1, arg3 -> undef21, arg4 -> (arg3 + 1)}> (arg2 + 1), arg2 -> arg1, arg3 -> arg4, arg4 -> undef26}> 0), par{arg3 -> (arg3 - 1)}> 0) /\ (arg1 > 1) /\ (undef31 > ~(1)), par{arg1 -> undef31, arg2 -> undef32, arg3 -> undef33, arg4 -> undef34}> 0) /\ (arg1 > 2) /\ (undef36 > ~(1)), par{arg1 -> undef36, arg2 -> undef37, arg3 -> undef38, arg4 -> undef39}> 0) /\ (arg1 > 2) /\ (undef41 > 0), par{arg1 -> undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44}> undef46, arg2 -> undef47, arg3 -> undef48, arg4 -> undef49}> Fresh variables: undef1, undef2, undef3, undef4, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef16, undef18, undef21, undef26, undef31, undef32, undef33, undef34, undef35, undef36, undef37, undef38, undef39, undef40, undef41, undef42, undef43, undef44, undef45, undef46, undef47, undef48, undef49, Undef variables: undef1, undef2, undef3, undef4, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef16, undef18, undef21, undef26, undef31, undef32, undef33, undef34, undef35, undef36, undef37, undef38, undef39, undef40, undef41, undef42, undef43, undef44, undef45, undef46, undef47, undef48, undef49, Abstraction variables: Exit nodes: Accepting locations: Asserts: Preprocessed LLVMGraph Init Location: 0 Transitions: 0) /\ (undef5 > 0) /\ (undef6 > ~(1)) /\ (undef13 > 0) /\ (undef14 > 0) /\ (undef9 <= undef6) /\ (undef5 > 0) /\ (undef6 > ~(1)) /\ (undef9 > ~(1)), par{arg1 -> undef9, arg2 -> undef10, arg3 -> undef11, arg4 -> undef12}> ~(1)) /\ (undef16 > ~(1)) /\ (undef46 > 0) /\ (undef21 > ~(1)) /\ (undef16 > 0) /\ (1 > 0), par{arg1 -> undef16, arg2 -> 0, arg3 -> undef21, arg4 -> (1 + 1)}> 0) /\ (arg1 > 1) /\ (undef31 > ~(1)), par{arg1 -> undef31, arg2 -> undef32, arg3 -> undef33, arg4 -> undef34}> 0) /\ (arg1 > 2) /\ (undef36 > ~(1)), par{arg1 -> undef36, arg2 -> undef37, arg3 -> undef38, arg4 -> undef39}> 0) /\ (arg1 > 2) /\ (undef41 > 0), par{arg1 -> undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44}> ~(1)) /\ (arg1 > (arg2 + 1)) /\ (arg4 > 0), par{arg1 -> arg1, arg2 -> (arg2 + 1), arg3 -> undef21, arg4 -> (arg4 + 1)}> 0), par{arg3 -> (arg3 - 1)}> Fresh variables: undef1, undef2, undef3, undef4, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef16, undef18, undef21, undef26, undef31, undef32, undef33, undef34, undef35, undef36, undef37, undef38, undef39, undef40, undef41, undef42, undef43, undef44, undef45, undef46, undef47, undef48, undef49, Undef variables: undef1, undef2, undef3, undef4, undef5, undef6, undef7, undef8, undef9, undef10, undef11, undef12, undef13, undef14, undef16, undef18, undef21, undef26, undef31, undef32, undef33, undef34, undef35, undef36, undef37, undef38, undef39, undef40, undef41, undef42, undef43, undef44, undef45, undef46, undef47, undef48, undef49, Abstraction variables: Exit nodes: Accepting locations: Asserts: ************************************************************* ******************************************************************************************* *********************** WORKING TRANSITION SYSTEM (DAG) *********************** ******************************************************************************************* Init Location: 0 Graph 0: Transitions: Variables: Graph 1: Transitions: 1 + arg2, arg3 -> undef21, arg4 -> 1 + arg4, rest remain the same}> -1 + arg3, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Graph 2: Transitions: undef31, arg2 -> undef32, arg3 -> undef33, arg4 -> undef34, rest remain the same}> undef36, arg2 -> undef37, arg3 -> undef38, arg4 -> undef39, rest remain the same}> undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Precedence: Graph 0 Graph 1 undef16, arg2 -> 0, arg3 -> undef21, arg4 -> 2, rest remain the same}> Graph 2 undef9, arg2 -> undef10, arg3 -> undef11, arg4 -> undef12, rest remain the same}> Map Locations to Subgraph: ( 0 , 0 ) ( 4 , 2 ) ( 6 , 1 ) ******************************************************************************************* ******************************** CHECKING ASSERTIONS ******************************** ******************************************************************************************* Proving termination of subgraph 0 Proving termination of subgraph 1 Checking unfeasibility... Time used: 0.008168 Checking conditional termination of SCC {l6}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001563s Ranking function: -2 + 2*arg1 - 2*arg2 + arg4 New Graphs: Transitions: -1 + arg3, rest remain the same}> Variables: arg3 Checking conditional termination of SCC {l6}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000498s Ranking function: -1 + arg3 New Graphs: Proving termination of subgraph 2 Checking unfeasibility... Time used: 0.008911 Checking conditional termination of SCC {l4}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002699s Ranking function: -12 + 4*arg1 New Graphs: Transitions: undef31, arg2 -> undef32, arg3 -> undef33, arg4 -> undef34, rest remain the same}> undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking conditional termination of SCC {l4}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001742s Ranking function: -1 + arg1 New Graphs: Transitions: undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking conditional termination of SCC {l4}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000804s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002896s Trying to remove transition: undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.008179s Time used: 0.007968 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.023223s Time used: 0.022565 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 0.036532s Time used: 0.036524 LOG: SAT solveNonLinear - Elapsed time: 0.059755s Cost: 1; Total time: 0.059089 Failed at location 4: arg1 <= 1 Before Improving: Quasi-invariant at l4: arg1 <= 1 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.006022s Remaining time after improvement: 0.997716 Termination implied by a set of quasi-invariant(s): Quasi-invariant at l4: arg1 <= 1 [ 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, arg2 -> undef32, arg3 -> undef33, arg4 -> undef34, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef36, arg2 -> undef37, arg3 -> undef38, arg4 -> undef39, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> [ Termination Graph ] Strengthening and disabling transitions... > It's unfeasible. Removing transition: undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> New Graphs: Calling Safety with literal arg1 <= 1 and entry undef9, arg2 -> undef10, arg3 -> undef11, arg4 -> undef12, rest remain the same}> LOG: CALL check - Post:arg1 <= 1 - Process 1 * Exit transition: undef9, arg2 -> undef10, arg3 -> undef11, arg4 -> undef12, rest remain the same}> * Postcondition : arg1 <= 1 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000858s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.001017s INVARIANTS: 4: Quasi-INVARIANTS to narrow Graph: 4: arg1 <= 1 , Narrowing transition: undef31, arg2 -> undef32, arg3 -> undef33, arg4 -> undef34, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef36, arg2 -> undef37, arg3 -> undef38, arg4 -> undef39, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> LOG: Narrow transition size 1 invGraph after Narrowing: Transitions: undef31, arg2 -> undef32, arg3 -> undef33, arg4 -> undef34, rest remain the same}> undef36, arg2 -> undef37, arg3 -> undef38, arg4 -> undef39, rest remain the same}> undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking conditional termination of SCC {l4}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002481s Ranking function: -12 + 4*arg1 New Graphs: Transitions: undef31, arg2 -> undef32, arg3 -> undef33, arg4 -> undef34, rest remain the same}> undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking conditional termination of SCC {l4}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001849s Ranking function: -1 + arg1 New Graphs: Transitions: undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking conditional termination of SCC {l4}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000807s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002953s Trying to remove transition: undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.008221s Time used: 0.008059 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.041137s Time used: 0.040439 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 0.029325s Time used: 0.029319 LOG: SAT solveNonLinear - Elapsed time: 0.070462s Cost: 1; Total time: 0.069758 Failed at location 4: arg1 <= 2 Before Improving: Quasi-invariant at l4: arg1 <= 2 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.006171s Remaining time after improvement: 0.997646 Termination implied by a set of quasi-invariant(s): Quasi-invariant at l4: arg1 <= 2 [ Invariant Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef31, arg2 -> undef32, arg3 -> undef33, arg4 -> undef34, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef36, arg2 -> undef37, arg3 -> undef38, arg4 -> undef39, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> [ Termination Graph ] Strengthening and disabling transitions... > It's unfeasible. Removing transition: undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> New Graphs: Calling Safety with literal arg1 <= 2 and entry undef9, arg2 -> undef10, arg3 -> undef11, arg4 -> undef12, rest remain the same}> LOG: CALL check - Post:arg1 <= 2 - Process 2 * Exit transition: undef9, arg2 -> undef10, arg3 -> undef11, arg4 -> undef12, rest remain the same}> * Postcondition : arg1 <= 2 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000743s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.000910s INVARIANTS: 4: Quasi-INVARIANTS to narrow Graph: 4: arg1 <= 2 , Narrowing transition: undef31, arg2 -> undef32, arg3 -> undef33, arg4 -> undef34, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef36, arg2 -> undef37, arg3 -> undef38, arg4 -> undef39, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> LOG: Narrow transition size 1 invGraph after Narrowing: Transitions: undef31, arg2 -> undef32, arg3 -> undef33, arg4 -> undef34, rest remain the same}> undef36, arg2 -> undef37, arg3 -> undef38, arg4 -> undef39, rest remain the same}> undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking conditional termination of SCC {l4}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002516s Ranking function: (~(3) / 2) + (1 / 2)*arg1 New Graphs: Transitions: undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking conditional termination of SCC {l4}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000820s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002992s Trying to remove transition: undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.008315s Time used: 0.008151 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.040290s Time used: 0.039714 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.002326s Time used: 4.00076 Solving with 3 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 1.008002s Time used: 1.0001 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.048071s Time used: 0.016126 Proving non-termination of subgraph 2 Transitions: undef31, arg2 -> undef32, arg3 -> undef33, arg4 -> undef34, rest remain the same}> undef36, arg2 -> undef37, arg3 -> undef38, arg4 -> undef39, rest remain the same}> undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking that every undef value has an assignment... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002377s Checking conditional non-termination of SCC {l4}... EXIT TRANSITIONS: Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 5.001345s Time used: 5.00103 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 5.025431s Time used: 5.00324 Solving with 3 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 5.004923s Time used: 5.00021 > Checking if the negation of the conditions of every pending exit is quasi-invariant... NO Proving non-termination of subgraph 2 Transitions: undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> Variables: arg1, arg2, arg3, arg4 Checking that every undef value has an assignment... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002475s Checking conditional non-termination of SCC {l4}... EXIT TRANSITIONS: Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.146172s Time used: 0.145759 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 0.086861s Time used: 0.086851 LOG: SAT solveNonLinear - Elapsed time: 0.233033s Cost: 1; Total time: 0.23261 Failed at location 4: 3 <= arg1 Before Improving: Quasi-invariant at l4: 3 <= arg1 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.022591s Remaining time after improvement: 0.996631 Minimizing number of undef constraints... LOG: CALL solveNonLinear LOG: RETURN solveNonLinear - Elapsed time: 0.004952s Non-termination implied by a set of quasi-invariant(s): Quasi-invariant at l4: 3 <= arg1 Constraint over undef 'arg1 <= undef41' in transition: undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> Strengthening and disabling EXIT transitions... Closed exits from l4: 1 Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef41, arg2 -> undef42, arg3 -> undef43, arg4 -> undef44, rest remain the same}> Calling reachability with... Transition: Conditions: 3 <= arg1, OPEN EXITS: --- Reachability graph --- > Graph without transitions. Calling reachability with... Transition: undef9, arg2 -> undef10, arg3 -> undef11, arg4 -> undef12, rest remain the same}> Conditions: 3 <= arg1, OPEN EXITS: undef9, arg2 -> undef10, arg3 -> undef11, arg4 -> undef12, rest remain the same}> > Conditions are reachable! Program does NOT terminate