Trying to load file: main.koat Initial Control flow graph problem: Start location: evalEx6start 0: evalEx6start -> evalEx6entryin : [], cost: 1 1: evalEx6entryin -> evalEx6bb3in : A'=B, B'=A, [], cost: 1 2: evalEx6bb3in -> evalEx6bbin : [ C>=1+B ], cost: 1 3: evalEx6bb3in -> evalEx6returnin : [ B>=C ], cost: 1 4: evalEx6bbin -> evalEx6bb1in : [ A>=1+B ], cost: 1 5: evalEx6bbin -> evalEx6bb2in : [ B>=A ], cost: 1 8: evalEx6returnin -> evalEx6stop : [], cost: 1 6: evalEx6bb1in -> evalEx6bb3in : B'=1+B, [], cost: 1 7: evalEx6bb2in -> evalEx6bb3in : A'=1+A, [], cost: 1 Simplified the transitions: Start location: evalEx6start 0: evalEx6start -> evalEx6entryin : [], cost: 1 1: evalEx6entryin -> evalEx6bb3in : A'=B, B'=A, [], cost: 1 2: evalEx6bb3in -> evalEx6bbin : [ C>=1+B ], cost: 1 4: evalEx6bbin -> evalEx6bb1in : [ A>=1+B ], cost: 1 5: evalEx6bbin -> evalEx6bb2in : [ B>=A ], cost: 1 6: evalEx6bb1in -> evalEx6bb3in : B'=1+B, [], cost: 1 7: evalEx6bb2in -> evalEx6bb3in : A'=1+A, [], cost: 1 Applied simple chaining: Start location: evalEx6start 0: evalEx6start -> evalEx6bb3in : A'=B, B'=A, [], cost: 2 2: evalEx6bb3in -> evalEx6bbin : [ C>=1+B ], cost: 1 4: evalEx6bbin -> evalEx6bb3in : B'=1+B, [ A>=1+B ], cost: 2 5: evalEx6bbin -> evalEx6bb3in : A'=1+A, [ B>=A ], cost: 2 Applied chaining over branches and pruning: Start location: evalEx6start 0: evalEx6start -> evalEx6bb3in : A'=B, B'=A, [], cost: 2 9: evalEx6bb3in -> evalEx6bb3in : B'=1+B, [ C>=1+B && A>=1+B ], cost: 3 10: evalEx6bb3in -> evalEx6bb3in : A'=1+A, [ C>=1+B && B>=A ], cost: 3 Eliminating 2 self-loops for location evalEx6bb3in Self-Loop 10 has the metering function: 1+B-A, resulting in the new transition 12. Found this metering function when nesting loops: -B+C, Found this metering function when nesting loops: -1-B+C, Removing the self-loops: 9 10. Adding an epsilon transition (to model nonexecution of the loops): 13. Removed all Self-loops using metering functions (where possible): Start location: evalEx6start 0: evalEx6start -> evalEx6bb3in : A'=B, B'=A, [], cost: 2 11: evalEx6bb3in -> [8] : B'=1+B, [ C>=1+B && A>=1+B ], cost: 3 12: evalEx6bb3in -> [8] : A'=1+B, [ C>=1+B && B>=A ], cost: 3+3*B-3*A 13: evalEx6bb3in -> [8] : [], cost: 0 Applied chaining over branches and pruning: Start location: evalEx6start 15: evalEx6start -> [8] : A'=1+A, B'=A, [ C>=1+A && A>=B ], cost: 5-3*B+3*A Final control flow graph problem, now checking costs for infinitely many models: Start location: evalEx6start 15: evalEx6start -> [8] : A'=1+A, B'=A, [ C>=1+A && A>=B ], cost: 5-3*B+3*A Computing complexity for remaining 1 transitions. Found configuration with infinitely models for cost: 5-3*B+3*A and guard: C>=1+A && A>=B: B: Pos, C: Pos, A: Pos, where: C > A A > B Found new complexity n^1, because: Found infinity configuration. The final runtime is determined by this resulting transition: Final Guard: C>=1+A && A>=B Final Cost: 5-3*B+3*A Obtained the following complexity w.r.t. the length of the input n: Complexity class: n^1 Complexity value: 1 WORST_CASE(Omega(n^1),?)