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