Trying to load file: main.koat Initial Control flow graph problem: Start location: f0 0: f0 -> f9 : A'=0, B'=0, C'=free, [], cost: 1 1: f9 -> f10 : D'=C, [ 0>=1+C ], cost: 1 2: f9 -> f10 : D'=C, [ C>=1 ], cost: 1 9: f9 -> f16 : A'=0, C'=0, D'=0, [ C==0 ], cost: 1 3: f10 -> f9 : A'=1+A, B'=1+A, C'=free_1, [ 9>=A ], cost: 1 8: f10 -> f16 : A'=0, [ A>=10 ], cost: 1 5: f16 -> f16 : A'=1+A, E'=A, F'=free_2, G'=free_2, [ 9>=A && 0>=1+free_2 ], cost: 1 6: f16 -> f16 : A'=1+A, E'=A, F'=free_3, G'=free_3, [ 9>=A && free_3>=1 ], cost: 1 4: f16 -> f28 : [ A>=10 ], cost: 1 7: f16 -> f28 : E'=A, F'=0, G'=0, [ 9>=A ], cost: 1 Simplified the transitions: Start location: f0 0: f0 -> f9 : A'=0, B'=0, C'=free, [], cost: 1 1: f9 -> f10 : D'=C, [ 0>=1+C ], cost: 1 2: f9 -> f10 : D'=C, [ C>=1 ], cost: 1 9: f9 -> f16 : A'=0, C'=0, D'=0, [ C==0 ], cost: 1 3: f10 -> f9 : A'=1+A, B'=1+A, C'=free_1, [ 9>=A ], cost: 1 8: f10 -> f16 : A'=0, [ A>=10 ], cost: 1 5: f16 -> f16 : A'=1+A, E'=A, F'=free_2, G'=free_2, [ 9>=A && 0>=1+free_2 ], cost: 1 6: f16 -> f16 : A'=1+A, E'=A, F'=free_3, G'=free_3, [ 9>=A && free_3>=1 ], cost: 1 Eliminating 2 self-loops for location f16 Self-Loop 5 has the metering function: 10-A, resulting in the new transition 10. Self-Loop 6 has the metering function: 10-A, resulting in the new transition 11. Removing the self-loops: 5 6. Removed all Self-loops using metering functions (where possible): Start location: f0 0: f0 -> f9 : A'=0, B'=0, C'=free, [], cost: 1 1: f9 -> f10 : D'=C, [ 0>=1+C ], cost: 1 2: f9 -> f10 : D'=C, [ C>=1 ], cost: 1 9: f9 -> f16 : A'=0, C'=0, D'=0, [ C==0 ], cost: 1 3: f10 -> f9 : A'=1+A, B'=1+A, C'=free_1, [ 9>=A ], cost: 1 8: f10 -> f16 : A'=0, [ A>=10 ], cost: 1 10: f16 -> [5] : A'=10, E'=9, F'=free_2, G'=free_2, [ 9>=A && 0>=1+free_2 ], cost: 10-A 11: f16 -> [5] : A'=10, E'=9, F'=free_3, G'=free_3, [ 9>=A && free_3>=1 ], cost: 10-A Applied chaining over branches and pruning: Start location: f0 0: f0 -> f9 : A'=0, B'=0, C'=free, [], cost: 1 12: f9 -> f9 : A'=1+A, B'=1+A, C'=free_1, D'=C, [ 0>=1+C && 9>=A ], cost: 2 14: f9 -> f9 : A'=1+A, B'=1+A, C'=free_1, D'=C, [ C>=1 && 9>=A ], cost: 2 9: f9 -> f16 : A'=0, C'=0, D'=0, [ C==0 ], cost: 1 13: f9 -> f16 : A'=0, D'=C, [ 0>=1+C && A>=10 ], cost: 2 15: f9 -> f16 : A'=0, D'=C, [ C>=1 && A>=10 ], cost: 2 10: f16 -> [5] : A'=10, E'=9, F'=free_2, G'=free_2, [ 9>=A && 0>=1+free_2 ], cost: 10-A 11: f16 -> [5] : A'=10, E'=9, F'=free_3, G'=free_3, [ 9>=A && free_3>=1 ], cost: 10-A Eliminating 2 self-loops for location f9 Removing the self-loops: 12 14. Adding an epsilon transition (to model nonexecution of the loops): 18. Removed all Self-loops using metering functions (where possible): Start location: f0 0: f0 -> f9 : A'=0, B'=0, C'=free, [], cost: 1 16: f9 -> [6] : A'=1+A, B'=1+A, C'=free_1, D'=C, [ 0>=1+C && 9>=A ], cost: 2 17: f9 -> [6] : A'=1+A, B'=1+A, C'=free_1, D'=C, [ C>=1 && 9>=A ], cost: 2 18: f9 -> [6] : [], cost: 0 10: f16 -> [5] : A'=10, E'=9, F'=free_2, G'=free_2, [ 9>=A && 0>=1+free_2 ], cost: 10-A 11: f16 -> [5] : A'=10, E'=9, F'=free_3, G'=free_3, [ 9>=A && free_3>=1 ], cost: 10-A 9: [6] -> f16 : A'=0, C'=0, D'=0, [ C==0 ], cost: 1 13: [6] -> f16 : A'=0, D'=C, [ 0>=1+C && A>=10 ], cost: 2 15: [6] -> f16 : A'=0, D'=C, [ C>=1 && A>=10 ], cost: 2 Applied chaining over branches and pruning: Start location: f0 Final control flow graph problem, now checking costs for infinitely many models: Start location: f0 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),?)