Trying to load file: main.koat Initial Control flow graph problem: Start location: f0 0: f26 -> f2 : [], cost: 1 1: f2 -> f2 : [], cost: 1 2: f9 -> f12 : B'=free, [ 5>=A && 0>=1+free ], cost: 1 3: f9 -> f12 : B'=free_1, [ 5>=A && free_1>=1 ], cost: 1 9: f9 -> f20 : B'=0, [ 5>=A ], cost: 1 10: f9 -> f20 : [ A>=6 ], cost: 1 4: f12 -> f9 : A'=1+A, [ A>=6 ], cost: 1 8: f12 -> f9 : A'=1+A, [ 5>=A ], cost: 1 5: f28 -> f30 : [], cost: 1 7: f20 -> f9 : [ 2>=A ], cost: 1 6: f20 -> f20 : A'=-1+A, [ A>=3 ], cost: 1 11: f0 -> f9 : A'=free_2, [], cost: 1 Simplified the transitions: Start location: f0 2: f9 -> f12 : B'=free, [ 5>=A && 0>=1+free ], cost: 1 3: f9 -> f12 : B'=free_1, [ 5>=A && free_1>=1 ], cost: 1 9: f9 -> f20 : B'=0, [ 5>=A ], cost: 1 10: f9 -> f20 : [ A>=6 ], cost: 1 4: f12 -> f9 : A'=1+A, [ A>=6 ], cost: 1 8: f12 -> f9 : A'=1+A, [ 5>=A ], cost: 1 7: f20 -> f9 : [ 2>=A ], cost: 1 6: f20 -> f20 : A'=-1+A, [ A>=3 ], cost: 1 11: f0 -> f9 : A'=free_2, [], cost: 1 Eliminating 1 self-loops for location f20 Self-Loop 6 has the metering function: -2+A, resulting in the new transition 12. Removing the self-loops: 6. Removed all Self-loops using metering functions (where possible): Start location: f0 2: f9 -> f12 : B'=free, [ 5>=A && 0>=1+free ], cost: 1 3: f9 -> f12 : B'=free_1, [ 5>=A && free_1>=1 ], cost: 1 9: f9 -> f20 : B'=0, [ 5>=A ], cost: 1 10: f9 -> f20 : [ A>=6 ], cost: 1 4: f12 -> f9 : A'=1+A, [ A>=6 ], cost: 1 8: f12 -> f9 : A'=1+A, [ 5>=A ], cost: 1 12: f20 -> [8] : A'=2, [ A>=3 ], cost: -2+A 11: f0 -> f9 : A'=free_2, [], cost: 1 7: [8] -> f9 : [ 2>=A ], cost: 1 Applied simple chaining: Start location: f0 2: f9 -> f12 : B'=free, [ 5>=A && 0>=1+free ], cost: 1 3: f9 -> f12 : B'=free_1, [ 5>=A && free_1>=1 ], cost: 1 9: f9 -> f20 : B'=0, [ 5>=A ], cost: 1 10: f9 -> f20 : [ A>=6 ], cost: 1 4: f12 -> f9 : A'=1+A, [ A>=6 ], cost: 1 8: f12 -> f9 : A'=1+A, [ 5>=A ], cost: 1 12: f20 -> f9 : A'=2, [ A>=3 && 2>=2 ], cost: -1+A 11: f0 -> f9 : A'=free_2, [], cost: 1 Applied chaining over branches and pruning: Start location: f0 13: f9 -> f9 : A'=1+A, B'=free, [ 5>=A && 0>=1+free && 5>=A ], cost: 2 14: f9 -> f9 : A'=1+A, B'=free_1, [ 5>=A && free_1>=1 && 5>=A ], cost: 2 15: f9 -> f9 : A'=2, B'=0, [ 5>=A && A>=3 && 2>=2 ], cost: A 16: f9 -> f9 : A'=2, [ A>=6 && A>=3 && 2>=2 ], cost: A 11: f0 -> f9 : A'=free_2, [], cost: 1 Eliminating 4 self-loops for location f9 Self-Loop 13 has the metering function: 6-A, resulting in the new transition 17. Self-Loop 14 has the metering function: 6-A, resulting in the new transition 18. Self-Loop 15 has the metering function: meter, resulting in the new transition 19. Found this metering function when nesting loops: meter_1, Found unbounded runtime when nesting loops, and nested parallel self-loops 20 (outer loop) and 17 (inner loop), obtaining the new transitions: 21, 22. Found unbounded runtime when nesting loops, and nested parallel self-loops 20 (outer loop) and 17 (inner loop), obtaining the new transitions: 23, 24. Found this metering function when nesting loops: meter_2, Found unbounded runtime when nesting loops, and nested parallel self-loops 20 (outer loop) and 18 (inner loop), obtaining the new transitions: 25, 26. Found unbounded runtime when nesting loops, and nested parallel self-loops 20 (outer loop) and 18 (inner loop), obtaining the new transitions: 27, 28. Found this metering function when nesting loops: 6-A, Found this metering function when nesting loops: 5-A, Found this metering function when nesting loops: 6-A, Found this metering function when nesting loops: 5-A, Found this metering function when nesting loops: meter_3, Found this metering function when nesting loops: meter_4, Found this metering function when nesting loops: meter_5, Found this metering function when nesting loops: meter_6, Found this metering function when nesting loops: 6-A, Found this metering function when nesting loops: 6-A, Found this metering function when nesting loops: meter_7, Found unbounded runtime when nesting loops, Found unbounded runtime when nesting loops, Found this metering function when nesting loops: 6-A, Found this metering function when nesting loops: 5-A, Found this metering function when nesting loops: 6-A, Found this metering function when nesting loops: 5-A, Found this metering function when nesting loops: meter_8, Found this metering function when nesting loops: meter_9, Found this metering function when nesting loops: meter_10, Found this metering function when nesting loops: meter_11, Found this metering function when nesting loops: 6-A, Found this metering function when nesting loops: 6-A, Found this metering function when nesting loops: meter_12, Found unbounded runtime when nesting loops, Found unbounded runtime when nesting loops, Removing the self-loops: 13 14 15 16 20. Adding an epsilon transition (to model nonexecution of the loops): 29. Removed all Self-loops using metering functions (where possible): Start location: f0 17: f9 -> [9] : A'=6, B'=free, [ 5>=A && 0>=1+free ], cost: 12-2*A 18: f9 -> [9] : A'=6, B'=free_1, [ 5>=A && free_1>=1 ], cost: 12-2*A 19: f9 -> [9] : A'=2, B'=0, [ 5>=A && A>=3 && 3*meter==-2+A ], cost: 2*meter 21: f9 -> [9] : [ 5>=A && 0>=1+free && 6>=6 ], cost: INF 22: f9 -> [9] : A'=2, [ A>=6 && 5>=2 && 0>=1+free && 6>=6 ], cost: INF 23: f9 -> [9] : [ A>=6 && 5>=2 && 0>=1+free ], cost: INF 24: f9 -> [9] : A'=6, B'=free, [ 5>=A && 0>=1+free && 6>=6 && 5>=2 && 0>=1+free ], cost: INF 25: f9 -> [9] : [ 5>=A && free_1>=1 && 6>=6 ], cost: INF 26: f9 -> [9] : A'=2, [ A>=6 && 5>=2 && free_1>=1 && 6>=6 ], cost: INF 27: f9 -> [9] : [ A>=6 && 5>=2 && free_1>=1 ], cost: INF 28: f9 -> [9] : A'=6, B'=free_1, [ 5>=A && free_1>=1 && 6>=6 && 5>=2 && free_1>=1 ], cost: INF 29: f9 -> [9] : [], cost: 0 11: f0 -> f9 : A'=free_2, [], cost: 1 Applied chaining over branches and pruning: Start location: f0 30: f0 -> [9] : A'=6, B'=free, [ 5>=free_2 && 0>=1+free ], cost: 13-2*free_2 31: f0 -> [9] : A'=6, B'=free_1, [ 5>=free_2 && free_1>=1 ], cost: 13-2*free_2 33: f0 -> [9] : A'=free_2, [ 5>=free_2 && 0>=1+free && 6>=6 ], cost: INF 35: f0 -> [9] : A'=free_2, [ free_2>=6 && 5>=2 && 0>=1+free ], cost: INF 38: f0 -> [9] : A'=2, [ free_2>=6 && 5>=2 && free_1>=1 && 6>=6 ], cost: INF Final control flow graph problem, now checking costs for infinitely many models: Start location: f0 30: f0 -> [9] : A'=6, B'=free, [ 5>=free_2 && 0>=1+free ], cost: 13-2*free_2 31: f0 -> [9] : A'=6, B'=free_1, [ 5>=free_2 && free_1>=1 ], cost: 13-2*free_2 33: f0 -> [9] : A'=free_2, [ 5>=free_2 && 0>=1+free && 6>=6 ], cost: INF 35: f0 -> [9] : A'=free_2, [ free_2>=6 && 5>=2 && 0>=1+free ], cost: INF 38: f0 -> [9] : A'=2, [ free_2>=6 && 5>=2 && free_1>=1 && 6>=6 ], cost: INF Computing complexity for remaining 5 transitions. Found configuration with infinitely models for cost: 13-2*free_2 and guard: 5>=free_2 && 0>=1+free: free_2: Neg, free: Neg Found new complexity INF, because: Found infinity configuration. The final runtime is determined by this resulting transition: Final Guard: 5>=free_2 && 0>=1+free Final Cost: 13-2*free_2 Obtained the following complexity w.r.t. the length of the input n: Complexity class: INF Complexity value: INF WORST_CASE(INF,?)