YES Solver Timeout: 4 Global Timeout: 300 No parsing errors! Init Location: 0 Transitions: (0 + x0^0), oldX1^0 -> (0 + x1^0), oldX2^0 -> undef3, oldX3^0 -> undef4, x0^0 -> (0 + undef3), x1^0 -> (0 + undef4)}> undef8, oldX1^0 -> undef9, x0^0 -> (0 + undef8), x1^0 -> (~(1) + undef9)}> undef15, oldX1^0 -> undef16, oldX2^0 -> undef17, x0^0 -> (0 + undef15), x1^0 -> (0 + undef16)}> undef22, oldX1^0 -> undef23, oldX2^0 -> undef24, x0^0 -> (0 + undef22), x1^0 -> (0 + undef23)}> undef29, oldX1^0 -> undef30, oldX2^0 -> undef31, x0^0 -> (0 + undef29), x1^0 -> (0 + undef30)}> (0 + x0^0), oldX1^0 -> (0 + x1^0), oldX2^0 -> undef38, oldX3^0 -> undef39, x0^0 -> (0 + undef38), x1^0 -> (0 + undef39)}> undef43, oldX1^0 -> undef44, x0^0 -> (0 + undef43), x1^0 -> (0 + undef44)}> undef50, oldX1^0 -> undef51, x0^0 -> (0 + undef50), x1^0 -> (0 + undef51)}> undef57, oldX1^0 -> undef58, x0^0 -> (0 + undef57), x1^0 -> (0 + undef58)}> undef64, oldX1^0 -> undef65, x0^0 -> (0 + undef64), x1^0 -> (0 + undef65)}> undef71, oldX1^0 -> undef72, x0^0 -> (0 + undef71), x1^0 -> (0 + undef72)}> undef78, oldX1^0 -> undef79, x0^0 -> (0 + undef78), x1^0 -> (0 + undef79)}> (0 + x0^0), oldX1^0 -> (0 + x1^0), oldX2^0 -> undef87, oldX3^0 -> undef88, x0^0 -> (0 + undef87), x1^0 -> (0 + undef88)}> undef92, oldX1^0 -> undef93, x0^0 -> (0 + undef92), x1^0 -> (0 + undef93)}> undef99, oldX1^0 -> undef100, x0^0 -> (0 + undef99), x1^0 -> (0 + undef100)}> (0 + x0^0), oldX1^0 -> undef107, oldX2^0 -> undef108, oldX3^0 -> undef109, oldX4^0 -> undef110, x0^0 -> (0 + undef108), x1^0 -> (0 + undef109)}> (0 + x0^0), oldX1^0 -> undef114, oldX2^0 -> undef115, oldX3^0 -> undef116, oldX4^0 -> undef117, x0^0 -> (0 + undef115), x1^0 -> (0 + undef116)}> (0 + x0^0), oldX1^0 -> undef121, oldX2^0 -> undef122, oldX3^0 -> undef123, oldX4^0 -> undef124, x0^0 -> (0 + undef122), x1^0 -> (0 + undef123)}> undef127, oldX1^0 -> undef128, oldX2^0 -> undef129, x0^0 -> (0 + undef127), x1^0 -> (0 + undef129)}> undef134, oldX1^0 -> undef135, x0^0 -> (0 + undef134), x1^0 -> (0 + undef135)}> Fresh variables: undef3, undef4, undef8, undef9, undef15, undef16, undef17, undef22, undef23, undef24, undef29, undef30, undef31, undef38, undef39, undef43, undef44, undef50, undef51, undef57, undef58, undef64, undef65, undef71, undef72, undef78, undef79, undef87, undef88, undef92, undef93, undef99, undef100, undef107, undef108, undef109, undef110, undef114, undef115, undef116, undef117, undef121, undef122, undef123, undef124, undef127, undef128, undef129, undef134, undef135, Undef variables: undef3, undef4, undef8, undef9, undef15, undef16, undef17, undef22, undef23, undef24, undef29, undef30, undef31, undef38, undef39, undef43, undef44, undef50, undef51, undef57, undef58, undef64, undef65, undef71, undef72, undef78, undef79, undef87, undef88, undef92, undef93, undef99, undef100, undef107, undef108, undef109, undef110, undef114, undef115, undef116, undef117, undef121, undef122, undef123, undef124, undef127, undef128, undef129, undef134, undef135, Abstraction variables: Exit nodes: Accepting locations: Asserts: Preprocessed LLVMGraph Init Location: 0 Transitions: (0 + undef3), x1^0 -> (0 + undef4)}> (0 + undef8), x1^0 -> (~(1) + undef9)}> (0 + undef38), x1^0 -> (0 + undef39)}> (0 + undef43), x1^0 -> (0 + undef44)}> (0 + undef50), x1^0 -> (0 + undef51)}> (0 + undef38), x1^0 -> (0 + undef39)}> (0 + undef87), x1^0 -> (0 + undef88)}> (0 + undef92), x1^0 -> (0 + undef93)}> (0 + undef87), x1^0 -> (0 + undef88)}> (0 + undef108), x1^0 -> (0 + undef109)}> (0 + undef115), x1^0 -> (0 + undef116)}> (0 + undef122), x1^0 -> (0 + undef123)}> (0 + undef127), x1^0 -> (0 + undef129)}> (0 + undef92), x1^0 -> (0 + undef93)}> (0 + undef87), x1^0 -> (0 + undef88)}> (0 + undef108), x1^0 -> (0 + undef109)}> (0 + undef115), x1^0 -> (0 + undef116)}> (0 + undef122), x1^0 -> (0 + undef123)}> (0 + undef127), x1^0 -> (0 + undef129)}> (0 + undef108), x1^0 -> (0 + undef109)}> (0 + undef115), x1^0 -> (0 + undef116)}> (0 + undef122), x1^0 -> (0 + undef123)}> (0 + undef127), x1^0 -> (0 + undef129)}> (0 + undef3), x1^0 -> (0 + undef4)}> (0 + undef8), x1^0 -> (~(1) + undef9)}> (0 + undef43), x1^0 -> (0 + undef44)}> (0 + undef50), x1^0 -> (0 + undef51)}> (0 + undef38), x1^0 -> (0 + undef39)}> (0 + undef43), x1^0 -> (0 + undef44)}> (0 + undef50), x1^0 -> (0 + undef51)}> (0 + undef38), x1^0 -> (0 + undef39)}> (0 + undef87), x1^0 -> (0 + undef88)}> Fresh variables: undef3, undef4, undef8, undef9, undef15, undef16, undef17, undef22, undef23, undef24, undef29, undef30, undef31, undef38, undef39, undef43, undef44, undef50, undef51, undef57, undef58, undef64, undef65, undef71, undef72, undef78, undef79, undef87, undef88, undef92, undef93, undef99, undef100, undef107, undef108, undef109, undef110, undef114, undef115, undef116, undef117, undef121, undef122, undef123, undef124, undef127, undef128, undef129, undef134, undef135, Undef variables: undef3, undef4, undef8, undef9, undef15, undef16, undef17, undef22, undef23, undef24, undef29, undef30, undef31, undef38, undef39, undef43, undef44, undef50, undef51, undef57, undef58, undef64, undef65, undef71, undef72, undef78, undef79, undef87, undef88, undef92, undef93, undef99, undef100, undef107, undef108, undef109, undef110, undef114, undef115, undef116, undef117, undef121, undef122, undef123, undef124, undef127, undef128, undef129, undef134, undef135, Abstraction variables: Exit nodes: Accepting locations: Asserts: ************************************************************* ******************************************************************************************* *********************** WORKING TRANSITION SYSTEM (DAG) *********************** ******************************************************************************************* Init Location: 0 Graph 0: Transitions: Variables: Graph 1: Transitions: undef92, x1^0 -> undef93, rest remain the same}> undef127, x1^0 -> undef129, rest remain the same}> undef127, x1^0 -> undef129, rest remain the same}> undef8, x1^0 -> -1 + undef9, rest remain the same}> undef43, x1^0 -> undef44, rest remain the same}> undef50, x1^0 -> undef51, rest remain the same}> undef43, x1^0 -> undef44, rest remain the same}> undef50, x1^0 -> undef51, rest remain the same}> Variables: x0^0, x1^0 Graph 2: Transitions: Variables: Precedence: Graph 0 Graph 1 undef8, x1^0 -> -1 + undef9, rest remain the same}> undef43, x1^0 -> undef44, rest remain the same}> undef50, x1^0 -> undef51, rest remain the same}> undef92, x1^0 -> undef93, rest remain the same}> undef127, x1^0 -> undef129, rest remain the same}> Graph 2 undef3, x1^0 -> undef4, rest remain the same}> undef38, x1^0 -> undef39, rest remain the same}> undef38, x1^0 -> undef39, rest remain the same}> undef87, x1^0 -> undef88, rest remain the same}> undef87, x1^0 -> undef88, rest remain the same}> undef108, x1^0 -> undef109, rest remain the same}> undef115, x1^0 -> undef116, rest remain the same}> undef122, x1^0 -> undef123, rest remain the same}> undef87, x1^0 -> undef88, rest remain the same}> undef108, x1^0 -> undef109, rest remain the same}> undef115, x1^0 -> undef116, rest remain the same}> undef122, x1^0 -> undef123, rest remain the same}> undef108, x1^0 -> undef109, rest remain the same}> undef115, x1^0 -> undef116, rest remain the same}> undef122, x1^0 -> undef123, rest remain the same}> undef3, x1^0 -> undef4, rest remain the same}> undef38, x1^0 -> undef39, rest remain the same}> undef38, x1^0 -> undef39, rest remain the same}> undef87, x1^0 -> undef88, rest remain the same}> Map Locations to Subgraph: ( 0 , 0 ) ( 2 , 2 ) ( 3 , 1 ) ( 4 , 1 ) ( 8 , 1 ) ******************************************************************************************* ******************************** CHECKING ASSERTIONS ******************************** ******************************************************************************************* Proving termination of subgraph 0 Proving termination of subgraph 1 Checking unfeasibility... Time used: 0.011879 Checking conditional termination of SCC {l3, l4, l8}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.004072s LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.032327s Trying to remove transition: undef50, x1^0 -> undef51, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.013754s Time used: 0.010414 Trying to remove transition: undef43, x1^0 -> undef44, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.012997s Time used: 0.010853 Trying to remove transition: undef50, x1^0 -> undef51, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.012787s Time used: 0.010666 Trying to remove transition: undef43, x1^0 -> undef44, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.014239s Time used: 0.012117 Trying to remove transition: undef8, x1^0 -> -1 + undef9, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.012786s Time used: 0.010636 Trying to remove transition: undef127, x1^0 -> undef129, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.011956s Time used: 0.01013 Trying to remove transition: undef127, x1^0 -> undef129, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.012378s Time used: 0.010184 Trying to remove transition: undef92, x1^0 -> undef93, rest remain the same}> Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.012814s Time used: 0.010601 Solving with 1 template(s). LOG: CALL solveNonLinearGetFirstSolution LOG: RETURN solveNonLinearGetFirstSolution - Elapsed time: 0.063464s Time used: 0.061021 Improving Solution with cost 1 ... LOG: CALL solveNonLinearGetNextSolution LOG: RETURN solveNonLinearGetNextSolution - Elapsed time: 0.080940s Time used: 0.080938 LOG: SAT solveNonLinear - Elapsed time: 0.144404s Cost: 1; Total time: 0.141959 Failed at location 8: 1 <= x1^0 Before Improving: Quasi-invariant at l8: 1 <= x1^0 Optimizing invariants... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.007465s Remaining time after improvement: 0.993935 Termination implied by a set of quasi-invariant(s): Quasi-invariant at l8: 1 <= x1^0 [ Invariant Graph ] Strengthening and disabling transitions... LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef43, x1^0 -> undef44, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef50, x1^0 -> undef51, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef43, x1^0 -> undef44, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef50, x1^0 -> undef51, rest remain the same}> [ Termination Graph ] Strengthening and disabling transitions... > It's unfeasible. Removing transition: undef50, x1^0 -> undef51, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef43, x1^0 -> undef44, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility Strengthening transition (result): undef50, x1^0 -> undef51, rest remain the same}> LOG: CALL solverLinear in Graph for feasibility LOG: RETURN solveLinear in Graph for feasibility It's unfeasible. Removing transition: undef43, x1^0 -> undef44, rest remain the same}> New Graphs: Transitions: undef127, x1^0 -> undef129, rest remain the same}> undef127, x1^0 -> undef129, rest remain the same}> undef8, x1^0 -> -1 + undef9, rest remain the same}> undef127, x1^0 -> undef129, rest remain the same}> undef127, x1^0 -> undef129, rest remain the same}> undef8, x1^0 -> -1 + undef9, rest remain the same}> Variables: x0^0, x1^0 Checking conditional termination of SCC {l3}... LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.007372s Ranking function: -2 + x1^0 New Graphs: Calling Safety with literal 1 <= x1^0 and entry LOG: CALL check - Post:1 <= x1^0 - Process 1 * Exit transition: * Postcondition : 1 <= x1^0 LOG: CALL solveLinear LOG: RETURN solveLinear - Elapsed time: 0.000550s > Postcondition is not implied! LOG: RETURN check - Elapsed time: 0.000577s INVARIANTS: 8: Quasi-INVARIANTS to narrow Graph: 8: 1 <= x1^0 , It's unfeasible. Removing transition: undef92, x1^0 -> undef93, rest remain the same}> Narrowing transition: undef127, x1^0 -> undef129, rest remain the same}> Narrowing transition: undef127, x1^0 -> undef129, rest remain the same}> Narrowing transition: undef8, x1^0 -> -1 + undef9, rest remain the same}> It's unfeasible. Removing transition: undef43, x1^0 -> undef44, rest remain the same}> It's unfeasible. Removing transition: undef50, x1^0 -> undef51, rest remain the same}> Narrowing transition: undef43, x1^0 -> undef44, rest remain the same}> LOG: Narrow transition size 1 Narrowing transition: undef50, x1^0 -> undef51, rest remain the same}> LOG: Narrow transition size 1 invGraph after Narrowing: Transitions: undef43, x1^0 -> undef44, rest remain the same}> undef50, x1^0 -> undef51, rest remain the same}> Variables: x0^0, x1^0 Proving termination of subgraph 2 Analyzing SCC {l2}... No cycles found. Program Terminates