Trying to load file: main.koat Initial Control flow graph problem: Start location: evalwcet2start 0: evalwcet2start -> evalwcet2entryin : [], cost: 1 1: evalwcet2entryin -> evalwcet2bb5in : [], cost: 1 2: evalwcet2bb5in -> evalwcet2bb2in : B'=0, [ 4>=A ], cost: 1 3: evalwcet2bb5in -> evalwcet2returnin : [ A>=5 ], cost: 1 4: evalwcet2bb2in -> evalwcet2bb1in : [ A>=3 && 9>=B ], cost: 1 5: evalwcet2bb2in -> evalwcet2bb4in : [ 2>=A ], cost: 1 6: evalwcet2bb2in -> evalwcet2bb4in : [ B>=10 ], cost: 1 9: evalwcet2returnin -> evalwcet2stop : [], cost: 1 7: evalwcet2bb1in -> evalwcet2bb2in : B'=1+B, [], cost: 1 8: evalwcet2bb4in -> evalwcet2bb5in : A'=1+A, [], cost: 1 Simplified the transitions: Start location: evalwcet2start 0: evalwcet2start -> evalwcet2entryin : [], cost: 1 1: evalwcet2entryin -> evalwcet2bb5in : [], cost: 1 2: evalwcet2bb5in -> evalwcet2bb2in : B'=0, [ 4>=A ], cost: 1 4: evalwcet2bb2in -> evalwcet2bb1in : [ A>=3 && 9>=B ], cost: 1 5: evalwcet2bb2in -> evalwcet2bb4in : [ 2>=A ], cost: 1 6: evalwcet2bb2in -> evalwcet2bb4in : [ B>=10 ], cost: 1 7: evalwcet2bb1in -> evalwcet2bb2in : B'=1+B, [], cost: 1 8: evalwcet2bb4in -> evalwcet2bb5in : A'=1+A, [], cost: 1 Applied simple chaining: Start location: evalwcet2start 0: evalwcet2start -> evalwcet2bb5in : [], cost: 2 2: evalwcet2bb5in -> evalwcet2bb2in : B'=0, [ 4>=A ], cost: 1 4: evalwcet2bb2in -> evalwcet2bb2in : B'=1+B, [ A>=3 && 9>=B ], cost: 2 5: evalwcet2bb2in -> evalwcet2bb4in : [ 2>=A ], cost: 1 6: evalwcet2bb2in -> evalwcet2bb4in : [ B>=10 ], cost: 1 8: evalwcet2bb4in -> evalwcet2bb5in : A'=1+A, [], cost: 1 Eliminating 1 self-loops for location evalwcet2bb2in Self-Loop 4 has the metering function: 10-B, resulting in the new transition 10. Removing the self-loops: 4. Removed all Self-loops using metering functions (where possible): Start location: evalwcet2start 0: evalwcet2start -> evalwcet2bb5in : [], cost: 2 2: evalwcet2bb5in -> evalwcet2bb2in : B'=0, [ 4>=A ], cost: 1 10: evalwcet2bb2in -> [8] : B'=10, [ A>=3 && 9>=B ], cost: 20-2*B 8: evalwcet2bb4in -> evalwcet2bb5in : A'=1+A, [], cost: 1 5: [8] -> evalwcet2bb4in : [ 2>=A ], cost: 1 6: [8] -> evalwcet2bb4in : [ B>=10 ], cost: 1 Applied simple chaining: Start location: evalwcet2start 0: evalwcet2start -> evalwcet2bb5in : [], cost: 2 2: evalwcet2bb5in -> [8] : B'=10, [ 4>=A && A>=3 && 9>=0 ], cost: 21 8: evalwcet2bb4in -> evalwcet2bb5in : A'=1+A, [], cost: 1 5: [8] -> evalwcet2bb4in : [ 2>=A ], cost: 1 6: [8] -> evalwcet2bb4in : [ B>=10 ], cost: 1 Applied chaining over branches and pruning: Start location: evalwcet2start 0: evalwcet2start -> evalwcet2bb5in : [], cost: 2 11: evalwcet2bb5in -> evalwcet2bb4in : B'=10, [ 4>=A && A>=3 && 9>=0 && 10>=10 ], cost: 22 8: evalwcet2bb4in -> evalwcet2bb5in : A'=1+A, [], cost: 1 Applied simple chaining: Start location: evalwcet2start 0: evalwcet2start -> evalwcet2bb5in : [], cost: 2 11: evalwcet2bb5in -> evalwcet2bb5in : A'=1+A, B'=10, [ 4>=A && A>=3 && 9>=0 && 10>=10 ], cost: 23 Eliminating 1 self-loops for location evalwcet2bb5in Self-Loop 11 has the metering function: 5-A, resulting in the new transition 12. Removing the self-loops: 11. Removed all Self-loops using metering functions (where possible): Start location: evalwcet2start 0: evalwcet2start -> evalwcet2bb5in : [], cost: 2 12: evalwcet2bb5in -> [9] : A'=5, B'=10, [ 4>=A && A>=3 ], cost: 115-23*A Applied simple chaining: Start location: evalwcet2start 0: evalwcet2start -> [9] : A'=5, B'=10, [ 4>=A && A>=3 ], cost: 117-23*A Final control flow graph problem, now checking costs for infinitely many models: Start location: evalwcet2start 0: evalwcet2start -> [9] : A'=5, B'=10, [ 4>=A && A>=3 ], cost: 117-23*A Computing complexity for remaining 1 transitions. The final runtime is determined by this resulting transition: Final Guard: Final Cost: 1 Obtained the following complexity w.r.t. the length of the input n: Complexity class: const Complexity value: 0 WORST_CASE(Omega(1),?)