Trying to load file: main.koat Initial Control flow graph problem: Start location: evalrealheapsortstep2start 0: evalrealheapsortstep2start -> evalrealheapsortstep2entryin : [], cost: 1 1: evalrealheapsortstep2entryin -> evalrealheapsortstep2bbin : [ A>=3 ], cost: 1 2: evalrealheapsortstep2entryin -> evalrealheapsortstep2returnin : [ 2>=A ], cost: 1 3: evalrealheapsortstep2bbin -> evalrealheapsortstep2bb11in : B'=0, [], cost: 1 20: evalrealheapsortstep2returnin -> evalrealheapsortstep2stop : [], cost: 1 5: evalrealheapsortstep2bb11in -> evalrealheapsortstep2returnin : [ 1+B>=A ], cost: 1 4: evalrealheapsortstep2bb11in -> evalrealheapsortstep2bb1in : [ A>=2+B ], cost: 1 6: evalrealheapsortstep2bb1in -> evalrealheapsortstep2bb9in : C'=0, [], cost: 1 7: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb2in : [ A>=3+B+2*C ], cost: 1 8: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb10in : [ 2+B+2*C>=A ], cost: 1 9: evalrealheapsortstep2bb2in -> evalrealheapsortstep2bb4in : [ A==3+B+2*C ], cost: 1 10: evalrealheapsortstep2bb2in -> evalrealheapsortstep2bb3in : [ A>=4+B+2*C ], cost: 1 11: evalrealheapsortstep2bb2in -> evalrealheapsortstep2bb3in : [ 2+B+2*C>=A ], cost: 1 19: evalrealheapsortstep2bb10in -> evalrealheapsortstep2bb11in : B'=1+B, [], cost: 1 14: evalrealheapsortstep2bb4in -> evalrealheapsortstep2bb6in : D'=1+2*C, [], cost: 1 12: evalrealheapsortstep2bb3in -> evalrealheapsortstep2bb4in : [], cost: 1 13: evalrealheapsortstep2bb3in -> evalrealheapsortstep2bb5in : [], cost: 1 15: evalrealheapsortstep2bb5in -> evalrealheapsortstep2bb6in : D'=2+2*C, [], cost: 1 17: evalrealheapsortstep2bb6in -> evalrealheapsortstep2bb9in : C'=A, [], cost: 1 16: evalrealheapsortstep2bb6in -> evalrealheapsortstep2bb7in : [], cost: 1 18: evalrealheapsortstep2bb7in -> evalrealheapsortstep2bb9in : C'=D, [], cost: 1 Simplified the transitions: Start location: evalrealheapsortstep2start 0: evalrealheapsortstep2start -> evalrealheapsortstep2entryin : [], cost: 1 1: evalrealheapsortstep2entryin -> evalrealheapsortstep2bbin : [ A>=3 ], cost: 1 3: evalrealheapsortstep2bbin -> evalrealheapsortstep2bb11in : B'=0, [], cost: 1 4: evalrealheapsortstep2bb11in -> evalrealheapsortstep2bb1in : [ A>=2+B ], cost: 1 6: evalrealheapsortstep2bb1in -> evalrealheapsortstep2bb9in : C'=0, [], cost: 1 7: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb2in : [ A>=3+B+2*C ], cost: 1 8: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb10in : [ 2+B+2*C>=A ], cost: 1 9: evalrealheapsortstep2bb2in -> evalrealheapsortstep2bb4in : [ A==3+B+2*C ], cost: 1 10: evalrealheapsortstep2bb2in -> evalrealheapsortstep2bb3in : [ A>=4+B+2*C ], cost: 1 11: evalrealheapsortstep2bb2in -> evalrealheapsortstep2bb3in : [ 2+B+2*C>=A ], cost: 1 19: evalrealheapsortstep2bb10in -> evalrealheapsortstep2bb11in : B'=1+B, [], cost: 1 14: evalrealheapsortstep2bb4in -> evalrealheapsortstep2bb6in : D'=1+2*C, [], cost: 1 12: evalrealheapsortstep2bb3in -> evalrealheapsortstep2bb4in : [], cost: 1 13: evalrealheapsortstep2bb3in -> evalrealheapsortstep2bb5in : [], cost: 1 15: evalrealheapsortstep2bb5in -> evalrealheapsortstep2bb6in : D'=2+2*C, [], cost: 1 17: evalrealheapsortstep2bb6in -> evalrealheapsortstep2bb9in : C'=A, [], cost: 1 16: evalrealheapsortstep2bb6in -> evalrealheapsortstep2bb7in : [], cost: 1 18: evalrealheapsortstep2bb7in -> evalrealheapsortstep2bb9in : C'=D, [], cost: 1 Applied simple chaining: Start location: evalrealheapsortstep2start 0: evalrealheapsortstep2start -> evalrealheapsortstep2bb11in : B'=0, [ A>=3 ], cost: 3 4: evalrealheapsortstep2bb11in -> evalrealheapsortstep2bb9in : C'=0, [ A>=2+B ], cost: 2 8: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb11in : B'=1+B, [ 2+B+2*C>=A ], cost: 2 7: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb2in : [ A>=3+B+2*C ], cost: 1 9: evalrealheapsortstep2bb2in -> evalrealheapsortstep2bb4in : [ A==3+B+2*C ], cost: 1 10: evalrealheapsortstep2bb2in -> evalrealheapsortstep2bb3in : [ A>=4+B+2*C ], cost: 1 11: evalrealheapsortstep2bb2in -> evalrealheapsortstep2bb3in : [ 2+B+2*C>=A ], cost: 1 14: evalrealheapsortstep2bb4in -> evalrealheapsortstep2bb6in : D'=1+2*C, [], cost: 1 12: evalrealheapsortstep2bb3in -> evalrealheapsortstep2bb4in : [], cost: 1 13: evalrealheapsortstep2bb3in -> evalrealheapsortstep2bb6in : D'=2+2*C, [], cost: 2 17: evalrealheapsortstep2bb6in -> evalrealheapsortstep2bb9in : C'=A, [], cost: 1 16: evalrealheapsortstep2bb6in -> evalrealheapsortstep2bb9in : C'=D, [], cost: 2 Applied chaining over branches and pruning: Start location: evalrealheapsortstep2start 0: evalrealheapsortstep2start -> evalrealheapsortstep2bb11in : B'=0, [ A>=3 ], cost: 3 4: evalrealheapsortstep2bb11in -> evalrealheapsortstep2bb9in : C'=0, [ A>=2+B ], cost: 2 8: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb11in : B'=1+B, [ 2+B+2*C>=A ], cost: 2 21: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb4in : [ A>=3+B+2*C && A==3+B+2*C ], cost: 2 22: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb3in : [ A>=3+B+2*C && A>=4+B+2*C ], cost: 2 14: evalrealheapsortstep2bb4in -> evalrealheapsortstep2bb6in : D'=1+2*C, [], cost: 1 12: evalrealheapsortstep2bb3in -> evalrealheapsortstep2bb4in : [], cost: 1 13: evalrealheapsortstep2bb3in -> evalrealheapsortstep2bb6in : D'=2+2*C, [], cost: 2 17: evalrealheapsortstep2bb6in -> evalrealheapsortstep2bb9in : C'=A, [], cost: 1 16: evalrealheapsortstep2bb6in -> evalrealheapsortstep2bb9in : C'=D, [], cost: 2 Applied chaining over branches and pruning: Start location: evalrealheapsortstep2start 0: evalrealheapsortstep2start -> evalrealheapsortstep2bb11in : B'=0, [ A>=3 ], cost: 3 4: evalrealheapsortstep2bb11in -> evalrealheapsortstep2bb9in : C'=0, [ A>=2+B ], cost: 2 8: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb11in : B'=1+B, [ 2+B+2*C>=A ], cost: 2 21: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb4in : [ A>=3+B+2*C && A==3+B+2*C ], cost: 2 23: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb4in : [ A>=3+B+2*C && A>=4+B+2*C ], cost: 3 24: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb6in : D'=2+2*C, [ A>=3+B+2*C && A>=4+B+2*C ], cost: 4 14: evalrealheapsortstep2bb4in -> evalrealheapsortstep2bb6in : D'=1+2*C, [], cost: 1 17: evalrealheapsortstep2bb6in -> evalrealheapsortstep2bb9in : C'=A, [], cost: 1 16: evalrealheapsortstep2bb6in -> evalrealheapsortstep2bb9in : C'=D, [], cost: 2 Applied chaining over branches and pruning: Start location: evalrealheapsortstep2start 0: evalrealheapsortstep2start -> evalrealheapsortstep2bb11in : B'=0, [ A>=3 ], cost: 3 4: evalrealheapsortstep2bb11in -> evalrealheapsortstep2bb9in : C'=0, [ A>=2+B ], cost: 2 8: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb11in : B'=1+B, [ 2+B+2*C>=A ], cost: 2 24: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb6in : D'=2+2*C, [ A>=3+B+2*C && A>=4+B+2*C ], cost: 4 25: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb6in : D'=1+2*C, [ A>=3+B+2*C && A==3+B+2*C ], cost: 3 26: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb6in : D'=1+2*C, [ A>=3+B+2*C && A>=4+B+2*C ], cost: 4 17: evalrealheapsortstep2bb6in -> evalrealheapsortstep2bb9in : C'=A, [], cost: 1 16: evalrealheapsortstep2bb6in -> evalrealheapsortstep2bb9in : C'=D, [], cost: 2 Applied chaining over branches and pruning: Start location: evalrealheapsortstep2start 0: evalrealheapsortstep2start -> evalrealheapsortstep2bb11in : B'=0, [ A>=3 ], cost: 3 4: evalrealheapsortstep2bb11in -> evalrealheapsortstep2bb9in : C'=0, [ A>=2+B ], cost: 2 8: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb11in : B'=1+B, [ 2+B+2*C>=A ], cost: 2 27: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb9in : C'=A, D'=2+2*C, [ A>=3+B+2*C && A>=4+B+2*C ], cost: 5 28: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb9in : C'=2+2*C, D'=2+2*C, [ A>=3+B+2*C && A>=4+B+2*C ], cost: 6 29: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb9in : C'=A, D'=1+2*C, [ A>=3+B+2*C && A==3+B+2*C ], cost: 4 30: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb9in : C'=1+2*C, D'=1+2*C, [ A>=3+B+2*C && A==3+B+2*C ], cost: 5 32: evalrealheapsortstep2bb9in -> evalrealheapsortstep2bb9in : C'=1+2*C, D'=1+2*C, [ A>=3+B+2*C && A>=4+B+2*C ], cost: 6 Eliminating 5 self-loops for location evalrealheapsortstep2bb9in Removing the self-loops: 27 28 29 30 32. Adding an epsilon transition (to model nonexecution of the loops): 38. Removed all Self-loops using metering functions (where possible): Start location: evalrealheapsortstep2start 0: evalrealheapsortstep2start -> evalrealheapsortstep2bb11in : B'=0, [ A>=3 ], cost: 3 4: evalrealheapsortstep2bb11in -> evalrealheapsortstep2bb9in : C'=0, [ A>=2+B ], cost: 2 33: evalrealheapsortstep2bb9in -> [15] : C'=A, D'=2+2*C, [ A>=4+B+2*C ], cost: 5 34: evalrealheapsortstep2bb9in -> [15] : C'=2+2*C, D'=2+2*C, [ A>=4+B+2*C ], cost: 6 35: evalrealheapsortstep2bb9in -> [15] : C'=A, D'=1+2*C, [ A==3+B+2*C ], cost: 4 36: evalrealheapsortstep2bb9in -> [15] : C'=1+2*C, D'=1+2*C, [ A==3+B+2*C ], cost: 5 37: evalrealheapsortstep2bb9in -> [15] : C'=1+2*C, D'=1+2*C, [ A>=4+B+2*C ], cost: 6 38: evalrealheapsortstep2bb9in -> [15] : [], cost: 0 8: [15] -> evalrealheapsortstep2bb11in : B'=1+B, [ 2+B+2*C>=A ], cost: 2 Applied chaining over branches and pruning: Start location: evalrealheapsortstep2start 0: evalrealheapsortstep2start -> evalrealheapsortstep2bb11in : B'=0, [ A>=3 ], cost: 3 39: evalrealheapsortstep2bb11in -> [15] : C'=A, D'=2, [ A>=2+B && A>=4+B ], cost: 7 40: evalrealheapsortstep2bb11in -> [15] : C'=2, D'=2, [ A>=2+B && A>=4+B ], cost: 8 41: evalrealheapsortstep2bb11in -> [15] : C'=A, D'=1, [ A>=2+B && A==3+B ], cost: 6 42: evalrealheapsortstep2bb11in -> [15] : C'=1, D'=1, [ A>=2+B && A==3+B ], cost: 7 44: evalrealheapsortstep2bb11in -> [15] : C'=0, [ A>=2+B ], cost: 2 8: [15] -> evalrealheapsortstep2bb11in : B'=1+B, [ 2+B+2*C>=A ], cost: 2 Applied chaining over branches and pruning: Start location: evalrealheapsortstep2start 0: evalrealheapsortstep2start -> evalrealheapsortstep2bb11in : B'=0, [ A>=3 ], cost: 3 45: evalrealheapsortstep2bb11in -> evalrealheapsortstep2bb11in : B'=1+B, C'=A, D'=2, [ A>=2+B && A>=4+B && 2+B+2*A>=A ], cost: 9 46: evalrealheapsortstep2bb11in -> evalrealheapsortstep2bb11in : B'=1+B, C'=2, D'=2, [ A>=2+B && A>=4+B && 6+B>=A ], cost: 10 47: evalrealheapsortstep2bb11in -> evalrealheapsortstep2bb11in : B'=1+B, C'=A, D'=1, [ A>=2+B && A==3+B && 2+B+2*A>=A ], cost: 8 48: evalrealheapsortstep2bb11in -> evalrealheapsortstep2bb11in : B'=1+B, C'=1, D'=1, [ A>=2+B && A==3+B && 4+B>=A ], cost: 9 49: evalrealheapsortstep2bb11in -> evalrealheapsortstep2bb11in : B'=1+B, C'=0, [ A>=2+B && 2+B>=A ], cost: 4 Eliminating 5 self-loops for location evalrealheapsortstep2bb11in Self-Loop 45 has the metering function: -3-B+A, resulting in the new transition 50. Self-Loop 46 has the metering function: -3-B+A, resulting in the new transition 51. Self-Loop 47 has the metering function: -2-B+A, resulting in the new transition 52. Self-Loop 48 has the metering function: -2-B+A, resulting in the new transition 53. Self-Loop 49 has the metering function: -1-B+A, resulting in the new transition 54. 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, 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: meter_7, 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, Removing the self-loops: 45 46 47 48 49. Removed all Self-loops using metering functions (where possible): Start location: evalrealheapsortstep2start 0: evalrealheapsortstep2start -> evalrealheapsortstep2bb11in : B'=0, [ A>=3 ], cost: 3 50: evalrealheapsortstep2bb11in -> [16] : B'=-3+A, C'=A, D'=2, [ A>=4+B && 2+B+2*A>=A ], cost: -27-9*B+9*A 51: evalrealheapsortstep2bb11in -> [16] : B'=-3+A, C'=2, D'=2, [ A>=4+B && 6+B>=A ], cost: -30-10*B+10*A 52: evalrealheapsortstep2bb11in -> [16] : B'=-2+A, C'=A, D'=1, [ A==3+B && 2+B+2*A>=A ], cost: -16-8*B+8*A 53: evalrealheapsortstep2bb11in -> [16] : B'=-2+A, C'=1, D'=1, [ A==3+B ], cost: -18-9*B+9*A 54: evalrealheapsortstep2bb11in -> [16] : B'=-1+A, C'=0, [ 2+B-A==0 ], cost: -4-4*B+4*A Applied chaining over branches and pruning: Start location: evalrealheapsortstep2start 55: evalrealheapsortstep2start -> [16] : B'=-3+A, C'=A, D'=2, [ A>=3 && A>=4 && 2+2*A>=A ], cost: -24+9*A 56: evalrealheapsortstep2start -> [16] : B'=-3+A, C'=2, D'=2, [ A>=3 && A>=4 && 6>=A ], cost: -27+10*A 57: evalrealheapsortstep2start -> [16] : B'=-2+A, C'=A, D'=1, [ A>=3 && A==3 && 2+2*A>=A ], cost: -13+8*A 58: evalrealheapsortstep2start -> [16] : B'=-2+A, C'=1, D'=1, [ A>=3 && A==3 ], cost: -15+9*A Final control flow graph problem, now checking costs for infinitely many models: Start location: evalrealheapsortstep2start 55: evalrealheapsortstep2start -> [16] : B'=-3+A, C'=A, D'=2, [ A>=3 && A>=4 && 2+2*A>=A ], cost: -24+9*A 56: evalrealheapsortstep2start -> [16] : B'=-3+A, C'=2, D'=2, [ A>=3 && A>=4 && 6>=A ], cost: -27+10*A 57: evalrealheapsortstep2start -> [16] : B'=-2+A, C'=A, D'=1, [ A>=3 && A==3 && 2+2*A>=A ], cost: -13+8*A 58: evalrealheapsortstep2start -> [16] : B'=-2+A, C'=1, D'=1, [ A>=3 && A==3 ], cost: -15+9*A Computing complexity for remaining 4 transitions. Found configuration with infinitely models for cost: -24+9*A and guard: A>=3 && A>=4 && 2+2*A>=A: A: Pos Found new complexity n^1, because: Found infinity configuration. The final runtime is determined by this resulting transition: Final Guard: A>=3 && A>=4 && 2+2*A>=A Final Cost: -24+9*A Obtained the following complexity w.r.t. the length of the input n: Complexity class: n^1 Complexity value: 1 WORST_CASE(Omega(n^1),?)