Trying to load file: main.koat Initial Control flow graph problem: Start location: f0 0: f7 -> f7 : A'=free, [ 0>=1+A ], cost: 1 1: f7 -> f7 : A'=free_1, [ A>=1 ], cost: 1 4: f7 -> f13 : A'=0, B'=1, [ A==0 ], cost: 1 2: f13 -> f13 : [], cost: 1 3: f15 -> f17 : [], cost: 1 5: f0 -> f7 : A'=free_2, B'=1, [], cost: 1 Simplified the transitions: Start location: f0 0: f7 -> f7 : A'=free, [ 0>=1+A ], cost: 1 1: f7 -> f7 : A'=free_1, [ A>=1 ], cost: 1 4: f7 -> f13 : A'=0, B'=1, [ A==0 ], cost: 1 2: f13 -> f13 : [], cost: 1 5: f0 -> f7 : A'=free_2, B'=1, [], cost: 1 Eliminating 2 self-loops for location f7 Removing the self-loops: 0 1. Adding an epsilon transition (to model nonexecution of the loops): 8. Eliminating 1 self-loops for location f13 Self-Loop 2 has unbounded runtime, resulting in the new transition 9. Removing the self-loops: 2. Removed all Self-loops using metering functions (where possible): Start location: f0 6: f7 -> [5] : A'=free, [ 0>=1+A ], cost: 1 7: f7 -> [5] : A'=free_1, [ A>=1 ], cost: 1 8: f7 -> [5] : [], cost: 0 9: f13 -> [6] : [], cost: INF 5: f0 -> f7 : A'=free_2, B'=1, [], cost: 1 4: [5] -> f13 : A'=0, B'=1, [ A==0 ], cost: 1 Applied simple chaining: Start location: f0 6: f7 -> [5] : A'=free, [ 0>=1+A ], cost: 1 7: f7 -> [5] : A'=free_1, [ A>=1 ], cost: 1 8: f7 -> [5] : [], cost: 0 5: f0 -> f7 : A'=free_2, B'=1, [], cost: 1 4: [5] -> [6] : A'=0, B'=1, [ A==0 ], cost: INF Applied chaining over branches and pruning: Start location: f0 10: f0 -> [5] : A'=free, B'=1, [ 0>=1+free_2 ], cost: 2 11: f0 -> [5] : A'=free_1, B'=1, [ free_2>=1 ], cost: 2 12: f0 -> [5] : A'=free_2, B'=1, [], cost: 1 4: [5] -> [6] : A'=0, B'=1, [ A==0 ], cost: INF Applied chaining over branches and pruning: Start location: f0 13: f0 -> [6] : A'=0, B'=1, [ 0>=1+free_2 && free==0 ], cost: INF 14: f0 -> [6] : A'=0, B'=1, [ free_2>=1 && free_1==0 ], cost: INF 15: f0 -> [6] : A'=0, B'=1, [ free_2==0 ], cost: INF Final control flow graph problem, now checking costs for infinitely many models: Start location: f0 13: f0 -> [6] : A'=0, B'=1, [ 0>=1+free_2 && free==0 ], cost: INF 14: f0 -> [6] : A'=0, B'=1, [ free_2>=1 && free_1==0 ], cost: INF 15: f0 -> [6] : A'=0, B'=1, [ free_2==0 ], cost: INF Computing complexity for remaining 3 transitions. Found new complexity INF, because: INF sat. The final runtime is determined by this resulting transition: Final Guard: 0>=1+free_2 && free==0 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,?)