0.00/0.38 YES 0.00/0.38 0.00/0.38 Solver Timeout: 4 0.00/0.38 Global Timeout: 300 0.00/0.38 Maximum number of concurrent processes: 900 0.00/0.38 ******************************************************************************************* 0.00/0.38 *********************** UNPROCESSED TRANSITION SYSTEMS PER FUNCTION *********************** 0.00/0.38 ******************************************************************************************* 0.00/0.38 0.00/0.38 0.00/0.38 List of LLVMGraphs + assumeNodes + staticAssertNodes [1] : 0.00/0.38 0.00/0.38 +++++++++++++++++++++++++++++++ main +++++++++++++++++++++++++++++++ 0.00/0.38 + + 0.00/0.38 Init Location: 0 0.00/0.38 Transitions: 0.00/0.38 0, main_x -> ¿functionCall(__VERIFIER_nondet_int), main_y -> ¿functionCall(__VERIFIER_nondet_int)}> 0.00/0.38 0.00/0.38 = 2))> 0.00/0.38 = 2)> 0.00/0.38 (main_x - 1), main_y -> (main_y + main_x)}> 0.00/0.38 0.00/0.38 = (main_x + 1)))> 0.00/0.38 = (main_x + 1))> 0.00/0.38 0.00/0.38 0.00/0.38 (main_y - 1)}> 0.00/0.38 0.00/0.38 = (main_x + 3)))> 0.00/0.38 = (main_x + 3))> 0.00/0.38 0.00/0.38 0.00/0.38 (main_x + 1), main_y -> (main_y - 2)}> 0.00/0.38 0.00/0.38 (main_y - 1)}> 0.00/0.38 0.00/0.38 (main_x - 1), main_y -> (main_y - main_x)}> 0.00/0.38 0.00/0.38 0}> 0.00/0.38 0.00/0.38 Fresh variables: 0.00/0.38 0.00/0.38 Undef variables: 0.00/0.38 0.00/0.38 Abstraction variables: 0.00/0.38 0.00/0.38 Exit nodes: 0.00/0.38 0.00/0.38 Accepting locations: 0.00/0.38 0.00/0.38 Asserts: 0.00/0.38 0.00/0.38 + Assume Nodes [0]: ++++++++++++++++++++++++++++++++++++++++++++++++ 0.00/0.38 0.00/0.38 + Static Assert Nodes [0]: +++++++++++++++++++++++++++++++++++++++++ 0.00/0.38 0.00/0.38 + After preprocess (paralelization): ++++++++++++++++++++++++++++++ 0.00/0.38 0.00/0.38 Init Location: 0 0.00/0.38 Transitions: 0.00/0.38 0}> 0.00/0.38 ¿functionCall(__VERIFIER_nondet_int)}> 0.00/0.38 varCall_1}> 0.00/0.38 ¿functionCall(__VERIFIER_nondet_int)}> 0.00/0.38 varCall_2}> 0.00/0.38 0.00/0.38 = 2)> 0.00/0.38 = 2))> 0.00/0.38 (main_x - 1), main_y -> (main_y + main_x)}> 0.00/0.38 0.00/0.38 = (main_x + 1))> 0.00/0.38 = (main_x + 1)))> 0.00/0.38 ¿functionCall(__VERIFIER_nondet_int)}> 0.00/0.38 0.00/0.38 0.00/0.38 (main_y - 1)}> 0.00/0.38 0.00/0.38 = (main_x + 3))> 0.00/0.38 = (main_x + 3)))> 0.00/0.38 ¿functionCall(__VERIFIER_nondet_int)}> 0.00/0.38 0.00/0.38 0.00/0.38 (main_x + 1), main_y -> (main_y - 2)}> 0.00/0.38 0.00/0.38 (main_y - 1)}> 0.00/0.38 0.00/0.38 (main_x - 1), main_y -> (main_y - main_x)}> 0.00/0.38 0.00/0.38 0}> 0.00/0.38 0.00/0.38 Fresh variables: 0.00/0.38 0.00/0.38 Undef variables: 0.00/0.38 0.00/0.38 Abstraction variables: 0.00/0.38 0.00/0.38 Exit nodes: 0.00/0.38 18, 0.00/0.38 Accepting locations: 0.00/0.38 0.00/0.38 Asserts: 0.00/0.38 0.00/0.38 + + 0.00/0.38 +++++++++++++++++++++++++++++++ main +++++++++++++++++++++++++++++++ 0.00/0.38 0.00/0.38 0.00/0.38 Function Return and Parameters Information [2 functions]: 0.00/0.38 function name: __VERIFIER_nondet_int [1 return + 0 parameters] demangled: __VERIFIER_nondet_int 0.00/0.38 __VERIFIER_nondet_int__func_return_ [function result] : int 0.00/0.38 function name: main [1 return + 0 parameters] demangled: main 0.00/0.38 main__func_return_ [function result] : int 0.00/0.38 0.00/0.38 0.00/0.38 AST Ident Scanner Information [4 idents]: 0.00/0.38 __VERIFIER_nondet_int | function | [integer, ()] | | 0.00/0.38 main | function | [integer, ()] | 0.00/0.38 x | local variable | integer | | 0.00/0.38 y | local variable | integer | | 0.00/0.38 0.00/0.38 Main function: main 0.00/0.38 Preprocessed LLVMGraph 0.00/0.38 Init Location: 0 0.00/0.38 Transitions: 0.00/0.38 = 2), par{main_x -> (undef5 - 1), main_y -> (undef6 + (undef5 - 1))}> 0.00/0.38 = 2)), par{main_x -> undef5, main_y -> undef6}> 0.00/0.38 = (main_x + 1)) /\ (undef7 = 0) /\ ((main_x - 1) >= 2), par{main_x -> ((main_x - 1) - 1), main_y -> ((main_y - (main_x - 1)) + ((main_x - 1) - 1))}> 0.00/0.38 = (main_x + 1)) /\ (undef7 = 0) /\ not(((main_x - 1) >= 2)), par{main_x -> (main_x - 1), main_y -> (main_y - (main_x - 1))}> 0.00/0.38 = (main_x + 1)) /\ (undef7 = 1), par{main_y -> (main_y - 1)}> 0.00/0.38 = (main_x + 1))) /\ ((main_x - 1) >= 2), par{main_x -> ((main_x - 1) - 1), main_y -> ((main_y - (main_x - 1)) + ((main_x - 1) - 1))}> 0.00/0.38 = (main_x + 1))) /\ not(((main_x - 1) >= 2)), par{main_x -> (main_x - 1), main_y -> (main_y - (main_x - 1))}> 0.00/0.38 = (main_x + 3)) /\ (undef8 = 0), par{main_y -> (main_y - 1)}> 0.00/0.38 = (main_x + 3)) /\ (undef8 = 1), par{main_x -> (main_x + 1), main_y -> (main_y - 2)}> 0.00/0.38 = (main_x + 3))), par{main_y -> (main_y - 1)}> 0.00/0.38 0.00/0.38 Fresh variables: 0.00/0.38 undef5, undef6, undef7, undef8, 0.00/0.38 0.00/0.38 Undef variables: 0.00/0.38 undef5, undef6, undef7, undef8, 0.00/0.38 0.00/0.38 Abstraction variables: 0.00/0.38 0.00/0.38 Exit nodes: 0.00/0.38 18, 0.00/0.38 Accepting locations: 0.00/0.38 0.00/0.38 Asserts: 0.00/0.38 0.00/0.38 ************************************************************* 0.00/0.38 ******************************************************************************************* 0.00/0.38 *********************** WORKING TRANSITION SYSTEM (DAG) *********************** 0.00/0.38 ******************************************************************************************* 0.00/0.38 0.00/0.38 Init Location: 0 0.00/0.38 Graph 0: 0.00/0.38 Transitions: 0.00/0.38 Variables: 0.00/0.38 0.00/0.38 Graph 1: 0.00/0.38 Transitions: 0.00/0.38 -2 + main_x, main_y -> -1 + main_y, rest remain the same}> 0.00/0.38 -1 + main_y, rest remain the same}> 0.00/0.38 -2 + main_x, main_y -> -1 + main_y, rest remain the same}> 0.00/0.38 -1 + main_y, rest remain the same}> 0.00/0.38 1 + main_x, main_y -> -2 + main_y, rest remain the same}> 0.00/0.38 -1 + main_y, rest remain the same}> 0.00/0.38 Variables: 0.00/0.38 main_x, main_y 0.00/0.38 0.00/0.38 Graph 2: 0.00/0.38 Transitions: 0.00/0.38 Variables: 0.00/0.38 0.00/0.38 Precedence: 0.00/0.38 Graph 0 0.00/0.38 0.00/0.38 Graph 1 0.00/0.38 -1 + undef5, main_y -> -1 + undef5 + undef6, rest remain the same}> 0.00/0.38 0.00/0.38 Graph 2 0.00/0.38 undef5, main_y -> undef6, rest remain the same}> 0.00/0.38 -1 + main_x, main_y -> 1 - main_x + main_y, rest remain the same}> 0.00/0.38 -1 + main_x, main_y -> 1 - main_x + main_y, rest remain the same}> 0.00/0.38 0.00/0.38 Map Locations to Subgraph: 0.00/0.38 ( 0 , 0 ) 0.00/0.38 ( 5 , 1 ) 0.00/0.38 ( 9 , 1 ) 0.00/0.38 ( 18 , 2 ) 0.00/0.38 0.00/0.38 ******************************************************************************************* 0.00/0.38 ******************************** CHECKING ASSERTIONS ******************************** 0.00/0.38 ******************************************************************************************* 0.00/0.38 0.00/0.38 Proving termination of subgraph 0 0.00/0.38 Proving termination of subgraph 1 0.00/0.38 Checking unfeasibility... 0.00/0.38 Time used: 0.033838 0.00/0.38 0.00/0.38 Checking conditional termination of SCC {l5, l9}... 0.00/0.38 0.00/0.38 LOG: CALL solveLinear 0.00/0.38 0.00/0.38 LOG: RETURN solveLinear - Elapsed time: 0.003881s 0.00/0.38 Ranking function: -19 - 3*main_x + 7*main_y 0.00/0.38 New Graphs: 0.00/0.38 Transitions: 0.00/0.38 -1 + main_y, rest remain the same}> 0.00/0.38 -2 + main_x, main_y -> -1 + main_y, rest remain the same}> 0.00/0.38 -1 + main_y, rest remain the same}> 0.00/0.38 1 + main_x, main_y -> -2 + main_y, rest remain the same}> 0.00/0.38 -1 + main_y, rest remain the same}> 0.00/0.38 Variables: 0.00/0.38 main_x, main_y 0.00/0.38 Checking conditional termination of SCC {l5, l9}... 0.00/0.38 0.00/0.38 LOG: CALL solveLinear 0.00/0.38 0.00/0.38 LOG: RETURN solveLinear - Elapsed time: 0.001993s 0.00/0.38 0.00/0.38 LOG: CALL solveLinear 0.00/0.38 0.00/0.38 LOG: RETURN solveLinear - Elapsed time: 0.153266s 0.00/0.38 [2272 : 2274] 0.00/0.38 [2272 : 2275] 0.00/0.38 Successful child: 2274 0.00/0.38 [ Invariant Graph ] 0.00/0.38 Strengthening and disabling transitions... 0.00/0.38 0.00/0.38 LOG: CALL solverLinear in Graph for feasibility 0.00/0.38 0.00/0.38 LOG: RETURN solveLinear in Graph for feasibility 0.00/0.38 Strengthening transition (result): 0.00/0.38 -2 + main_x, main_y -> -1 + main_y, rest remain the same}> 0.00/0.38 0.00/0.38 LOG: CALL solverLinear in Graph for feasibility 0.00/0.38 0.00/0.38 LOG: RETURN solveLinear in Graph for feasibility 0.00/0.38 Strengthening transition (result): 0.00/0.38 -1 + main_y, rest remain the same}> 0.00/0.38 0.00/0.38 LOG: CALL solverLinear in Graph for feasibility 0.00/0.38 0.00/0.38 LOG: RETURN solveLinear in Graph for feasibility 0.00/0.38 Strengthening transition (result): 0.00/0.38 -2 + main_x, main_y -> -1 + main_y, rest remain the same}> 0.00/0.38 0.00/0.38 LOG: CALL solverLinear in Graph for feasibility 0.00/0.38 0.00/0.38 LOG: RETURN solveLinear in Graph for feasibility 0.00/0.38 Strengthening transition (result): 0.00/0.38 -1 + main_y, rest remain the same}> 0.00/0.38 0.00/0.38 LOG: CALL solverLinear in Graph for feasibility 0.00/0.38 0.00/0.38 LOG: RETURN solveLinear in Graph for feasibility 0.00/0.38 Strengthening transition (result): 0.00/0.38 1 + main_x, main_y -> -2 + main_y, rest remain the same}> 0.00/0.38 0.00/0.38 LOG: CALL solverLinear in Graph for feasibility 0.00/0.38 0.00/0.38 LOG: RETURN solveLinear in Graph for feasibility 0.00/0.38 Strengthening transition (result): 0.00/0.38 -1 + main_y, rest remain the same}> 0.00/0.38 [ Termination Graph ] 0.00/0.38 Strengthening and disabling transitions... 0.00/0.38 0.00/0.38 LOG: CALL solverLinear in Graph for feasibility 0.00/0.38 0.00/0.38 LOG: RETURN solveLinear in Graph for feasibility 0.00/0.38 Strengthening transition (result): 0.00/0.38 -1 + main_y, rest remain the same}> 0.00/0.38 0.00/0.38 LOG: CALL solverLinear in Graph for feasibility 0.00/0.38 0.00/0.38 LOG: RETURN solveLinear in Graph for feasibility 0.00/0.38 Strengthening transition (result): 0.00/0.38 -2 + main_x, main_y -> -1 + main_y, rest remain the same}> 0.00/0.38 0.00/0.38 LOG: CALL solverLinear in Graph for feasibility 0.00/0.38 0.00/0.38 LOG: RETURN solveLinear in Graph for feasibility 0.00/0.38 Strengthening transition (result): 0.00/0.38 -1 + main_y, rest remain the same}> 0.00/0.38 0.00/0.38 LOG: CALL solverLinear in Graph for feasibility 0.00/0.38 0.00/0.38 LOG: RETURN solveLinear in Graph for feasibility 0.00/0.38 Strengthening transition (result): 0.00/0.38 1 + main_x, main_y -> -2 + main_y, rest remain the same}> 0.00/0.38 0.00/0.38 LOG: CALL solverLinear in Graph for feasibility 0.00/0.38 0.00/0.38 LOG: RETURN solveLinear in Graph for feasibility 0.00/0.38 Strengthening transition (result): 0.00/0.38 -1 + main_y, rest remain the same}> 0.00/0.38 Ranking function: 1 + main_x + main_y 0.00/0.38 New Graphs: 0.00/0.38 Transitions: 0.00/0.38 -2 + main_x, main_y -> -1 + main_y, rest remain the same}> 0.00/0.38 Variables: 0.00/0.38 main_x, main_y 0.00/0.38 Checking conditional termination of SCC {l5}... 0.00/0.38 0.00/0.38 LOG: CALL solveLinear 0.00/0.38 0.00/0.38 LOG: RETURN solveLinear - Elapsed time: 0.001015s 0.00/0.38 Ranking function: main_x - main_y 0.00/0.38 New Graphs: 0.00/0.38 INVARIANTS: 0.00/0.38 5: 1 <= main_x , 0.00/0.38 9: 1 <= main_x , 0.00/0.38 Quasi-INVARIANTS to narrow Graph: 0.00/0.38 5: 0.00/0.38 9: 0.00/0.38 Proving termination of subgraph 2 0.00/0.38 Analyzing SCC {l18}... 0.00/0.38 No cycles found. 0.00/0.38 0.00/0.38 Program Terminates 0.00/0.38 EOF