Trying to load file: main.koat Initial Control flow graph problem: Start location: start 0: eval -> eval : A'=-1+A, [ B+A>=1 && A>=1+B ], cost: 1 1: eval -> eval : A'=-1+A, [ 2*A>=1 && B==A ], cost: 1 2: eval -> eval : B'=-1+B, [ B+A>=1 && B>=A && B>=1+A ], cost: 1 3: eval -> eval : B'=-1+B, [ B+A>=1 && B>=A && A>=1+B ], cost: 1 4: start -> eval : [], cost: 1 Simplified the transitions: Start location: start 0: eval -> eval : A'=-1+A, [ B+A>=1 && A>=1+B ], cost: 1 1: eval -> eval : A'=-1+A, [ 2*A>=1 && B==A ], cost: 1 2: eval -> eval : B'=-1+B, [ B+A>=1 && B>=1+A ], cost: 1 3: eval -> eval : B'=-1+B, [ B+A>=1 && B>=A && A>=1+B ], cost: 1 4: start -> eval : [], cost: 1 Eliminating 4 self-loops for location eval Self-Loop 1 has the metering function: -B+A, resulting in the new transition 6. Self-Loop 3 has unbounded runtime, resulting in the new transition 8. Found this metering function when nesting loops: -1-B+A, Found this metering function when nesting loops: B-A, Removing the self-loops: 0 1 2 3. Adding an epsilon transition (to model nonexecution of the loops): 9. Removed all Self-loops using metering functions (where possible): Start location: start 5: eval -> [2] : A'=-1+A, [ B+A>=1 && A>=1+B ], cost: 1 6: eval -> [2] : A'=B, [ 2*A>=1 && B==A ], cost: -B+A 7: eval -> [2] : B'=-1+B, [ B+A>=1 && B>=1+A ], cost: 1 8: eval -> [2] : [ B+A>=1 && B>=A && A>=1+B ], cost: INF 9: eval -> [2] : [], cost: 0 4: start -> eval : [], cost: 1 Applied chaining over branches and pruning: Start location: start 11: start -> [2] : A'=B, [ 2*A>=1 && B==A ], cost: 1-B+A Final control flow graph problem, now checking costs for infinitely many models: Start location: start 11: start -> [2] : A'=B, [ 2*A>=1 && B==A ], cost: 1-B+A Computing complexity for remaining 1 transitions. Found new complexity const, because: const cost. The final runtime is determined by this resulting transition: Final Guard: 2*A>=1 && B==A 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),?)