Trying to load file: main.koat Initial Control flow graph problem: Start location: start0 0: start -> stop : [ 0>=1+A && B==C && D==A && E==F && G==H ], cost: 1 1: start -> lbl82 : E'=2*D, G'=-1+2*D, [ A>=0 && B==C && D==A && E==F && G==H ], cost: 1 2: start -> lbl121 : B'=2*D, E'=-1+2*D, G'=-1+2*D, [ A>=0 && B==C && D==A && E==F && G==H ], cost: 1 3: lbl82 -> stop : [ E>=A && 2*A>=E && D==A && 1+G==A ], cost: 1 4: lbl82 -> lbl82 : G'=-1+G, [ G>=A && E>=1+G && 2*A>=E && 1+G>=A && D==A ], cost: 1 5: lbl82 -> lbl121 : B'=G, E'=-1+E, G'=-1+E, [ G>=A && E>=1+G && 2*A>=E && 1+G>=A && D==A ], cost: 1 6: lbl121 -> stop : [ A>=1+E && 2*A>=1+E && B>=A && 1+E>=B && G==E && D==A ], cost: 1 7: lbl121 -> lbl82 : G'=-1+G, [ E>=A && 2*A>=1+E && B>=A && 1+E>=B && G==E && D==A ], cost: 1 8: lbl121 -> lbl121 : B'=G, E'=-1+E, G'=-1+E, [ E>=A && 2*A>=1+E && B>=A && 1+E>=B && G==E && D==A ], cost: 1 9: start0 -> start : B'=C, D'=A, E'=F, G'=H, [], cost: 1 Simplified the transitions: Start location: start0 1: start -> lbl82 : E'=2*D, G'=-1+2*D, [ A>=0 && B==C && D==A && E==F && G==H ], cost: 1 2: start -> lbl121 : B'=2*D, E'=-1+2*D, G'=-1+2*D, [ A>=0 && B==C && D==A && E==F && G==H ], cost: 1 4: lbl82 -> lbl82 : G'=-1+G, [ G>=A && E>=1+G && 2*A>=E && D==A ], cost: 1 5: lbl82 -> lbl121 : B'=G, E'=-1+E, G'=-1+E, [ G>=A && E>=1+G && 2*A>=E && D==A ], cost: 1 7: lbl121 -> lbl82 : G'=-1+G, [ E>=A && 2*A>=1+E && B>=A && 1+E>=B && G==E && D==A ], cost: 1 8: lbl121 -> lbl121 : B'=G, E'=-1+E, G'=-1+E, [ E>=A && 2*A>=1+E && B>=A && 1+E>=B && G==E && D==A ], cost: 1 9: start0 -> start : B'=C, D'=A, E'=F, G'=H, [], cost: 1 Eliminating 1 self-loops for location lbl82 Self-Loop 4 has the metering function: 1+G-A, resulting in the new transition 10. Removing the self-loops: 4. Eliminating 1 self-loops for location lbl121 Self-Loop 8 has the metering function: 1+E-A, resulting in the new transition 11. Removing the self-loops: 8. Removed all Self-loops using metering functions (where possible): Start location: start0 1: start -> lbl82 : E'=2*D, G'=-1+2*D, [ A>=0 && B==C && D==A && E==F && G==H ], cost: 1 2: start -> lbl121 : B'=2*D, E'=-1+2*D, G'=-1+2*D, [ A>=0 && B==C && D==A && E==F && G==H ], cost: 1 10: lbl82 -> [5] : G'=-1+A, [ G>=A && E>=1+G && 2*A>=E && D==A ], cost: 1+G-A 11: lbl121 -> [6] : B'=A, E'=-1+A, G'=-1+A, [ E>=A && 2*A>=1+E && B>=A && 1+E>=B && G==E && D==A ], cost: 1+E-A 9: start0 -> start : B'=C, D'=A, E'=F, G'=H, [], cost: 1 5: [5] -> lbl121 : B'=G, E'=-1+E, G'=-1+E, [ G>=A && E>=1+G && 2*A>=E && D==A ], cost: 1 7: [6] -> lbl82 : G'=-1+G, [ E>=A && 2*A>=1+E && B>=A && 1+E>=B && G==E && D==A ], cost: 1 Applied chaining over branches and pruning: Start location: start0 14: lbl82 -> [7] : G'=-1+A, [ G>=A && E>=1+G && 2*A>=E && D==A ], cost: 1+G-A 15: lbl121 -> [8] : B'=A, E'=-1+A, G'=-1+A, [ E>=A && 2*A>=1+E && B>=A && 1+E>=B && G==E && D==A ], cost: 1+E-A 12: start0 -> lbl82 : B'=C, D'=A, E'=2*A, G'=-1+2*A, [ A>=0 && C==C && A==A && F==F && H==H ], cost: 2 13: start0 -> lbl121 : B'=2*A, D'=A, E'=-1+2*A, G'=-1+2*A, [ A>=0 && C==C && A==A && F==F && H==H ], cost: 2 Applied simple chaining: Start location: start0 12: start0 -> [7] : B'=C, D'=A, E'=2*A, G'=-1+A, [ A>=0 && C==C && A==A && F==F && H==H && -1+2*A>=A && 2*A>=2*A && 2*A>=2*A && A==A ], cost: 2+A 13: start0 -> [8] : B'=A, D'=A, E'=-1+A, G'=-1+A, [ A>=0 && C==C && A==A && F==F && H==H && -1+2*A>=A && 2*A>=2*A && 2*A>=A && 2*A>=2*A && -1+2*A==-1+2*A && A==A ], cost: 2+A Final control flow graph problem, now checking costs for infinitely many models: Start location: start0 12: start0 -> [7] : B'=C, D'=A, E'=2*A, G'=-1+A, [ A>=0 && C==C && A==A && F==F && H==H && -1+2*A>=A && 2*A>=2*A && 2*A>=2*A && A==A ], cost: 2+A 13: start0 -> [8] : B'=A, D'=A, E'=-1+A, G'=-1+A, [ A>=0 && C==C && A==A && F==F && H==H && -1+2*A>=A && 2*A>=2*A && 2*A>=A && 2*A>=2*A && -1+2*A==-1+2*A && A==A ], cost: 2+A Computing complexity for remaining 2 transitions. Found configuration with infinitely models for cost: 2+A and guard: A>=0 && C==C && A==A && F==F && H==H && -1+2*A>=A && 2*A>=2*A && 2*A>=2*A && A==A: H: Both, F: Both, C: Both, A: Pos Found new complexity n^1, because: Found infinity configuration. The final runtime is determined by this resulting transition: Final Guard: A>=0 && C==C && A==A && F==F && H==H && -1+2*A>=A && 2*A>=2*A && 2*A>=2*A && A==A Final Cost: 2+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),?)