Trying to load file: main.koat Initial Control flow graph problem: Start location: f0 0: f14 -> f14 : A'=-1+A, B'=-1+B, C'=1+C, D'=free, [ A>=1 && free>=1 ], cost: 1 1: f14 -> f14 : A'=-1+A, D'=free_1, [ 0>=free_1 && A>=1 && A>=1+B ], cost: 1 4: f14 -> f24 : [ 0>=A ], cost: 1 2: f24 -> f24 : [], cost: 1 3: f26 -> f29 : [], cost: 1 5: f0 -> f14 : A'=1+2*free_3, B'=free_2, C'=0, E'=free_2, F'=1+2*free_3, G'=free_3, [ free_2>=1 && 2*free_3>=0 ], cost: 1 Simplified the transitions: Start location: f0 0: f14 -> f14 : A'=-1+A, B'=-1+B, C'=1+C, D'=free, [ A>=1 && free>=1 ], cost: 1 1: f14 -> f14 : A'=-1+A, D'=free_1, [ 0>=free_1 && A>=1 && A>=1+B ], cost: 1 4: f14 -> f24 : [ 0>=A ], cost: 1 2: f24 -> f24 : [], cost: 1 5: f0 -> f14 : A'=1+2*free_3, B'=free_2, C'=0, E'=free_2, F'=1+2*free_3, G'=free_3, [ free_2>=1 && 2*free_3>=0 ], cost: 1 Eliminating 2 self-loops for location f14 Self-Loop 0 has the metering function: A, resulting in the new transition 6. Removing the self-loops: 0 1. Adding an epsilon transition (to model nonexecution of the loops): 8. Eliminating 1 self-loops for location f24 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: f14 -> [5] : A'=0, B'=B-A, C'=C+A, D'=free, [ A>=1 && free>=1 ], cost: A 7: f14 -> [5] : A'=-1+A, D'=free_1, [ 0>=free_1 && A>=1 && A>=1+B ], cost: 1 8: f14 -> [5] : [], cost: 0 9: f24 -> [6] : [], cost: INF 5: f0 -> f14 : A'=1+2*free_3, B'=free_2, C'=0, E'=free_2, F'=1+2*free_3, G'=free_3, [ free_2>=1 && 2*free_3>=0 ], cost: 1 4: [5] -> f24 : [ 0>=A ], cost: 1 Applied simple chaining: Start location: f0 6: f14 -> [5] : A'=0, B'=B-A, C'=C+A, D'=free, [ A>=1 && free>=1 ], cost: A 7: f14 -> [5] : A'=-1+A, D'=free_1, [ 0>=free_1 && A>=1 && A>=1+B ], cost: 1 8: f14 -> [5] : [], cost: 0 5: f0 -> f14 : A'=1+2*free_3, B'=free_2, C'=0, E'=free_2, F'=1+2*free_3, G'=free_3, [ free_2>=1 && 2*free_3>=0 ], cost: 1 4: [5] -> [6] : [ 0>=A ], cost: INF Applied chaining over branches and pruning: Start location: f0 10: f0 -> [5] : A'=0, B'=-1+free_2-2*free_3, C'=1+2*free_3, D'=free, E'=free_2, F'=1+2*free_3, G'=free_3, [ free_2>=1 && 2*free_3>=0 && 1+2*free_3>=1 && free>=1 ], cost: 2+2*free_3 11: f0 -> [5] : A'=2*free_3, B'=free_2, C'=0, D'=free_1, E'=free_2, F'=1+2*free_3, G'=free_3, [ free_2>=1 && 2*free_3>=0 && 0>=free_1 && 1+2*free_3>=1 && 1+2*free_3>=1+free_2 ], cost: 2 12: f0 -> [5] : A'=1+2*free_3, B'=free_2, C'=0, E'=free_2, F'=1+2*free_3, G'=free_3, [ free_2>=1 && 2*free_3>=0 ], cost: 1 4: [5] -> [6] : [ 0>=A ], cost: INF Applied chaining over branches and pruning: Start location: f0 13: f0 -> [6] : A'=0, B'=-1+free_2-2*free_3, C'=1+2*free_3, D'=free, E'=free_2, F'=1+2*free_3, G'=free_3, [ free_2>=1 && 2*free_3>=0 && 1+2*free_3>=1 && free>=1 && 0>=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+free_2-2*free_3, C'=1+2*free_3, D'=free, E'=free_2, F'=1+2*free_3, G'=free_3, [ free_2>=1 && 2*free_3>=0 && 1+2*free_3>=1 && free>=1 && 0>=0 ], cost: INF Computing complexity for remaining 1 transitions. Found new complexity INF, because: INF sat. The final runtime is determined by this resulting transition: Final Guard: free_2>=1 && 2*free_3>=0 && 1+2*free_3>=1 && free>=1 && 0>=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,?)