3.69/1.29 YES 3.69/1.29 3.69/1.29 Solver Timeout: 4 3.69/1.29 Global Timeout: 300 3.69/1.29 Maximum number of concurrent processes: 900 3.69/1.29 ******************************************************************************************* 3.69/1.29 *********************** UNPROCESSED TRANSITION SYSTEMS PER FUNCTION *********************** 3.69/1.29 ******************************************************************************************* 3.69/1.29 3.69/1.29 3.69/1.29 List of LLVMGraphs + assumeNodes + staticAssertNodes [1] : 3.69/1.29 3.69/1.29 +++++++++++++++++++++++++++++++ main +++++++++++++++++++++++++++++++ 3.69/1.29 + + 3.69/1.29 Init Location: 0 3.69/1.29 Transitions: 3.69/1.29 0, main_x -> ¿functionCall(__VERIFIER_nondet_int), main_y -> ¿functionCall(__VERIFIER_nondet_int)}> 3.69/1.29 3.69/1.29 0))> 3.69/1.29 0)> 3.69/1.29 (main_x + main_y), main_y -> (~(main_y) - 1)}> 3.69/1.29 3.69/1.29 0}> 3.69/1.29 3.69/1.29 Fresh variables: 3.69/1.29 3.69/1.29 Undef variables: 3.69/1.29 3.69/1.29 Abstraction variables: 3.69/1.29 3.69/1.29 Exit nodes: 3.69/1.29 3.69/1.29 Accepting locations: 3.69/1.29 3.69/1.29 Asserts: 3.69/1.29 3.69/1.29 + Assume Nodes [0]: ++++++++++++++++++++++++++++++++++++++++++++++++ 3.69/1.29 3.69/1.29 + Static Assert Nodes [0]: +++++++++++++++++++++++++++++++++++++++++ 3.69/1.29 3.69/1.29 + After preprocess (paralelization): ++++++++++++++++++++++++++++++ 3.69/1.29 3.69/1.29 Init Location: 0 3.69/1.29 Transitions: 3.69/1.29 0}> 3.69/1.29 ¿functionCall(__VERIFIER_nondet_int)}> 3.69/1.29 varCall_1}> 3.69/1.29 ¿functionCall(__VERIFIER_nondet_int)}> 3.69/1.29 varCall_2}> 3.69/1.29 3.69/1.29 0)> 3.69/1.29 0))> 3.69/1.29 (main_x + main_y), main_y -> (~(main_y) - 1)}> 3.69/1.29 3.69/1.29 0}> 3.69/1.29 3.69/1.29 Fresh variables: 3.69/1.29 3.69/1.29 Undef variables: 3.69/1.29 3.69/1.29 Abstraction variables: 3.69/1.29 3.69/1.29 Exit nodes: 3.69/1.29 6, 3.69/1.29 Accepting locations: 3.69/1.29 3.69/1.29 Asserts: 3.69/1.29 3.69/1.29 + + 3.69/1.29 +++++++++++++++++++++++++++++++ main +++++++++++++++++++++++++++++++ 3.69/1.29 3.69/1.29 3.69/1.29 Function Return and Parameters Information [2 functions]: 3.69/1.29 function name: __VERIFIER_nondet_int [1 return + 0 parameters] demangled: __VERIFIER_nondet_int 3.69/1.29 __VERIFIER_nondet_int__func_return_ [function result] : int 3.69/1.29 function name: main [1 return + 0 parameters] demangled: main 3.69/1.29 main__func_return_ [function result] : int 3.69/1.29 3.69/1.29 3.69/1.29 AST Ident Scanner Information [4 idents]: 3.69/1.29 __VERIFIER_nondet_int | function | [integer, ()] | | 3.69/1.29 main | function | [integer, ()] | 3.69/1.29 x | local variable | integer | | 3.69/1.29 y | local variable | integer | | 3.69/1.29 3.69/1.29 Main function: main 3.69/1.29 Preprocessed LLVMGraph 3.69/1.29 Init Location: 0 3.69/1.29 Transitions: 3.69/1.29 3.69/1.29 0), par{main_x -> (main_x + main_y), main_y -> (~(main_y) - 1)}> 3.69/1.29 0))> 3.69/1.29 3.69/1.29 Fresh variables: 3.69/1.29 undef3, undef4, 3.69/1.29 3.69/1.29 Undef variables: 3.69/1.29 undef3, undef4, 3.69/1.29 3.69/1.29 Abstraction variables: 3.69/1.29 3.69/1.29 Exit nodes: 3.69/1.29 6, 3.69/1.29 Accepting locations: 3.69/1.29 3.69/1.29 Asserts: 3.69/1.29 3.69/1.29 ************************************************************* 3.69/1.29 ******************************************************************************************* 3.69/1.29 *********************** WORKING TRANSITION SYSTEM (DAG) *********************** 3.69/1.29 ******************************************************************************************* 3.69/1.29 3.69/1.29 Init Location: 0 3.69/1.29 Graph 0: 3.69/1.29 Transitions: 3.69/1.29 Variables: 3.69/1.29 3.69/1.29 Graph 1: 3.69/1.29 Transitions: 3.69/1.29 main_x + main_y, main_y -> -1 - main_y, rest remain the same}> 3.69/1.29 Variables: 3.69/1.29 main_x, main_y 3.69/1.29 3.69/1.29 Graph 2: 3.69/1.29 Transitions: 3.69/1.29 Variables: 3.69/1.29 3.69/1.29 Precedence: 3.69/1.29 Graph 0 3.69/1.29 3.69/1.29 Graph 1 3.69/1.29 3.69/1.29 3.69/1.29 Graph 2 3.69/1.29 3.69/1.29 3.69/1.29 Map Locations to Subgraph: 3.69/1.29 ( 0 , 0 ) 3.69/1.29 ( 2 , 1 ) 3.69/1.29 ( 6 , 2 ) 3.69/1.29 3.69/1.29 ******************************************************************************************* 3.69/1.29 ******************************** CHECKING ASSERTIONS ******************************** 3.69/1.29 ******************************************************************************************* 3.69/1.29 3.69/1.29 Proving termination of subgraph 0 3.69/1.29 Proving termination of subgraph 1 3.69/1.29 Checking unfeasibility... 3.69/1.29 Time used: 0.002032 3.69/1.29 3.69/1.29 Checking conditional termination of SCC {l2}... 3.69/1.29 3.69/1.29 LOG: CALL solveLinear 3.69/1.29 3.69/1.29 LOG: RETURN solveLinear - Elapsed time: 0.000495s 3.69/1.29 3.69/1.29 LOG: CALL solveLinear 3.69/1.29 3.69/1.29 LOG: RETURN solveLinear - Elapsed time: 0.001440s 3.69/1.29 [2083 : 2084] 3.69/1.29 [2083 : 2085] 3.69/1.29 Successful child: 2084 3.69/1.29 [ Invariant Graph ] 3.69/1.29 Strengthening and disabling transitions... 3.69/1.29 3.69/1.29 LOG: CALL solverLinear in Graph for feasibility 3.69/1.29 3.69/1.29 LOG: RETURN solveLinear in Graph for feasibility 3.69/1.29 It's unfeasible. Removing transition: 3.69/1.29 main_x + main_y, main_y -> -1 - main_y, rest remain the same}> 3.69/1.29 [ Termination Graph ] 3.69/1.29 Strengthening and disabling transitions... 3.69/1.29 > It's unfeasible. Removing transition: 3.69/1.29 main_x + main_y, main_y -> -1 - main_y, rest remain the same}> 3.69/1.29 New Graphs: 3.69/1.29 3.69/1.29 LOG: CALL check - Post:1 + main_x <= 0 - Process 1 3.69/1.29 * Exit transition: 3.69/1.29 * Postcondition : 1 + main_x <= 0 3.69/1.29 3.69/1.29 LOG: CALL solveLinear 3.69/1.29 3.69/1.29 LOG: RETURN solveLinear - Elapsed time: 0.000477s 3.69/1.29 > Postcondition is not implied! 3.69/1.29 3.69/1.29 LOG: RETURN check - Elapsed time: 0.000567s 3.69/1.29 INVARIANTS: 3.69/1.29 2: 3.69/1.29 Quasi-INVARIANTS to narrow Graph: 3.69/1.29 2: 1 + main_x <= 0 , 3.69/1.29 Narrowing transition: 3.69/1.29 main_x + main_y, main_y -> -1 - main_y, rest remain the same}> 3.69/1.29 3.69/1.29 LOG: Narrow transition size 1 3.69/1.29 invGraph after Narrowing: 3.69/1.29 Transitions: 3.69/1.29 main_x + main_y, main_y -> -1 - main_y, rest remain the same}> 3.69/1.29 Variables: 3.69/1.29 main_x, main_y 3.69/1.29 Checking conditional termination of SCC {l2}... 3.69/1.29 3.69/1.29 LOG: CALL solveLinear 3.69/1.29 3.69/1.29 LOG: RETURN solveLinear - Elapsed time: 0.000479s 3.69/1.29 3.69/1.29 LOG: CALL solveLinear 3.69/1.29 3.69/1.29 LOG: RETURN solveLinear - Elapsed time: 0.001578s 3.69/1.29 [2083 : 2090] 3.69/1.29 [2083 : 2091] 3.69/1.29 Successful child: 2090 3.69/1.29 [ Invariant Graph ] 3.69/1.29 Strengthening and disabling transitions... 3.69/1.29 3.69/1.29 LOG: CALL solverLinear in Graph for feasibility 3.69/1.29 3.69/1.29 LOG: RETURN solveLinear in Graph for feasibility 3.69/1.29 It's unfeasible. Removing transition: 3.69/1.29 main_x + main_y, main_y -> -1 - main_y, rest remain the same}> 3.69/1.29 [ Termination Graph ] 3.69/1.29 Strengthening and disabling transitions... 3.69/1.29 > It's unfeasible. Removing transition: 3.69/1.29 main_x + main_y, main_y -> -1 - main_y, rest remain the same}> 3.69/1.29 New Graphs: 3.69/1.29 3.69/1.29 LOG: CALL check - Post:main_x <= 0 - Process 2 3.69/1.29 * Exit transition: 3.69/1.29 * Postcondition : main_x <= 0 3.69/1.29 3.69/1.29 LOG: CALL solveLinear 3.69/1.29 3.69/1.29 LOG: RETURN solveLinear - Elapsed time: 0.000549s 3.69/1.29 > Postcondition is not implied! 3.69/1.29 3.69/1.29 LOG: RETURN check - Elapsed time: 0.000646s 3.69/1.29 INVARIANTS: 3.69/1.29 2: 3.69/1.29 Quasi-INVARIANTS to narrow Graph: 3.69/1.29 2: main_x <= 0 , 3.69/1.29 Narrowing transition: 3.69/1.29 main_x + main_y, main_y -> -1 - main_y, rest remain the same}> 3.69/1.29 3.69/1.29 LOG: Narrow transition size 1 3.69/1.29 invGraph after Narrowing: 3.69/1.29 Transitions: 3.69/1.29 main_x + main_y, main_y -> -1 - main_y, rest remain the same}> 3.69/1.29 Variables: 3.69/1.29 main_x, main_y 3.69/1.29 Checking conditional termination of SCC {l2}... 3.69/1.29 3.69/1.29 LOG: CALL solveLinear 3.69/1.29 3.69/1.29 LOG: RETURN solveLinear - Elapsed time: 0.000482s 3.69/1.29 3.69/1.29 LOG: CALL solveLinear 3.69/1.29 3.69/1.29 LOG: RETURN solveLinear - Elapsed time: 0.001537s 3.69/1.29 [2083 : 2095] 3.69/1.29 [2083 : 2096] 3.69/1.29 Successful child: 2095 3.69/1.29 [ Invariant Graph ] 3.69/1.29 Strengthening and disabling transitions... 3.69/1.29 3.69/1.29 LOG: CALL solverLinear in Graph for feasibility 3.69/1.29 3.69/1.29 LOG: RETURN solveLinear in Graph for feasibility 3.69/1.29 Strengthening transition (result): 3.69/1.29 main_x + main_y, main_y -> -1 - main_y, rest remain the same}> 3.69/1.29 [ Termination Graph ] 3.69/1.29 Strengthening and disabling transitions... 3.69/1.29 3.69/1.29 LOG: CALL solverLinear in Graph for feasibility 3.69/1.29 3.69/1.29 LOG: RETURN solveLinear in Graph for feasibility 3.69/1.29 Strengthening transition (result): 3.69/1.29 main_x + main_y, main_y -> -1 - main_y, rest remain the same}> 3.69/1.29 Ranking function: 703 + 2*main_x + main_y 3.69/1.29 New Graphs: 3.69/1.29 3.69/1.29 LOG: CALL check - Post:0 <= 704 + main_x + main_y - Process 3 3.69/1.29 * Exit transition: 3.69/1.29 * Postcondition : 0 <= 704 + main_x + main_y 3.69/1.29 3.69/1.29 LOG: CALL solveLinear 3.69/1.29 3.69/1.29 LOG: RETURN solveLinear - Elapsed time: 0.000555s 3.69/1.29 > Postcondition is not implied! 3.69/1.29 3.69/1.29 LOG: RETURN check - Elapsed time: 0.000676s 3.69/1.29 INVARIANTS: 3.69/1.29 2: 3.69/1.29 Quasi-INVARIANTS to narrow Graph: 3.69/1.29 2: 0 <= 704 + main_x + main_y , 3.69/1.29 It's unfeasible. Removing transition: 3.69/1.29 main_x + main_y, main_y -> -1 - main_y, rest remain the same}> 3.69/1.29 invGraph after Narrowing: 3.69/1.29 Transitions: 3.69/1.29 Variables: 3.69/1.29 main_x, main_y 3.69/1.29 Analyzing SCC {l2}... 3.69/1.29 No cycles found. 3.69/1.29 3.69/1.29 Proving termination of subgraph 2 3.69/1.29 Analyzing SCC {l6}... 3.69/1.29 No cycles found. 3.69/1.29 3.69/1.29 Program Terminates 3.69/1.29 EOF