Trying to load file: main.koat Initial Control flow graph problem: Start location: evalwisestart 0: evalwisestart -> evalwiseentryin : [], cost: 1 1: evalwiseentryin -> evalwisereturnin : [ 0>=1+A ], cost: 1 2: evalwiseentryin -> evalwisereturnin : [ 0>=1+B ], cost: 1 3: evalwiseentryin -> evalwisebb6in : A'=B, B'=A, [ A>=0 && B>=0 ], cost: 1 11: evalwisereturnin -> evalwisestop : [], cost: 1 6: evalwisebb6in -> evalwisereturnin : [ 2+A>=B && 2+B>=A ], cost: 1 4: evalwisebb6in -> evalwisebb3in : [ B>=3+A ], cost: 1 5: evalwisebb6in -> evalwisebb3in : [ A>=3+B ], cost: 1 7: evalwisebb3in -> evalwisebb4in : [ A>=1+B ], cost: 1 8: evalwisebb3in -> evalwisebb5in : [ B>=A ], cost: 1 9: evalwisebb4in -> evalwisebb6in : B'=1+B, [], cost: 1 10: evalwisebb5in -> evalwisebb6in : A'=1+A, [], cost: 1 Simplified the transitions: Start location: evalwisestart 0: evalwisestart -> evalwiseentryin : [], cost: 1 3: evalwiseentryin -> evalwisebb6in : A'=B, B'=A, [ A>=0 && B>=0 ], cost: 1 4: evalwisebb6in -> evalwisebb3in : [ B>=3+A ], cost: 1 5: evalwisebb6in -> evalwisebb3in : [ A>=3+B ], cost: 1 7: evalwisebb3in -> evalwisebb4in : [ A>=1+B ], cost: 1 8: evalwisebb3in -> evalwisebb5in : [ B>=A ], cost: 1 9: evalwisebb4in -> evalwisebb6in : B'=1+B, [], cost: 1 10: evalwisebb5in -> evalwisebb6in : A'=1+A, [], cost: 1 Applied simple chaining: Start location: evalwisestart 0: evalwisestart -> evalwisebb6in : A'=B, B'=A, [ A>=0 && B>=0 ], cost: 2 4: evalwisebb6in -> evalwisebb3in : [ B>=3+A ], cost: 1 5: evalwisebb6in -> evalwisebb3in : [ A>=3+B ], cost: 1 7: evalwisebb3in -> evalwisebb6in : B'=1+B, [ A>=1+B ], cost: 2 8: evalwisebb3in -> evalwisebb6in : A'=1+A, [ B>=A ], cost: 2 Applied chaining over branches and pruning: Start location: evalwisestart 0: evalwisestart -> evalwisebb6in : A'=B, B'=A, [ A>=0 && B>=0 ], cost: 2 12: evalwisebb6in -> evalwisebb6in : A'=1+A, [ B>=3+A && B>=A ], cost: 3 13: evalwisebb6in -> evalwisebb6in : B'=1+B, [ A>=3+B && A>=1+B ], cost: 3 Eliminating 2 self-loops for location evalwisebb6in Self-Loop 12 has the metering function: -2+B-A, resulting in the new transition 14. Self-Loop 13 has the metering function: -2-B+A, resulting in the new transition 15. Removing the self-loops: 12 13. Removed all Self-loops using metering functions (where possible): Start location: evalwisestart 0: evalwisestart -> evalwisebb6in : A'=B, B'=A, [ A>=0 && B>=0 ], cost: 2 14: evalwisebb6in -> [8] : A'=-2+B, [ B>=3+A ], cost: -6+3*B-3*A 15: evalwisebb6in -> [8] : B'=-2+A, [ A>=3+B ], cost: -6-3*B+3*A Applied chaining over branches and pruning: Start location: evalwisestart 16: evalwisestart -> [8] : A'=-2+A, B'=A, [ A>=0 && B>=0 && A>=3+B ], cost: -4-3*B+3*A 17: evalwisestart -> [8] : A'=B, B'=-2+B, [ A>=0 && B>=0 && B>=3+A ], cost: -4+3*B-3*A Final control flow graph problem, now checking costs for infinitely many models: Start location: evalwisestart 16: evalwisestart -> [8] : A'=-2+A, B'=A, [ A>=0 && B>=0 && A>=3+B ], cost: -4-3*B+3*A 17: evalwisestart -> [8] : A'=B, B'=-2+B, [ A>=0 && B>=0 && B>=3+A ], cost: -4+3*B-3*A Computing complexity for remaining 2 transitions. Found configuration with infinitely models for cost: -4-3*B+3*A and guard: A>=0 && B>=0 && A>=3+B: B: Pos, A: Pos, where: A > B Found new complexity n^1, because: Found infinity configuration. The final runtime is determined by this resulting transition: Final Guard: A>=0 && B>=0 && A>=3+B Final Cost: -4-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),?)