2.71/1.43 YES 2.71/1.43 2.71/1.43 Solver Timeout: 4 2.71/1.43 Global Timeout: 300 2.71/1.43 Maximum number of concurrent processes: 900 2.71/1.43 ******************************************************************************************* 2.71/1.43 *********************** UNPROCESSED TRANSITION SYSTEMS PER FUNCTION *********************** 2.71/1.43 ******************************************************************************************* 2.71/1.43 2.71/1.43 2.71/1.43 List of LLVMGraphs + assumeNodes + staticAssertNodes [1] : 2.71/1.43 2.71/1.43 +++++++++++++++++++++++++++++++ main +++++++++++++++++++++++++++++++ 2.71/1.43 + + 2.71/1.43 Init Location: 0 2.71/1.43 Transitions: 2.71/1.43 0, main_x -> ¿functionCall(__VERIFIER_nondet_int), main_y -> ¿functionCall(__VERIFIER_nondet_int), main_z -> ¿functionCall(__VERIFIER_nondet_int)}> 2.71/1.43 2.71/1.43 = 0))> 2.71/1.43 = 0)> 2.71/1.43 (main_x + main_y), main_y -> main_z, main_z -> (~(main_z) - 1)}> 2.71/1.43 2.71/1.43 0}> 2.71/1.43 2.71/1.43 Fresh variables: 2.71/1.43 2.71/1.43 Undef variables: 2.71/1.43 2.71/1.43 Abstraction variables: 2.71/1.43 2.71/1.43 Exit nodes: 2.71/1.43 2.71/1.43 Accepting locations: 2.71/1.43 2.71/1.43 Asserts: 2.71/1.43 2.71/1.43 + Assume Nodes [0]: ++++++++++++++++++++++++++++++++++++++++++++++++ 2.71/1.43 2.71/1.43 + Static Assert Nodes [0]: +++++++++++++++++++++++++++++++++++++++++ 2.71/1.43 2.71/1.43 + After preprocess (paralelization): ++++++++++++++++++++++++++++++ 2.71/1.43 2.71/1.43 Init Location: 0 2.71/1.43 Transitions: 2.71/1.43 0}> 2.71/1.43 ¿functionCall(__VERIFIER_nondet_int)}> 2.71/1.43 varCall_1}> 2.71/1.43 ¿functionCall(__VERIFIER_nondet_int)}> 2.71/1.43 varCall_2}> 2.71/1.43 ¿functionCall(__VERIFIER_nondet_int)}> 2.71/1.43 varCall_3}> 2.71/1.43 2.71/1.43 = 0)> 2.71/1.43 = 0))> 2.71/1.43 (main_x + main_y), main_y -> main_z, main_z -> (~(main_z) - 1)}> 2.71/1.43 2.71/1.43 0}> 2.71/1.43 2.71/1.43 Fresh variables: 2.71/1.43 2.71/1.43 Undef variables: 2.71/1.43 2.71/1.43 Abstraction variables: 2.71/1.43 2.71/1.43 Exit nodes: 2.71/1.43 6, 2.71/1.43 Accepting locations: 2.71/1.43 2.71/1.43 Asserts: 2.71/1.43 2.71/1.43 + + 2.71/1.43 +++++++++++++++++++++++++++++++ main +++++++++++++++++++++++++++++++ 2.71/1.43 2.71/1.43 2.71/1.43 Function Return and Parameters Information [2 functions]: 2.71/1.43 function name: __VERIFIER_nondet_int [1 return + 0 parameters] demangled: __VERIFIER_nondet_int 2.71/1.43 __VERIFIER_nondet_int__func_return_ [function result] : int 2.71/1.43 function name: main [1 return + 0 parameters] demangled: main 2.71/1.43 main__func_return_ [function result] : int 2.71/1.43 2.71/1.43 2.71/1.43 AST Ident Scanner Information [5 idents]: 2.71/1.43 __VERIFIER_nondet_int | function | [integer, ()] | | 2.71/1.43 main | function | [integer, ()] | 2.71/1.43 x | local variable | integer | | 2.71/1.43 y | local variable | integer | | 2.71/1.43 z | local variable | integer | | 2.71/1.43 2.71/1.43 Main function: main 2.71/1.43 Preprocessed LLVMGraph 2.71/1.43 Init Location: 0 2.71/1.43 Transitions: 2.71/1.43 2.71/1.43 = 0), par{main_x -> (main_x + main_y), main_y -> main_z, main_z -> (~(main_z) - 1)}> 2.71/1.43 = 0))> 2.71/1.43 2.71/1.43 Fresh variables: 2.71/1.43 undef4, undef5, undef6, 2.71/1.43 2.71/1.43 Undef variables: 2.71/1.43 undef4, undef5, undef6, 2.71/1.43 2.71/1.43 Abstraction variables: 2.71/1.43 2.71/1.43 Exit nodes: 2.71/1.43 6, 2.71/1.43 Accepting locations: 2.71/1.43 2.71/1.43 Asserts: 2.71/1.43 2.71/1.43 ************************************************************* 2.71/1.43 ******************************************************************************************* 2.71/1.43 *********************** WORKING TRANSITION SYSTEM (DAG) *********************** 2.71/1.43 ******************************************************************************************* 2.71/1.43 2.71/1.43 Init Location: 0 2.71/1.43 Graph 0: 2.71/1.43 Transitions: 2.71/1.43 Variables: 2.71/1.43 2.71/1.43 Graph 1: 2.71/1.43 Transitions: 2.71/1.43 main_x + main_y, main_y -> main_z, main_z -> -1 - main_z, rest remain the same}> 2.71/1.43 Variables: 2.71/1.43 main_x, main_y, main_z 2.71/1.43 2.71/1.43 Graph 2: 2.71/1.43 Transitions: 2.71/1.43 Variables: 2.71/1.43 2.71/1.43 Precedence: 2.71/1.43 Graph 0 2.71/1.43 2.71/1.43 Graph 1 2.71/1.43 2.71/1.43 2.71/1.43 Graph 2 2.71/1.43 2.71/1.43 2.71/1.43 Map Locations to Subgraph: 2.71/1.43 ( 0 , 0 ) 2.71/1.43 ( 2 , 1 ) 2.71/1.43 ( 6 , 2 ) 2.71/1.43 2.71/1.43 ******************************************************************************************* 2.71/1.43 ******************************** CHECKING ASSERTIONS ******************************** 2.71/1.43 ******************************************************************************************* 2.71/1.43 2.71/1.43 Proving termination of subgraph 0 2.71/1.43 Proving termination of subgraph 1 2.71/1.43 Checking unfeasibility... 2.71/1.43 Time used: 0.002499 2.71/1.43 2.71/1.43 Checking conditional termination of SCC {l2}... 2.71/1.43 2.71/1.43 LOG: CALL solveLinear 2.71/1.43 2.71/1.43 LOG: RETURN solveLinear - Elapsed time: 0.000734s 2.71/1.43 2.71/1.43 LOG: CALL solveLinear 2.71/1.43 2.71/1.43 LOG: RETURN solveLinear - Elapsed time: 0.001771s 2.71/1.43 [42646 : 42648] 2.71/1.43 [42646 : 42649] 2.71/1.43 Successful child: 42648 2.71/1.43 [ Invariant Graph ] 2.71/1.43 Strengthening and disabling transitions... 2.71/1.43 2.71/1.43 LOG: CALL solverLinear in Graph for feasibility 2.71/1.43 2.71/1.43 LOG: RETURN solveLinear in Graph for feasibility 2.71/1.43 It's unfeasible. Removing transition: 2.71/1.43 main_x + main_y, main_y -> main_z, main_z -> -1 - main_z, rest remain the same}> 2.71/1.43 [ Termination Graph ] 2.71/1.43 Strengthening and disabling transitions... 2.71/1.43 > It's unfeasible. Removing transition: 2.71/1.43 main_x + main_y, main_y -> main_z, main_z -> -1 - main_z, rest remain the same}> 2.71/1.43 New Graphs: 2.71/1.43 2.71/1.43 LOG: CALL check - Post:1 + main_x <= 0 - Process 1 2.71/1.43 * Exit transition: 2.71/1.43 * Postcondition : 1 + main_x <= 0 2.71/1.43 2.71/1.43 LOG: CALL solveLinear 2.71/1.43 2.71/1.43 LOG: RETURN solveLinear - Elapsed time: 0.000568s 2.71/1.43 > Postcondition is not implied! 2.71/1.43 2.71/1.43 LOG: RETURN check - Elapsed time: 0.000681s 2.71/1.43 INVARIANTS: 2.71/1.43 2: 2.71/1.43 Quasi-INVARIANTS to narrow Graph: 2.71/1.43 2: 1 + main_x <= 0 , 2.71/1.43 Narrowing transition: 2.71/1.43 main_x + main_y, main_y -> main_z, main_z -> -1 - main_z, rest remain the same}> 2.71/1.43 2.71/1.43 LOG: Narrow transition size 1 2.71/1.43 invGraph after Narrowing: 2.71/1.43 Transitions: 2.71/1.43 main_x + main_y, main_y -> main_z, main_z -> -1 - main_z, rest remain the same}> 2.71/1.43 Variables: 2.71/1.43 main_x, main_y, main_z 2.71/1.43 Checking conditional termination of SCC {l2}... 2.71/1.43 2.71/1.43 LOG: CALL solveLinear 2.71/1.43 2.71/1.43 LOG: RETURN solveLinear - Elapsed time: 0.000702s 2.71/1.43 2.71/1.43 LOG: CALL solveLinear 2.71/1.43 2.71/1.43 LOG: RETURN solveLinear - Elapsed time: 0.001879s 2.71/1.43 [42646 : 42653] 2.71/1.43 [42646 : 42654] 2.71/1.43 Successful child: 42653 2.71/1.43 [ Invariant Graph ] 2.71/1.43 Strengthening and disabling transitions... 2.71/1.43 2.71/1.43 LOG: CALL solverLinear in Graph for feasibility 2.71/1.43 2.71/1.43 LOG: RETURN solveLinear in Graph for feasibility 2.71/1.43 Strengthening transition (result): 2.71/1.43 main_x + main_y, main_y -> main_z, main_z -> -1 - main_z, rest remain the same}> 2.71/1.43 [ Termination Graph ] 2.71/1.43 Strengthening and disabling transitions... 2.71/1.43 2.71/1.43 LOG: CALL solverLinear in Graph for feasibility 2.71/1.43 2.71/1.43 LOG: RETURN solveLinear in Graph for feasibility 2.71/1.43 Strengthening transition (result): 2.71/1.43 main_x + main_y, main_y -> main_z, main_z -> -1 - main_z, rest remain the same}> 2.71/1.43 Ranking function: 1226 + 2*main_x + 2*main_y + main_z 2.71/1.43 New Graphs: 2.71/1.43 [42646 : 42658] 2.71/1.43 [42646 : 42659] 2.71/1.43 INVARIANTS: 2.71/1.43 2: 2.71/1.43 Quasi-INVARIANTS to narrow Graph: 2.71/1.43 2: 0 <= 613 + main_x + main_y , 0 <= 613 + main_y + main_z , 2.71/1.43 Narrowing transition: 2.71/1.43 main_x + main_y, main_y -> main_z, main_z -> -1 - main_z, rest remain the same}> 2.71/1.43 2.71/1.43 LOG: Narrow transition size 2 2.71/1.43 invGraph after Narrowing: 2.71/1.43 Transitions: 2.71/1.43 main_x + main_y, main_y -> main_z, main_z -> -1 - main_z, rest remain the same}> 2.71/1.43 main_x + main_y, main_y -> main_z, main_z -> -1 - main_z, rest remain the same}> 2.71/1.43 Variables: 2.71/1.43 main_x, main_y, main_z 2.71/1.43 Checking conditional termination of SCC {l2}... 2.71/1.43 2.71/1.43 LOG: CALL solveLinear 2.71/1.43 2.71/1.43 LOG: RETURN solveLinear - Elapsed time: 0.001240s 2.71/1.43 2.71/1.43 LOG: CALL solveLinear 2.71/1.43 2.71/1.43 LOG: RETURN solveLinear - Elapsed time: 0.009810s 2.71/1.43 Piecewise ranking function: min(0,main_x) 2.71/1.43 New Graphs: 2.71/1.43 Transitions: 2.71/1.43 main_x + main_y, main_y -> main_z, main_z -> -1 - main_z, rest remain the same}> 2.71/1.43 Variables: 2.71/1.43 main_x, main_y, main_z 2.71/1.43 Checking conditional termination of SCC {l2}... 2.71/1.43 2.71/1.43 LOG: CALL solveLinear 2.71/1.43 2.71/1.43 LOG: RETURN solveLinear - Elapsed time: 0.000951s 2.71/1.43 Ranking function: (613 / 614) + (1 / 307)*main_x + (1 / 614)*main_y 2.71/1.43 New Graphs: 2.71/1.43 Proving termination of subgraph 2 2.71/1.43 Analyzing SCC {l6}... 2.71/1.43 No cycles found. 2.71/1.43 2.71/1.43 Program Terminates 2.71/1.43 EOF