Trying to load file: main.koat Initial Control flow graph problem: Start location: f2 0: f2 -> f300 : [], cost: 1 1: f300 -> f300 : A'=-1+B, B'=-1+B, C'=free, [ A>=1 && B>=1 && free>=1 && B+A>=1 ], cost: 1 2: f300 -> f300 : A'=-1+B, B'=-1+B, C'=free_1, [ A>=1 && B>=1 && 0>=1+free_1 && B+A>=1 ], cost: 1 3: f300 -> f300 : A'=-1+A, B'=-2+A, C'=0, [ A>=1 && B+A>=1 && B>=1 ], cost: 1 4: f300 -> f1 : D'=free_2, [ A>=1 && 0>=B+A && B>=1 ], cost: 1 5: f300 -> f1 : D'=free_3, [ B>=1 && 0>=A ], cost: 1 6: f300 -> f1 : D'=free_4, [ 0>=B ], cost: 1 Simplified the transitions: Start location: f2 0: f2 -> f300 : [], cost: 1 1: f300 -> f300 : A'=-1+B, B'=-1+B, C'=free, [ A>=1 && B>=1 && free>=1 && B+A>=1 ], cost: 1 2: f300 -> f300 : A'=-1+B, B'=-1+B, C'=free_1, [ A>=1 && B>=1 && 0>=1+free_1 && B+A>=1 ], cost: 1 3: f300 -> f300 : A'=-1+A, B'=-2+A, C'=0, [ A>=1 && B+A>=1 && B>=1 ], cost: 1 Eliminating 3 self-loops for location f300 Removing the self-loops: 1 2 3. Adding an epsilon transition (to model nonexecution of the loops): 10. Removed all Self-loops using metering functions (where possible): Start location: f2 0: f2 -> f300 : [], cost: 1 7: f300 -> [3] : A'=-1+B, B'=-1+B, C'=free, [ A>=1 && B>=1 && free>=1 && B+A>=1 ], cost: 1 8: f300 -> [3] : A'=-1+B, B'=-1+B, C'=free_1, [ A>=1 && B>=1 && 0>=1+free_1 && B+A>=1 ], cost: 1 9: f300 -> [3] : A'=-1+A, B'=-2+A, C'=0, [ A>=1 && B+A>=1 && B>=1 ], cost: 1 10: f300 -> [3] : [], cost: 0 Applied chaining over branches and pruning: Start location: f2 Final control flow graph problem, now checking costs for infinitely many models: Start location: f2 Computing complexity for remaining 0 transitions. The final runtime is determined by this resulting transition: Final Guard: Final Cost: 1 Obtained the following complexity w.r.t. the length of the input n: Complexity class: const Complexity value: 0 WORST_CASE(Omega(1),?)