Trying to load file: main.koat Initial Control flow graph problem: Start location: evalNestedSinglestart 0: evalNestedSinglestart -> evalNestedSingleentryin : [], cost: 1 1: evalNestedSingleentryin -> evalNestedSinglebb5in : A'=0, [], cost: 1 2: evalNestedSinglebb5in -> evalNestedSinglebb2in : C'=A, [ B>=1+A ], cost: 1 3: evalNestedSinglebb5in -> evalNestedSinglereturnin : [ A>=B ], cost: 1 4: evalNestedSinglebb2in -> evalNestedSinglebb4in : [ C>=B ], cost: 1 5: evalNestedSinglebb2in -> evalNestedSinglebb3in : [ B>=1+C ], cost: 1 11: evalNestedSinglereturnin -> evalNestedSinglestop : [], cost: 1 10: evalNestedSinglebb4in -> evalNestedSinglebb5in : A'=1+C, [], cost: 1 8: evalNestedSinglebb3in -> evalNestedSinglebb4in : [], cost: 1 6: evalNestedSinglebb3in -> evalNestedSinglebb1in : [ 0>=1+free ], cost: 1 7: evalNestedSinglebb3in -> evalNestedSinglebb1in : [ free_1>=1 ], cost: 1 9: evalNestedSinglebb1in -> evalNestedSinglebb2in : C'=1+C, [], cost: 1 Removing duplicate transition: 6. Simplified the transitions: Start location: evalNestedSinglestart 0: evalNestedSinglestart -> evalNestedSingleentryin : [], cost: 1 1: evalNestedSingleentryin -> evalNestedSinglebb5in : A'=0, [], cost: 1 2: evalNestedSinglebb5in -> evalNestedSinglebb2in : C'=A, [ B>=1+A ], cost: 1 4: evalNestedSinglebb2in -> evalNestedSinglebb4in : [ C>=B ], cost: 1 5: evalNestedSinglebb2in -> evalNestedSinglebb3in : [ B>=1+C ], cost: 1 10: evalNestedSinglebb4in -> evalNestedSinglebb5in : A'=1+C, [], cost: 1 8: evalNestedSinglebb3in -> evalNestedSinglebb4in : [], cost: 1 7: evalNestedSinglebb3in -> evalNestedSinglebb1in : [], cost: 1 9: evalNestedSinglebb1in -> evalNestedSinglebb2in : C'=1+C, [], cost: 1 Applied simple chaining: Start location: evalNestedSinglestart 0: evalNestedSinglestart -> evalNestedSinglebb5in : A'=0, [], cost: 2 2: evalNestedSinglebb5in -> evalNestedSinglebb2in : C'=A, [ B>=1+A ], cost: 1 4: evalNestedSinglebb2in -> evalNestedSinglebb4in : [ C>=B ], cost: 1 5: evalNestedSinglebb2in -> evalNestedSinglebb3in : [ B>=1+C ], cost: 1 10: evalNestedSinglebb4in -> evalNestedSinglebb5in : A'=1+C, [], cost: 1 7: evalNestedSinglebb3in -> evalNestedSinglebb2in : C'=1+C, [], cost: 2 8: evalNestedSinglebb3in -> evalNestedSinglebb4in : [], cost: 1 Applied chaining over branches and pruning: Start location: evalNestedSinglestart 0: evalNestedSinglestart -> evalNestedSinglebb5in : A'=0, [], cost: 2 2: evalNestedSinglebb5in -> evalNestedSinglebb2in : C'=A, [ B>=1+A ], cost: 1 12: evalNestedSinglebb2in -> evalNestedSinglebb2in : C'=1+C, [ B>=1+C ], cost: 3 4: evalNestedSinglebb2in -> evalNestedSinglebb4in : [ C>=B ], cost: 1 13: evalNestedSinglebb2in -> evalNestedSinglebb4in : [ B>=1+C ], cost: 2 10: evalNestedSinglebb4in -> evalNestedSinglebb5in : A'=1+C, [], cost: 1 Eliminating 1 self-loops for location evalNestedSinglebb2in Self-Loop 12 has the metering function: B-C, resulting in the new transition 14. Removing the self-loops: 12. Removed all Self-loops using metering functions (where possible): Start location: evalNestedSinglestart 0: evalNestedSinglestart -> evalNestedSinglebb5in : A'=0, [], cost: 2 2: evalNestedSinglebb5in -> evalNestedSinglebb2in : C'=A, [ B>=1+A ], cost: 1 14: evalNestedSinglebb2in -> [9] : C'=B, [ B>=1+C ], cost: 3*B-3*C 10: evalNestedSinglebb4in -> evalNestedSinglebb5in : A'=1+C, [], cost: 1 4: [9] -> evalNestedSinglebb4in : [ C>=B ], cost: 1 13: [9] -> evalNestedSinglebb4in : [ B>=1+C ], cost: 2 Applied simple chaining: Start location: evalNestedSinglestart 0: evalNestedSinglestart -> evalNestedSinglebb5in : A'=0, [], cost: 2 2: evalNestedSinglebb5in -> [9] : C'=B, [ B>=1+A && B>=1+A ], cost: 1+3*B-3*A 10: evalNestedSinglebb4in -> evalNestedSinglebb5in : A'=1+C, [], cost: 1 4: [9] -> evalNestedSinglebb4in : [ C>=B ], cost: 1 13: [9] -> evalNestedSinglebb4in : [ B>=1+C ], cost: 2 Applied chaining over branches and pruning: Start location: evalNestedSinglestart 0: evalNestedSinglestart -> evalNestedSinglebb5in : A'=0, [], cost: 2 15: evalNestedSinglebb5in -> evalNestedSinglebb4in : C'=B, [ B>=1+A && B>=1+A && B>=B ], cost: 2+3*B-3*A 16: evalNestedSinglebb5in -> [10] : C'=B, [ B>=1+A && B>=1+A ], cost: 1+3*B-3*A 10: evalNestedSinglebb4in -> evalNestedSinglebb5in : A'=1+C, [], cost: 1 Applied simple chaining: Start location: evalNestedSinglestart 0: evalNestedSinglestart -> evalNestedSinglebb5in : A'=0, [], cost: 2 15: evalNestedSinglebb5in -> evalNestedSinglebb5in : A'=1+B, C'=B, [ B>=1+A && B>=1+A && B>=B ], cost: 3+3*B-3*A 16: evalNestedSinglebb5in -> [10] : C'=B, [ B>=1+A && B>=1+A ], cost: 1+3*B-3*A Eliminating 1 self-loops for location evalNestedSinglebb5in Removing the self-loops: 15. Adding an epsilon transition (to model nonexecution of the loops): 18. Removed all Self-loops using metering functions (where possible): Start location: evalNestedSinglestart 0: evalNestedSinglestart -> evalNestedSinglebb5in : A'=0, [], cost: 2 17: evalNestedSinglebb5in -> [11] : A'=1+B, C'=B, [ B>=1+A ], cost: 3+3*B-3*A 18: evalNestedSinglebb5in -> [11] : [], cost: 0 16: [11] -> [10] : C'=B, [ B>=1+A && B>=1+A ], cost: 1+3*B-3*A Applied chaining over branches and pruning: Start location: evalNestedSinglestart 19: evalNestedSinglestart -> [11] : A'=1+B, C'=B, [ B>=1 ], cost: 5+3*B 20: evalNestedSinglestart -> [11] : A'=0, [], cost: 2 16: [11] -> [10] : C'=B, [ B>=1+A && B>=1+A ], cost: 1+3*B-3*A Applied chaining over branches and pruning: Start location: evalNestedSinglestart 22: evalNestedSinglestart -> [10] : A'=0, C'=B, [ B>=1 && B>=1 ], cost: 3+3*B 21: evalNestedSinglestart -> [12] : A'=1+B, C'=B, [ B>=1 ], cost: 5+3*B Final control flow graph problem, now checking costs for infinitely many models: Start location: evalNestedSinglestart 22: evalNestedSinglestart -> [10] : A'=0, C'=B, [ B>=1 && B>=1 ], cost: 3+3*B 21: evalNestedSinglestart -> [12] : A'=1+B, C'=B, [ B>=1 ], cost: 5+3*B Computing complexity for remaining 2 transitions. Found configuration with infinitely models for cost: 3+3*B and guard: B>=1 && B>=1: B: Pos Found new complexity n^1, because: Found infinity configuration. The final runtime is determined by this resulting transition: Final Guard: B>=1 && B>=1 Final Cost: 3+3*B 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),?)