3.68/1.48 YES 3.68/1.48 3.68/1.48 Solver Timeout: 4 3.68/1.48 Global Timeout: 300 3.68/1.48 Maximum number of concurrent processes: 900 3.68/1.48 ******************************************************************************************* 3.68/1.48 *********************** UNPROCESSED TRANSITION SYSTEMS PER FUNCTION *********************** 3.68/1.48 ******************************************************************************************* 3.68/1.48 3.68/1.48 3.68/1.48 List of LLVMGraphs + assumeNodes + staticAssertNodes [1] : 3.68/1.48 3.68/1.48 +++++++++++++++++++++++++++++++ main +++++++++++++++++++++++++++++++ 3.68/1.48 + + 3.68/1.48 Init Location: 0 3.68/1.48 Transitions: 3.68/1.48 0, main_q -> ¿functionCall(__VERIFIER_nondet_int), main_z -> ¿functionCall(__VERIFIER_nondet_int)}> 3.68/1.48 3.68/1.48 0))> 3.68/1.48 0)> 3.68/1.48 ((main_q + main_z) - 1), main_z -> ~(main_z)}> 3.68/1.48 3.68/1.48 0}> 3.68/1.48 3.68/1.48 Fresh variables: 3.68/1.48 3.68/1.48 Undef variables: 3.68/1.48 3.68/1.48 Abstraction variables: 3.68/1.48 3.68/1.48 Exit nodes: 3.68/1.48 3.68/1.48 Accepting locations: 3.68/1.48 3.68/1.48 Asserts: 3.68/1.48 3.68/1.48 + Assume Nodes [0]: ++++++++++++++++++++++++++++++++++++++++++++++++ 3.68/1.48 3.68/1.48 + Static Assert Nodes [0]: +++++++++++++++++++++++++++++++++++++++++ 3.68/1.48 3.68/1.48 + After preprocess (paralelization): ++++++++++++++++++++++++++++++ 3.68/1.48 3.68/1.48 Init Location: 0 3.68/1.48 Transitions: 3.68/1.48 0}> 3.68/1.48 ¿functionCall(__VERIFIER_nondet_int)}> 3.68/1.48 varCall_1}> 3.68/1.48 ¿functionCall(__VERIFIER_nondet_int)}> 3.68/1.48 varCall_2}> 3.68/1.48 3.68/1.48 0)> 3.68/1.48 0))> 3.68/1.48 ((main_q + main_z) - 1), main_z -> ~(main_z)}> 3.68/1.48 3.68/1.48 0}> 3.68/1.48 3.68/1.48 Fresh variables: 3.68/1.48 3.68/1.48 Undef variables: 3.68/1.48 3.68/1.48 Abstraction variables: 3.68/1.48 3.68/1.48 Exit nodes: 3.68/1.48 6, 3.68/1.48 Accepting locations: 3.68/1.48 3.68/1.48 Asserts: 3.68/1.48 3.68/1.48 + + 3.68/1.48 +++++++++++++++++++++++++++++++ main +++++++++++++++++++++++++++++++ 3.68/1.48 3.68/1.48 3.68/1.48 Function Return and Parameters Information [2 functions]: 3.68/1.48 function name: __VERIFIER_nondet_int [1 return + 0 parameters] demangled: __VERIFIER_nondet_int 3.68/1.48 __VERIFIER_nondet_int__func_return_ [function result] : int 3.68/1.48 function name: main [1 return + 0 parameters] demangled: main 3.68/1.48 main__func_return_ [function result] : int 3.68/1.48 3.68/1.48 3.68/1.48 AST Ident Scanner Information [4 idents]: 3.68/1.48 __VERIFIER_nondet_int | function | [integer, ()] | | 3.68/1.48 main | function | [integer, ()] | 3.68/1.48 q | local variable | integer | | 3.68/1.48 z | local variable | integer | | 3.68/1.48 3.68/1.48 Main function: main 3.68/1.48 Preprocessed LLVMGraph 3.68/1.48 Init Location: 0 3.68/1.48 Transitions: 3.68/1.48 3.68/1.48 0), par{main_q -> ((main_q + main_z) - 1), main_z -> ~(main_z)}> 3.68/1.48 0))> 3.68/1.48 3.68/1.48 Fresh variables: 3.68/1.48 undef3, undef4, 3.68/1.48 3.68/1.48 Undef variables: 3.68/1.48 undef3, undef4, 3.68/1.48 3.68/1.48 Abstraction variables: 3.68/1.48 3.68/1.48 Exit nodes: 3.68/1.48 6, 3.68/1.48 Accepting locations: 3.68/1.48 3.68/1.48 Asserts: 3.68/1.48 3.68/1.48 ************************************************************* 3.68/1.48 ******************************************************************************************* 3.68/1.48 *********************** WORKING TRANSITION SYSTEM (DAG) *********************** 3.68/1.48 ******************************************************************************************* 3.68/1.48 3.68/1.48 Init Location: 0 3.68/1.48 Graph 0: 3.68/1.48 Transitions: 3.68/1.48 Variables: 3.68/1.48 3.68/1.48 Graph 1: 3.68/1.48 Transitions: 3.68/1.48 -1 + main_q + main_z, main_z -> -main_z, rest remain the same}> 3.68/1.48 Variables: 3.68/1.48 main_q, main_z 3.68/1.48 3.68/1.48 Graph 2: 3.68/1.48 Transitions: 3.68/1.48 Variables: 3.68/1.48 3.68/1.48 Precedence: 3.68/1.48 Graph 0 3.68/1.48 3.68/1.48 Graph 1 3.68/1.48 3.68/1.48 3.68/1.48 Graph 2 3.68/1.48 3.68/1.48 3.68/1.48 Map Locations to Subgraph: 3.68/1.48 ( 0 , 0 ) 3.68/1.48 ( 2 , 1 ) 3.68/1.48 ( 6 , 2 ) 3.68/1.48 3.68/1.48 ******************************************************************************************* 3.68/1.48 ******************************** CHECKING ASSERTIONS ******************************** 3.68/1.48 ******************************************************************************************* 3.68/1.48 3.68/1.48 Proving termination of subgraph 0 3.68/1.48 Proving termination of subgraph 1 3.68/1.48 Checking unfeasibility... 3.68/1.48 Time used: 0.001999 3.68/1.48 3.68/1.48 Checking conditional termination of SCC {l2}... 3.68/1.48 3.68/1.48 LOG: CALL solveLinear 3.68/1.48 3.68/1.48 LOG: RETURN solveLinear - Elapsed time: 0.000499s 3.68/1.48 3.68/1.48 LOG: CALL solveLinear 3.68/1.48 3.68/1.48 LOG: RETURN solveLinear - Elapsed time: 0.001475s 3.68/1.48 [50050 : 50052] 3.68/1.48 [50050 : 50053] 3.68/1.48 Successful child: 50052 3.68/1.48 [ Invariant Graph ] 3.68/1.48 Strengthening and disabling transitions... 3.68/1.48 3.68/1.48 LOG: CALL solverLinear in Graph for feasibility 3.68/1.48 3.68/1.48 LOG: RETURN solveLinear in Graph for feasibility 3.68/1.48 It's unfeasible. Removing transition: 3.68/1.48 -1 + main_q + main_z, main_z -> -main_z, rest remain the same}> 3.68/1.48 [ Termination Graph ] 3.68/1.48 Strengthening and disabling transitions... 3.68/1.48 > It's unfeasible. Removing transition: 3.68/1.48 -1 + main_q + main_z, main_z -> -main_z, rest remain the same}> 3.68/1.48 New Graphs: 3.68/1.48 3.68/1.48 LOG: CALL check - Post:1 + main_q <= 0 - Process 1 3.68/1.48 * Exit transition: 3.68/1.48 * Postcondition : 1 + main_q <= 0 3.68/1.48 3.68/1.48 LOG: CALL solveLinear 3.68/1.48 3.68/1.48 LOG: RETURN solveLinear - Elapsed time: 0.000472s 3.68/1.48 > Postcondition is not implied! 3.68/1.48 3.68/1.48 LOG: RETURN check - Elapsed time: 0.000563s 3.68/1.48 INVARIANTS: 3.68/1.48 2: 3.68/1.48 Quasi-INVARIANTS to narrow Graph: 3.68/1.48 2: 1 + main_q <= 0 , 3.68/1.48 Narrowing transition: 3.68/1.48 -1 + main_q + main_z, main_z -> -main_z, rest remain the same}> 3.68/1.48 3.68/1.48 LOG: Narrow transition size 1 3.68/1.48 invGraph after Narrowing: 3.68/1.48 Transitions: 3.68/1.48 -1 + main_q + main_z, main_z -> -main_z, rest remain the same}> 3.68/1.48 Variables: 3.68/1.48 main_q, main_z 3.68/1.48 Checking conditional termination of SCC {l2}... 3.68/1.48 3.68/1.48 LOG: CALL solveLinear 3.68/1.48 3.68/1.48 LOG: RETURN solveLinear - Elapsed time: 0.000486s 3.68/1.48 3.68/1.48 LOG: CALL solveLinear 3.68/1.48 3.68/1.48 LOG: RETURN solveLinear - Elapsed time: 0.001633s 3.68/1.48 [50050 : 50057] 3.68/1.48 [50050 : 50058] 3.68/1.48 Successful child: 50057 3.68/1.48 [ Invariant Graph ] 3.68/1.48 Strengthening and disabling transitions... 3.68/1.48 3.68/1.48 LOG: CALL solverLinear in Graph for feasibility 3.68/1.48 3.68/1.48 LOG: RETURN solveLinear in Graph for feasibility 3.68/1.48 It's unfeasible. Removing transition: 3.68/1.48 -1 + main_q + main_z, main_z -> -main_z, rest remain the same}> 3.68/1.48 [ Termination Graph ] 3.68/1.48 Strengthening and disabling transitions... 3.68/1.48 > It's unfeasible. Removing transition: 3.68/1.48 -1 + main_q + main_z, main_z -> -main_z, rest remain the same}> 3.68/1.48 New Graphs: 3.68/1.48 3.68/1.48 LOG: CALL check - Post:main_q <= 0 - Process 2 3.68/1.48 * Exit transition: 3.68/1.48 * Postcondition : main_q <= 0 3.68/1.48 3.68/1.48 LOG: CALL solveLinear 3.68/1.48 3.68/1.48 LOG: RETURN solveLinear - Elapsed time: 0.000556s 3.68/1.48 > Postcondition is not implied! 3.68/1.48 3.68/1.48 LOG: RETURN check - Elapsed time: 0.000653s 3.68/1.48 INVARIANTS: 3.68/1.48 2: 3.68/1.48 Quasi-INVARIANTS to narrow Graph: 3.68/1.48 2: main_q <= 0 , 3.68/1.48 Narrowing transition: 3.68/1.48 -1 + main_q + main_z, main_z -> -main_z, rest remain the same}> 3.68/1.48 3.68/1.48 LOG: Narrow transition size 1 3.68/1.48 invGraph after Narrowing: 3.68/1.48 Transitions: 3.68/1.48 -1 + main_q + main_z, main_z -> -main_z, rest remain the same}> 3.68/1.48 Variables: 3.68/1.48 main_q, main_z 3.68/1.48 Checking conditional termination of SCC {l2}... 3.68/1.48 3.68/1.48 LOG: CALL solveLinear 3.68/1.48 3.68/1.48 LOG: RETURN solveLinear - Elapsed time: 0.000472s 3.68/1.48 3.68/1.48 LOG: CALL solveLinear 3.68/1.48 3.68/1.48 LOG: RETURN solveLinear - Elapsed time: 0.001588s 3.68/1.48 [50050 : 50062] 3.68/1.48 [50050 : 50063] 3.68/1.48 Successful child: 50062 3.68/1.48 [ Invariant Graph ] 3.68/1.48 Strengthening and disabling transitions... 3.68/1.48 3.68/1.48 LOG: CALL solverLinear in Graph for feasibility 3.68/1.48 3.68/1.48 LOG: RETURN solveLinear in Graph for feasibility 3.68/1.48 Strengthening transition (result): 3.68/1.48 -1 + main_q + main_z, main_z -> -main_z, rest remain the same}> 3.68/1.48 [ Termination Graph ] 3.68/1.48 Strengthening and disabling transitions... 3.68/1.48 3.68/1.48 LOG: CALL solverLinear in Graph for feasibility 3.68/1.48 3.68/1.48 LOG: RETURN solveLinear in Graph for feasibility 3.68/1.48 Strengthening transition (result): 3.68/1.48 -1 + main_q + main_z, main_z -> -main_z, rest remain the same}> 3.68/1.48 Ranking function: 697 + 2*main_q + main_z 3.68/1.48 New Graphs: 3.68/1.48 3.68/1.48 LOG: CALL check - Post:0 <= 698 + main_q + main_z - Process 3 3.68/1.48 * Exit transition: 3.68/1.48 * Postcondition : 0 <= 698 + main_q + main_z 3.68/1.48 3.68/1.48 LOG: CALL solveLinear 3.68/1.48 3.68/1.48 LOG: RETURN solveLinear - Elapsed time: 0.000548s 3.68/1.48 > Postcondition is not implied! 3.68/1.48 3.68/1.48 LOG: RETURN check - Elapsed time: 0.000663s 3.68/1.48 INVARIANTS: 3.68/1.48 2: 3.68/1.48 Quasi-INVARIANTS to narrow Graph: 3.68/1.48 2: 0 <= 698 + main_q + main_z , 3.68/1.48 It's unfeasible. Removing transition: 3.68/1.48 -1 + main_q + main_z, main_z -> -main_z, rest remain the same}> 3.68/1.48 invGraph after Narrowing: 3.68/1.48 Transitions: 3.68/1.48 Variables: 3.68/1.48 main_q, main_z 3.68/1.48 Analyzing SCC {l2}... 3.68/1.48 No cycles found. 3.68/1.48 3.68/1.48 Proving termination of subgraph 2 3.68/1.48 Analyzing SCC {l6}... 3.68/1.48 No cycles found. 3.68/1.48 3.68/1.48 Program Terminates 3.68/1.48 EOF