NO Solver Timeout: 4 Global Timeout: 60 No parsing errors! Init Location: 0 Transitions: ~(1)) /\ (arg1 > 0) /\ (undef1 > 0), par{arg1 -> undef1, arg2 -> 0, arg3 -> (arg2 - 1), arg4 -> 0, arg5 -> arg2}> ~(1)) /\ (arg3 > arg2) /\ (undef6 <= arg1) /\ (arg1 > 0) /\ (undef6 > 0), par{arg1 -> undef6, arg2 -> (arg2 + 1), arg3 -> (arg5 - 1), arg4 -> undef9}> 0) /\ (undef12 > arg4) /\ (arg1 > 0), par{arg1 -> 1, arg2 -> undef12, arg3 -> undef13, arg4 -> undef14, arg5 -> undef15}> 0) /\ (arg3 <= arg2), par{arg1 -> 1, arg2 -> 1, arg3 -> undef18, arg4 -> undef19, arg5 -> undef20}> ~(1)) /\ (undef26 > 0) /\ (undef26 < arg2) /\ (undef26 < undef22) /\ (0 = arg1), par{arg1 -> 1, arg2 -> undef22, arg3 -> undef23, arg4 -> undef24, arg5 -> undef25}> ~(1)) /\ (0 = arg1), par{arg1 -> 1, arg2 -> 1, arg3 -> undef29, arg4 -> undef30, arg5 -> undef31}> ~(1)) /\ (undef38 > 0) /\ (undef38 < arg2) /\ (undef39 > undef38) /\ (undef40 > undef38) /\ (1 = arg1), par{arg1 -> 0, arg2 -> 0, arg3 -> undef35, arg4 -> undef36, arg5 -> undef37}> ~(1)) /\ (1 = arg1), par{arg1 -> 0, arg2 -> 2, arg3 -> undef43, arg4 -> undef44, arg5 -> undef45}> undef47, arg2 -> undef48, arg3 -> undef49, arg4 -> undef50, arg5 -> undef51}> Fresh variables: undef1, undef6, undef9, undef12, undef13, undef14, undef15, undef18, undef19, undef20, undef22, undef23, undef24, undef25, undef26, undef29, undef30, undef31, undef32, undef35, undef36, undef37, undef38, undef39, undef40, undef43, undef44, undef45, undef46, undef47, undef48, undef49, undef50, undef51, Undef variables: undef1, undef6, undef9, undef12, undef13, undef14, undef15, undef18, undef19, undef20, undef22, undef23, undef24, undef25, undef26, undef29, undef30, undef31, undef32, undef35, undef36, undef37, undef38, undef39, undef40, undef43, undef44, undef45, undef46, undef47, undef48, undef49, undef50, undef51, Abstraction variables: Exit nodes: Accepting locations: Asserts: Preprocessed LLVMGraph Init Location: 0 Transitions: ~(1)) /\ (undef47 > 0) /\ (undef1 > 0)> ~(1)) /\ (arg3 > arg2) /\ (undef6 <= arg1) /\ (arg1 > 0) /\ (undef6 > 0), par{arg1 -> undef6, arg2 -> (arg2 + 1), arg3 -> (arg5 - 1), arg4 -> undef9}> 0) /\ (undef12 > arg4) /\ (arg1 > 0), par{arg1 -> 1, arg2 -> undef12, arg3 -> undef13, arg4 -> undef14, arg5 -> undef15}> 0) /\ (arg3 <= arg2), par{arg1 -> 1, arg2 -> 1, arg3 -> undef18, arg4 -> undef19, arg5 -> undef20}> ~(1)) /\ (undef26 > 0) /\ (undef26 < arg2) /\ (undef26 < undef22) /\ (0 = arg1), par{arg1 -> 1, arg2 -> undef22, arg3 -> undef23, arg4 -> undef24, arg5 -> undef25}> ~(1)) /\ (0 = arg1), par{arg1 -> 1, arg2 -> 1, arg3 -> undef29, arg4 -> undef30, arg5 -> undef31}> ~(1)) /\ (undef38 > 0) /\ (undef38 < arg2) /\ (undef39 > undef38) /\ (undef40 > undef38) /\ (1 = arg1), par{arg1 -> 0, arg2 -> 0, arg3 -> undef35, arg4 -> undef36, arg5 -> undef37}> ~(1)) /\ (1 = arg1), par{arg1 -> 0, arg2 -> 2, arg3 -> undef43, arg4 -> undef44, arg5 -> undef45}> Fresh variables: undef1, undef6, undef9, undef12, undef13, undef14, undef15, undef18, undef19, undef20, undef22, undef23, undef24, undef25, undef26, undef29, undef30, undef31, undef32, undef35, undef36, undef37, undef38, undef39, undef40, undef43, undef44, undef45, undef46, undef47, undef48, undef49, undef50, undef51, Undef variables: undef1, undef6, undef9, undef12, undef13, undef14, undef15, undef18, undef19, undef20, undef22, undef23, undef24, undef25, undef26, undef29, undef30, undef31, undef32, undef35, undef36, undef37, undef38, undef39, undef40, undef43, undef44, undef45, undef46, undef47, undef48, undef49, undef50, undef51, Abstraction variables: Exit nodes: Accepting locations: Asserts: ************************************************************* ******************************************************************************************* *********************** WORKING TRANSITION SYSTEM (DAG) *********************** ******************************************************************************************* Init Location: 0 Graph 0: Transitions: Variables: Graph 1: Transitions: undef6, arg2 -> 1 + arg2, arg3 -> -1 + arg5, arg4 -> undef9, rest remain the same}> Variables: arg1, arg2, arg3, arg4, arg5 Graph 2: Transitions: 1, arg2 -> undef22, arg3 -> undef23, arg4 -> undef24, arg5 -> undef25, rest remain the same}> 1, arg2 -> 1, arg3 -> undef29, arg4 -> undef30, arg5 -> undef31, rest remain the same}> 0, arg2 -> 0, arg3 -> undef35, arg4 -> undef36, arg5 -> undef37, rest remain the same}> 0, arg2 -> 2, arg3 -> undef43, arg4 -> undef44, arg5 -> undef45, rest remain the same}> Variables: arg1, arg2, arg3, arg4, arg5 Precedence: Graph 0 Graph 1 Graph 2 1, arg2 -> undef12, arg3 -> undef13, arg4 -> undef14, arg5 -> undef15, rest remain the same}> 1, arg2 -> 1, arg3 -> undef18, arg4 -> undef19, arg5 -> undef20, rest remain the same}> Map Locations to Subgraph: ( 0 , 0 ) ( 2 , 1 ) ( 3 , 2 ) ******************************************************************************************* ******************************** CHECKING ASSERTIONS ******************************** ******************************************************************************************* Proving termination of subgraph 0 Proving termination of subgraph 1 Checking unfeasibility... Time used: 0.004933 Checking conditional termination of SCC {l2}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001013s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.004152s Trying to remove transition: undef6, arg2 -> 1 + arg2, arg3 -> -1 + arg5, arg4 -> undef9, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.015531s Time used: 0.015321 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.019362s Time used: 0.018701 LOG: SAT solveNonLinear - Elapsed time: 0.019362s Cost: 0; Total time: 0.018701 Termination implied by a set of invariant(s): Invariant at l2: 1 + arg3 <= arg5 [ Invariant Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef6, arg2 -> 1 + arg2, arg3 -> -1 + arg5, arg4 -> undef9, 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): undef6, arg2 -> 1 + arg2, arg3 -> -1 + arg5, arg4 -> undef9, rest remain the same}> Ranking function: -arg2 + arg5 New Graphs: INVARIANTS: 2: 1 + arg3 <= arg5 , Quasi-INVARIANTS to narrow Graph: 2: Proving termination of subgraph 2 Checking unfeasibility... Time used: 0.076398 Checking conditional termination of SCC {l3}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.004276s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.069790s Trying to remove transition: 0, arg2 -> 2, arg3 -> undef43, arg4 -> undef44, arg5 -> undef45, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.182979s Time used: 0.182136 Trying to remove transition: 0, arg2 -> 0, arg3 -> undef35, arg4 -> undef36, arg5 -> undef37, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.188546s Time used: 0.183428 Trying to remove transition: 1, arg2 -> 1, arg3 -> undef29, arg4 -> undef30, arg5 -> undef31, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.103471s Time used: 0.098091 Trying to remove transition: 1, arg2 -> undef22, arg3 -> undef23, arg4 -> undef24, arg5 -> undef25, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.119019s Time used: 0.114564 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.767278s Time used: 0.761867 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.014282s Time used: 4.00016 Solving with 3 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 1.006561s Time used: 1.00008 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.493270s Time used: 0.485942 Termination failed. Trying to show unreachability... Proving unreachability of entry: 1, arg2 -> undef12, arg3 -> undef13, arg4 -> undef14, arg5 -> undef15, rest remain the same}> LOG: CALL check - Post:1 <= 0 - Process 1 * Exit transition: 1, arg2 -> undef12, arg3 -> undef13, arg4 -> undef14, arg5 -> undef15, rest remain the same}> * Postcondition : 1 <= 0 Postcodition moved up: 1 <= 0 LOG: Try proving POST Postcondition: 1 <= 0 LOG: CALL check - Post:1 <= 0 - Process 2 * Exit transition: * Postcondition : 1 <= 0 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.001938s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.002100s LOG: NarrowEntry size 1 Narrowing transition: undef6, arg2 -> 1 + arg2, arg3 -> -1 + arg5, arg4 -> undef9, rest remain the same}> LOG: Narrow transition size 1 ENTRIES: END ENTRIES: GRAPH: undef6, arg2 -> 1 + arg2, arg3 -> -1 + arg5, arg4 -> undef9, rest remain the same}> END GRAPH: EXIT: 1, arg2 -> undef12, arg3 -> undef13, arg4 -> undef14, arg5 -> undef15, rest remain the same}> POST: 1 <= 0 LOG: Try proving POST Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.026731s Time used: 0.026512 Improving Solution with cost 51 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 0.042213s Time used: 0.042204 LOG: SAT solveNonLinear - Elapsed time: 0.068945s Cost: 51; Total time: 0.068716 Failed at location 2: 1 + arg3 <= arg2 Before Improving: Quasi-invariant at l2: 1 + arg3 <= arg2 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002962s Remaining time after improvement: 0.998416 Some transition disabled by a set of quasi-invariant(s): Quasi-invariant at l2: 1 + arg3 <= arg2 LOG: NEXT CALL check - disable LOG: CALL check - Post:1 + arg3 <= arg2 - Process 3 * Exit transition: * Postcondition : 1 + arg3 <= arg2 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002333s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.002504s Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.092991s Time used: 0.092673 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 0.130490s Time used: 0.130477 LOG: SAT solveNonLinear - Elapsed time: 0.223481s Cost: 1; Total time: 0.22315 Failed at location 2: arg1 + arg3 <= arg2 Before Improving: Quasi-invariant at l2: arg1 + arg3 <= arg2 Quasi-invariant at l2: arg2 + arg4 <= arg1 + arg3 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.007626s Remaining time after improvement: 0.997567 Postcondition implied by a set of quasi-invariant(s): Quasi-invariant at l2: arg1 + arg3 <= arg2 Quasi-invariant at l2: arg2 + arg4 <= arg1 + arg3 Postcondition: arg1 + arg3 <= arg2 LOG: CALL check - Post:arg1 + arg3 <= arg2 - Process 4 * Exit transition: * Postcondition : arg1 + arg3 <= arg2 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002414s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.002597s LOG: NarrowEntry size 1 INVARIANTS: 2: Quasi-INVARIANTS to narrow Graph: 2: arg1 + arg3 <= arg2 , arg2 + arg4 <= arg1 + arg3 , Narrowing transition: undef6, arg2 -> 1 + arg2, arg3 -> -1 + arg5, arg4 -> undef9, rest remain the same}> LOG: Narrow transition size 2 ENTRIES: END ENTRIES: GRAPH: undef6, arg2 -> 1 + arg2, arg3 -> -1 + arg5, arg4 -> undef9, rest remain the same}> END GRAPH: EXIT: 1, arg2 -> undef12, arg3 -> undef13, arg4 -> undef14, arg5 -> undef15, rest remain the same}> POST: 1 <= 0 LOG: Try proving POST Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.021368s Time used: 0.02126 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.064141s Time used: 0.063235 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 0.129024s Time used: 0.12901 LOG: SAT solveNonLinear - Elapsed time: 0.193165s Cost: 1; Total time: 0.192245 Failed at location 2: arg3 <= arg2 Before Improving: Quasi-invariant at l2: arg3 <= arg2 Quasi-invariant at l2: arg4 <= 0 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.008295s Remaining time after improvement: 0.997081 Postcondition implied by a set of quasi-invariant(s): Quasi-invariant at l2: arg3 <= arg2 Quasi-invariant at l2: arg4 <= 0 Postcondition: arg3 <= arg2 LOG: CALL check - Post:arg3 <= arg2 - Process 5 * Exit transition: * Postcondition : arg3 <= arg2 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002097s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.002274s LOG: NarrowEntry size 1 INVARIANTS: 2: Quasi-INVARIANTS to narrow Graph: 2: arg3 <= arg2 , arg4 <= 0 , Narrowing transition: undef6, arg2 -> 1 + arg2, arg3 -> -1 + arg5, arg4 -> undef9, rest remain the same}> LOG: Narrow transition size 2 ENTRIES: END ENTRIES: GRAPH: undef6, arg2 -> 1 + arg2, arg3 -> -1 + arg5, arg4 -> undef9, rest remain the same}> END GRAPH: EXIT: 1, arg2 -> undef12, arg3 -> undef13, arg4 -> undef14, arg5 -> undef15, rest remain the same}> POST: 1 <= 0 LOG: Try proving POST Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.024075s Time used: 0.023968 Solving with 2 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 4.002233s Time used: 4.0014 Solving with 3 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 1.003712s Time used: 1.00025 LOG: Postcondition is not implied - no solution > Postcondition is not implied! LOG: RETURN check - Elapsed time: 5.611816s Cannot prove unreachability Proving non-termination of subgraph 2 Transitions: 1, arg2 -> undef22, arg3 -> undef23, arg4 -> undef24, arg5 -> undef25, rest remain the same}> 1, arg2 -> 1, arg3 -> undef29, arg4 -> undef30, arg5 -> undef31, rest remain the same}> 0, arg2 -> 0, arg3 -> undef35, arg4 -> undef36, arg5 -> undef37, rest remain the same}> 0, arg2 -> 2, arg3 -> undef43, arg4 -> undef44, arg5 -> undef45, rest remain the same}> Variables: arg1, arg2, arg3, arg4, arg5 Checking that every undef value has an assignment... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.002557s Checking conditional non-termination of SCC {l3}... > No assignment for some undef value. > Checking if the negation of the conditions of every pending exit is quasi-invariant... YES Calling reachability with... Transition: Conditions: 0 <= arg2, arg1 <= 1, 0 <= arg1, Transition: Conditions: 0 <= arg2, arg1 <= 1, 0 <= arg1, OPEN EXITS: --- Reachability graph --- > Graph without transitions. Calling reachability with... Transition: 1, arg2 -> undef12, arg3 -> undef13, arg4 -> undef14, arg5 -> undef15, rest remain the same}> Conditions: arg1 <= 1, 0 <= arg1, 0 <= arg2, Transition: 1, arg2 -> 1, arg3 -> undef18, arg4 -> undef19, arg5 -> undef20, rest remain the same}> Conditions: arg1 <= 1, 0 <= arg1, 0 <= arg2, Transition: 1, arg2 -> undef12, arg3 -> undef13, arg4 -> undef14, arg5 -> undef15, rest remain the same}> Conditions: arg1 <= 1, 0 <= arg1, 0 <= arg2, Transition: 1, arg2 -> 1, arg3 -> undef18, arg4 -> undef19, arg5 -> undef20, rest remain the same}> Conditions: arg1 <= 1, 0 <= arg1, 0 <= arg2, OPEN EXITS: 1, arg2 -> undef12, arg3 -> undef13, arg4 -> undef14, arg5 -> undef15, rest remain the same}> (condsUp: 0 <= 1, 0 <= 1, 0 <= undef12) 1, arg2 -> 1, arg3 -> undef18, arg4 -> undef19, arg5 -> undef20, rest remain the same}> (condsUp: 0 <= 1, 0 <= 1, 0 <= 1) 1, arg2 -> undef12, arg3 -> undef13, arg4 -> undef14, arg5 -> undef15, rest remain the same}> (condsUp: 0 <= 1, 0 <= 1, 0 <= undef12) 1, arg2 -> 1, arg3 -> undef18, arg4 -> undef19, arg5 -> undef20, rest remain the same}> (condsUp: 0 <= 1, 0 <= 1, 0 <= 1) --- Reachability graph --- > Graph without transitions. Calling reachability with... Transition: Conditions: 1 <= arg1, 1 + arg4 <= undef12, 1 <= arg4, arg3 <= arg2, 0 <= 1, 0 <= 1, 0 <= undef12, Transition: Conditions: 1 <= arg1, arg3 <= arg2, 0 <= 1, 0 <= 1, 0 <= 1, Transition: Conditions: 1 <= arg1, 1 + arg4 <= undef12, 1 <= arg4, arg3 <= arg2, 0 <= 1, 0 <= 1, 0 <= undef12, Transition: Conditions: 1 <= arg1, arg3 <= arg2, 0 <= 1, 0 <= 1, 0 <= 1, OPEN EXITS: > Conditions are reachable! Program does NOT terminate