Trying to load file: main.koat Initial Control flow graph problem: Start location: evalNestedMultipleDepstart 0: evalNestedMultipleDepstart -> evalNestedMultipleDepentryin : [], cost: 1 1: evalNestedMultipleDepentryin -> evalNestedMultipleDepbb3in : A'=0, [], cost: 1 2: evalNestedMultipleDepbb3in -> evalNestedMultipleDepbbin : [ B>=1+A ], cost: 1 3: evalNestedMultipleDepbb3in -> evalNestedMultipleDepreturnin : [ A>=B ], cost: 1 4: evalNestedMultipleDepbbin -> evalNestedMultipleDepbb2in : C'=1+A, D'=0, [], cost: 1 8: evalNestedMultipleDepreturnin -> evalNestedMultipleDepstop : [], cost: 1 6: evalNestedMultipleDepbb2in -> evalNestedMultipleDepbb3in : A'=C, [ D>=E ], cost: 1 5: evalNestedMultipleDepbb2in -> evalNestedMultipleDepbb1in : [ E>=1+D ], cost: 1 7: evalNestedMultipleDepbb1in -> evalNestedMultipleDepbb2in : D'=1+D, [], cost: 1 Simplified the transitions: Start location: evalNestedMultipleDepstart 0: evalNestedMultipleDepstart -> evalNestedMultipleDepentryin : [], cost: 1 1: evalNestedMultipleDepentryin -> evalNestedMultipleDepbb3in : A'=0, [], cost: 1 2: evalNestedMultipleDepbb3in -> evalNestedMultipleDepbbin : [ B>=1+A ], cost: 1 4: evalNestedMultipleDepbbin -> evalNestedMultipleDepbb2in : C'=1+A, D'=0, [], cost: 1 6: evalNestedMultipleDepbb2in -> evalNestedMultipleDepbb3in : A'=C, [ D>=E ], cost: 1 5: evalNestedMultipleDepbb2in -> evalNestedMultipleDepbb1in : [ E>=1+D ], cost: 1 7: evalNestedMultipleDepbb1in -> evalNestedMultipleDepbb2in : D'=1+D, [], cost: 1 Applied simple chaining: Start location: evalNestedMultipleDepstart 0: evalNestedMultipleDepstart -> evalNestedMultipleDepbb3in : A'=0, [], cost: 2 2: evalNestedMultipleDepbb3in -> evalNestedMultipleDepbb2in : C'=1+A, D'=0, [ B>=1+A ], cost: 2 6: evalNestedMultipleDepbb2in -> evalNestedMultipleDepbb3in : A'=C, [ D>=E ], cost: 1 5: evalNestedMultipleDepbb2in -> evalNestedMultipleDepbb2in : D'=1+D, [ E>=1+D ], cost: 2 Eliminating 1 self-loops for location evalNestedMultipleDepbb2in Self-Loop 5 has the metering function: E-D, resulting in the new transition 9. Removing the self-loops: 5. Removed all Self-loops using metering functions (where possible): Start location: evalNestedMultipleDepstart 0: evalNestedMultipleDepstart -> evalNestedMultipleDepbb3in : A'=0, [], cost: 2 2: evalNestedMultipleDepbb3in -> evalNestedMultipleDepbb2in : C'=1+A, D'=0, [ B>=1+A ], cost: 2 9: evalNestedMultipleDepbb2in -> [8] : D'=E, [ E>=1+D ], cost: 2*E-2*D 6: [8] -> evalNestedMultipleDepbb3in : A'=C, [ D>=E ], cost: 1 Applied simple chaining: Start location: evalNestedMultipleDepstart 0: evalNestedMultipleDepstart -> evalNestedMultipleDepbb3in : A'=0, [], cost: 2 2: evalNestedMultipleDepbb3in -> evalNestedMultipleDepbb3in : A'=1+A, C'=1+A, D'=E, [ B>=1+A && E>=1 && E>=E ], cost: 3+2*E Eliminating 1 self-loops for location evalNestedMultipleDepbb3in Self-Loop 2 has the metering function: B-A, resulting in the new transition 10. Removing the self-loops: 2. Removed all Self-loops using metering functions (where possible): Start location: evalNestedMultipleDepstart 0: evalNestedMultipleDepstart -> evalNestedMultipleDepbb3in : A'=0, [], cost: 2 10: evalNestedMultipleDepbb3in -> [9] : A'=B, C'=B, D'=E, [ B>=1+A && E>=1 ], cost: 2*E*(B-A)+3*B-3*A Applied simple chaining: Start location: evalNestedMultipleDepstart 0: evalNestedMultipleDepstart -> [9] : A'=B, C'=B, D'=E, [ B>=1 && E>=1 ], cost: 2+2*E*B+3*B Final control flow graph problem, now checking costs for infinitely many models: Start location: evalNestedMultipleDepstart 0: evalNestedMultipleDepstart -> [9] : A'=B, C'=B, D'=E, [ B>=1 && E>=1 ], cost: 2+2*E*B+3*B Computing complexity for remaining 1 transitions. Found configuration with infinitely models for cost: 2+2*E*B+3*B and guard: B>=1 && E>=1: E: Pos, B: Pos Found new complexity n^2, because: Found infinity configuration. The final runtime is determined by this resulting transition: Final Guard: B>=1 && E>=1 Final Cost: 2+2*E*B+3*B Obtained the following complexity w.r.t. the length of the input n: Complexity class: n^2 Complexity value: 2 WORST_CASE(Omega(n^2),?)