Trying to load file: main.koat Initial Control flow graph problem: Start location: evaleasy1start 0: evaleasy1start -> evaleasy1entryin : [], cost: 1 1: evaleasy1entryin -> evaleasy1bb3in : A'=0, [], cost: 1 2: evaleasy1bb3in -> evaleasy1bbin : [ 39>=A ], cost: 1 3: evaleasy1bb3in -> evaleasy1returnin : [ A>=40 ], cost: 1 4: evaleasy1bbin -> evaleasy1bb1in : [ B==0 ], cost: 1 5: evaleasy1bbin -> evaleasy1bb2in : [ 0>=1+B ], cost: 1 6: evaleasy1bbin -> evaleasy1bb2in : [ B>=1 ], cost: 1 9: evaleasy1returnin -> evaleasy1stop : [], cost: 1 7: evaleasy1bb1in -> evaleasy1bb3in : A'=1+A, [], cost: 1 8: evaleasy1bb2in -> evaleasy1bb3in : A'=2+A, [], cost: 1 Simplified the transitions: Start location: evaleasy1start 0: evaleasy1start -> evaleasy1entryin : [], cost: 1 1: evaleasy1entryin -> evaleasy1bb3in : A'=0, [], cost: 1 2: evaleasy1bb3in -> evaleasy1bbin : [ 39>=A ], cost: 1 4: evaleasy1bbin -> evaleasy1bb1in : [ B==0 ], cost: 1 5: evaleasy1bbin -> evaleasy1bb2in : [ 0>=1+B ], cost: 1 6: evaleasy1bbin -> evaleasy1bb2in : [ B>=1 ], cost: 1 7: evaleasy1bb1in -> evaleasy1bb3in : A'=1+A, [], cost: 1 8: evaleasy1bb2in -> evaleasy1bb3in : A'=2+A, [], cost: 1 Applied simple chaining: Start location: evaleasy1start 0: evaleasy1start -> evaleasy1bb3in : A'=0, [], cost: 2 2: evaleasy1bb3in -> evaleasy1bbin : [ 39>=A ], cost: 1 4: evaleasy1bbin -> evaleasy1bb3in : A'=1+A, [ B==0 ], cost: 2 5: evaleasy1bbin -> evaleasy1bb2in : [ 0>=1+B ], cost: 1 6: evaleasy1bbin -> evaleasy1bb2in : [ B>=1 ], cost: 1 8: evaleasy1bb2in -> evaleasy1bb3in : A'=2+A, [], cost: 1 Applied chaining over branches and pruning: Start location: evaleasy1start 0: evaleasy1start -> evaleasy1bb3in : A'=0, [], cost: 2 10: evaleasy1bb3in -> evaleasy1bb3in : A'=1+A, [ 39>=A && B==0 ], cost: 3 11: evaleasy1bb3in -> evaleasy1bb2in : [ 39>=A && 0>=1+B ], cost: 2 12: evaleasy1bb3in -> evaleasy1bb2in : [ 39>=A && B>=1 ], cost: 2 8: evaleasy1bb2in -> evaleasy1bb3in : A'=2+A, [], cost: 1 Eliminating 1 self-loops for location evaleasy1bb3in Self-Loop 10 has the metering function: 40-A, resulting in the new transition 13. Removing the self-loops: 10. Removed all Self-loops using metering functions (where possible): Start location: evaleasy1start 0: evaleasy1start -> evaleasy1bb3in : A'=0, [], cost: 2 13: evaleasy1bb3in -> [8] : A'=40, [ 39>=A && B==0 ], cost: 120-3*A 8: evaleasy1bb2in -> evaleasy1bb3in : A'=2+A, [], cost: 1 11: [8] -> evaleasy1bb2in : [ 39>=A && 0>=1+B ], cost: 2 12: [8] -> evaleasy1bb2in : [ 39>=A && B>=1 ], cost: 2 Applied chaining over branches and pruning: Start location: evaleasy1start 0: evaleasy1start -> evaleasy1bb3in : A'=0, [], cost: 2 14: evaleasy1bb3in -> [9] : A'=40, [ 39>=A && B==0 ], cost: 120-3*A 15: evaleasy1bb3in -> [10] : A'=40, [ 39>=A && B==0 ], cost: 120-3*A Applied chaining over branches and pruning: Start location: evaleasy1start Final control flow graph problem, now checking costs for infinitely many models: Start location: evaleasy1start Computing complexity for remaining 0 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),?)