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