Trying to load file: main.koat Initial Control flow graph problem: Start location: f2 0: f2 -> f1 : [], cost: 1 1: f1 -> f1 : A'=1+A, C'=free, [ free>=1 && B>=1+A ], cost: 1 2: f1 -> f1 : A'=1+A, C'=free_1, [ 0>=1+free_1 && B>=1+A ], cost: 1 3: f1 -> f1 : C'=0, [ B>=1+A ], cost: 1 4: f1 -> f1 : A'=1+A, B'=A, C'=free_2, [ free_2>=1 && B>=free_3 && A==B ], cost: 1 5: f1 -> f1 : A'=1+A, B'=A, C'=free_4, [ 0>=1+free_4 && B>=free_5 && A==B ], cost: 1 6: f1 -> f1 : B'=A, C'=0, [ B>=free_6 && A==B ], cost: 1 7: f1 -> f300 : D'=free_7, [ A>=B && A>=1+B ], cost: 1 8: f1 -> f300 : D'=free_8, [ A>=B && B>=1+A ], cost: 1 Simplified the transitions: Start location: f2 0: f2 -> f1 : [], cost: 1 1: f1 -> f1 : A'=1+A, C'=free, [ free>=1 && B>=1+A ], cost: 1 2: f1 -> f1 : A'=1+A, C'=free_1, [ 0>=1+free_1 && B>=1+A ], cost: 1 3: f1 -> f1 : C'=0, [ B>=1+A ], cost: 1 4: f1 -> f1 : A'=1+A, B'=A, C'=free_2, [ free_2>=1 && A==B ], cost: 1 5: f1 -> f1 : A'=1+A, B'=A, C'=free_4, [ 0>=1+free_4 && A==B ], cost: 1 6: f1 -> f1 : B'=A, C'=0, [ A==B ], cost: 1 Eliminating 6 self-loops for location f1 Self-Loop 1 has the metering function: B-A, resulting in the new transition 9. Self-Loop 2 has the metering function: B-A, resulting in the new transition 10. Self-Loop 3 has unbounded runtime, resulting in the new transition 11. Self-Loop 4 has the metering function: 1+B-A, resulting in the new transition 12. Self-Loop 5 has the metering function: 1+B-A, resulting in the new transition 13. Self-Loop 6 has unbounded runtime, resulting in the new transition 14. Found this metering function when nesting loops: meter, Found this metering function when nesting loops: meter_1, Found this metering function when nesting loops: meter_2, Found this metering function when nesting loops: meter_3, Removing the self-loops: 1 2 3 4 5 6. Removed all Self-loops using metering functions (where possible): Start location: f2 0: f2 -> f1 : [], cost: 1 9: f1 -> [3] : A'=B, C'=free, [ free>=1 && B>=1+A ], cost: B-A 10: f1 -> [3] : A'=B, C'=free_1, [ 0>=1+free_1 && B>=1+A ], cost: B-A 11: f1 -> [3] : [ B>=1+A ], cost: INF 12: f1 -> [3] : A'=1+B, B'=B, C'=free_2, [ free_2>=1 && A==B ], cost: 1+B-A 13: f1 -> [3] : A'=1+B, B'=B, C'=free_4, [ 0>=1+free_4 && A==B ], cost: 1+B-A 14: f1 -> [3] : [ A==B ], cost: INF Applied chaining over branches and pruning: Start location: f2 15: f2 -> [3] : A'=B, C'=free, [ free>=1 && B>=1+A ], cost: 1+B-A 16: f2 -> [3] : A'=B, C'=free_1, [ 0>=1+free_1 && B>=1+A ], cost: 1+B-A 17: f2 -> [3] : [ B>=1+A ], cost: INF 19: f2 -> [3] : A'=1+B, B'=B, C'=free_4, [ 0>=1+free_4 && A==B ], cost: 2+B-A 20: f2 -> [3] : [ A==B ], cost: INF Final control flow graph problem, now checking costs for infinitely many models: Start location: f2 15: f2 -> [3] : A'=B, C'=free, [ free>=1 && B>=1+A ], cost: 1+B-A 16: f2 -> [3] : A'=B, C'=free_1, [ 0>=1+free_1 && B>=1+A ], cost: 1+B-A 17: f2 -> [3] : [ B>=1+A ], cost: INF 19: f2 -> [3] : A'=1+B, B'=B, C'=free_4, [ 0>=1+free_4 && A==B ], cost: 2+B-A 20: f2 -> [3] : [ A==B ], cost: INF Computing complexity for remaining 5 transitions. Found configuration with infinitely models for cost: 1+B-A and guard: free>=1 && B>=1+A: B: Pos, free: Pos, A: Pos, where: B > A Found new complexity n^1, because: Found infinity configuration. Found new complexity INF, because: INF sat. The final runtime is determined by this resulting transition: Final Guard: B>=1+A Final Cost: INF Obtained the following complexity w.r.t. the length of the input n: Complexity class: INF Complexity value: INF WORST_CASE(INF,?)