Trying to load file: main.koat Initial Control flow graph problem: Start location: start0 0: start -> stop : K'=-1+H, [ 1>=A && B==C && D==E && F==G && H==A && Q==J && K==L ], cost: 1 1: start -> lbl71 : D'=0, F'=free, Q'=0, K'=-1+H, [ A>=2 && B==C && D==E && F==G && H==A && Q==J && K==L ], cost: 1 2: start -> lbl53 : B'=0, D'=0, Q'=1, K'=-1+H, [ A>=2 && B==C && D==E && F==G && H==A && Q==J && K==L ], cost: 1 3: lbl71 -> lbl53 : B'=Q, D'=1, Q'=1+Q, [ D>=0 && Q>=D && K>=1+Q && A>=1+K && H==A ], cost: 1 4: lbl53 -> stop : [ B>=0 && A>=2+B && Q==1+B && D==0 && K==1+B && H==A ], cost: 1 7: lbl53 -> lbl71 : F'=free_1, [ K>=2+B && B>=0 && D>=0 && K>=1+B && 1>=D && A>=1+K && Q==1+B && H==A ], cost: 1 8: lbl53 -> lbl53 : B'=Q, Q'=1+Q, [ K>=2+B && B>=0 && D>=0 && K>=1+B && 1>=D && A>=1+K && Q==1+B && H==A ], cost: 1 5: lbl53 -> lbl13 : K'=-1+K, [ 0>=1+D && B>=0 && D>=0 && 1>=D && A>=2+B && Q==1+B && K==1+B && H==A ], cost: 1 6: lbl53 -> lbl13 : K'=-1+K, [ B>=0 && A>=2+B && D==1 && Q==1+B && K==1+B && H==A ], cost: 1 9: lbl13 -> stop : [ A>=2 && K==0 && D==1 && H==A && Q==1 && B==0 ], cost: 1 10: lbl13 -> lbl71 : D'=0, F'=free_2, Q'=0, [ B>=1 && B>=0 && A>=2+B && D==1 && H==A && K==B && Q==1+B ], cost: 1 11: lbl13 -> lbl53 : B'=0, D'=0, Q'=1, [ B>=1 && B>=0 && A>=2+B && D==1 && H==A && K==B && Q==1+B ], cost: 1 12: start0 -> start : B'=C, D'=E, F'=G, H'=A, Q'=J, K'=L, [], cost: 1 Simplified the transitions: Start location: start0 1: start -> lbl71 : D'=0, F'=free, Q'=0, K'=-1+H, [ A>=2 && B==C && D==E && F==G && H==A && Q==J && K==L ], cost: 1 2: start -> lbl53 : B'=0, D'=0, Q'=1, K'=-1+H, [ A>=2 && B==C && D==E && F==G && H==A && Q==J && K==L ], cost: 1 3: lbl71 -> lbl53 : B'=Q, D'=1, Q'=1+Q, [ D>=0 && Q>=D && K>=1+Q && A>=1+K && H==A ], cost: 1 7: lbl53 -> lbl71 : F'=free_1, [ K>=2+B && B>=0 && D>=0 && 1>=D && A>=1+K && Q==1+B && H==A ], cost: 1 8: lbl53 -> lbl53 : B'=Q, Q'=1+Q, [ K>=2+B && B>=0 && D>=0 && 1>=D && A>=1+K && Q==1+B && H==A ], cost: 1 5: lbl53 -> lbl13 : K'=-1+K, [ 0>=1+D && B>=0 && D>=0 && A>=2+B && Q==1+B && K==1+B && H==A ], cost: 1 6: lbl53 -> lbl13 : K'=-1+K, [ B>=0 && A>=2+B && D==1 && Q==1+B && K==1+B && H==A ], cost: 1 10: lbl13 -> lbl71 : D'=0, F'=free_2, Q'=0, [ B>=1 && A>=2+B && D==1 && H==A && K==B && Q==1+B ], cost: 1 11: lbl13 -> lbl53 : B'=0, D'=0, Q'=1, [ B>=1 && A>=2+B && D==1 && H==A && K==B && Q==1+B ], cost: 1 12: start0 -> start : B'=C, D'=E, F'=G, H'=A, Q'=J, K'=L, [], cost: 1 Eliminating 1 self-loops for location lbl53 Self-Loop 8 has the metering function: meter, resulting in the new transition 13. Removing the self-loops: 8. Removed all Self-loops using metering functions (where possible): Start location: start0 1: start -> lbl71 : D'=0, F'=free, Q'=0, K'=-1+H, [ A>=2 && B==C && D==E && F==G && H==A && Q==J && K==L ], cost: 1 2: start -> lbl53 : B'=0, D'=0, Q'=1, K'=-1+H, [ A>=2 && B==C && D==E && F==G && H==A && Q==J && K==L ], cost: 1 3: lbl71 -> lbl53 : B'=Q, D'=1, Q'=1+Q, [ D>=0 && Q>=D && K>=1+Q && A>=1+K && H==A ], cost: 1 13: lbl53 -> [6] : B'=-1+Q+meter, Q'=Q+meter, [ K>=2+B && B>=0 && D>=0 && 1>=D && A>=1+K && Q==1+B && H==A && 2*meter==-1+2*K-B-Q ], cost: meter 10: lbl13 -> lbl71 : D'=0, F'=free_2, Q'=0, [ B>=1 && A>=2+B && D==1 && H==A && K==B && Q==1+B ], cost: 1 11: lbl13 -> lbl53 : B'=0, D'=0, Q'=1, [ B>=1 && A>=2+B && D==1 && H==A && K==B && Q==1+B ], cost: 1 12: start0 -> start : B'=C, D'=E, F'=G, H'=A, Q'=J, K'=L, [], cost: 1 7: [6] -> lbl71 : F'=free_1, [ K>=2+B && B>=0 && D>=0 && 1>=D && A>=1+K && Q==1+B && H==A ], cost: 1 5: [6] -> lbl13 : K'=-1+K, [ 0>=1+D && B>=0 && D>=0 && A>=2+B && Q==1+B && K==1+B && H==A ], cost: 1 6: [6] -> lbl13 : K'=-1+K, [ B>=0 && A>=2+B && D==1 && Q==1+B && K==1+B && H==A ], cost: 1 Applied chaining over branches and pruning: Start location: start0 3: lbl71 -> lbl53 : B'=Q, D'=1, Q'=1+Q, [ D>=0 && Q>=D && K>=1+Q && A>=1+K && H==A ], cost: 1 18: lbl53 -> lbl13 : B'=-1+Q+meter, Q'=Q+meter, K'=-1+K, [ K>=2+B && B>=0 && D>=0 && 1>=D && A>=1+K && Q==1+B && H==A && 2*meter==-1+2*K-B-Q && -1+Q+meter>=0 && A>=1+Q+meter && D==1 && Q+meter==Q+meter && K==Q+meter && H==A ], cost: 1+meter 16: lbl53 -> [7] : B'=-1+Q+meter, Q'=Q+meter, [ K>=2+B && B>=0 && D>=0 && 1>=D && A>=1+K && Q==1+B && H==A && 2*meter==-1+2*K-B-Q ], cost: meter 17: lbl53 -> [8] : B'=-1+Q+meter, Q'=Q+meter, [ K>=2+B && B>=0 && D>=0 && 1>=D && A>=1+K && Q==1+B && H==A && 2*meter==-1+2*K-B-Q ], cost: meter 10: lbl13 -> lbl71 : D'=0, F'=free_2, Q'=0, [ B>=1 && A>=2+B && D==1 && H==A && K==B && Q==1+B ], cost: 1 11: lbl13 -> lbl53 : B'=0, D'=0, Q'=1, [ B>=1 && A>=2+B && D==1 && H==A && K==B && Q==1+B ], cost: 1 14: start0 -> lbl71 : B'=C, D'=0, F'=free, H'=A, Q'=0, K'=-1+A, [ A>=2 && C==C && E==E && G==G && A==A && J==J && L==L ], cost: 2 15: start0 -> lbl53 : B'=0, D'=0, F'=G, H'=A, Q'=1, K'=-1+A, [ A>=2 && C==C && E==E && G==G && A==A && J==J && L==L ], cost: 2 Applied chaining over branches and pruning: Start location: start0 3: lbl71 -> lbl53 : B'=Q, D'=1, Q'=1+Q, [ D>=0 && Q>=D && K>=1+Q && A>=1+K && H==A ], cost: 1 19: lbl53 -> lbl71 : B'=-1+Q+meter, D'=0, F'=free_2, Q'=0, K'=-1+K, [ K>=2+B && B>=0 && D>=0 && 1>=D && A>=1+K && Q==1+B && H==A && 2*meter==-1+2*K-B-Q && -1+Q+meter>=0 && A>=1+Q+meter && D==1 && Q+meter==Q+meter && K==Q+meter && H==A && -1+Q+meter>=1 && A>=1+Q+meter && D==1 && H==A && -1+K==-1+Q+meter && Q+meter==Q+meter ], cost: 2+meter 20: lbl53 -> lbl53 : B'=0, D'=0, Q'=1, K'=-1+K, [ K>=2+B && B>=0 && D>=0 && 1>=D && A>=1+K && Q==1+B && H==A && 2*meter==-1+2*K-B-Q && -1+Q+meter>=0 && A>=1+Q+meter && D==1 && Q+meter==Q+meter && K==Q+meter && H==A && -1+Q+meter>=1 && A>=1+Q+meter && D==1 && H==A && -1+K==-1+Q+meter && Q+meter==Q+meter ], cost: 2+meter 16: lbl53 -> [7] : B'=-1+Q+meter, Q'=Q+meter, [ K>=2+B && B>=0 && D>=0 && 1>=D && A>=1+K && Q==1+B && H==A && 2*meter==-1+2*K-B-Q ], cost: meter 17: lbl53 -> [8] : B'=-1+Q+meter, Q'=Q+meter, [ K>=2+B && B>=0 && D>=0 && 1>=D && A>=1+K && Q==1+B && H==A && 2*meter==-1+2*K-B-Q ], cost: meter 14: start0 -> lbl71 : B'=C, D'=0, F'=free, H'=A, Q'=0, K'=-1+A, [ A>=2 && C==C && E==E && G==G && A==A && J==J && L==L ], cost: 2 15: start0 -> lbl53 : B'=0, D'=0, F'=G, H'=A, Q'=1, K'=-1+A, [ A>=2 && C==C && E==E && G==G && A==A && J==J && L==L ], cost: 2 Eliminating 1 self-loops for location lbl53 Self-Loop 20 has the metering function: -1+D, resulting in the new transition 21. Removing the self-loops: 20. Removed all Self-loops using metering functions (where possible): Start location: start0 3: lbl71 -> lbl53 : B'=Q, D'=1, Q'=1+Q, [ D>=0 && Q>=D && K>=1+Q && A>=1+K && H==A ], cost: 1 21: lbl53 -> [9] : B'=0, D'=0, Q'=1, K'=1+K-D, [ K>=2+B && B>=0 && A>=1+K && Q==1+B && H==A && 2*K-2*Q==-1+2*K-B-Q && A>=1+K && D==1 && -1+K>=1 ], cost: -3/2+K*(-1+D)-1/2*(-1+D)^2+3/2*D 14: start0 -> lbl71 : B'=C, D'=0, F'=free, H'=A, Q'=0, K'=-1+A, [ A>=2 && C==C && E==E && G==G && A==A && J==J && L==L ], cost: 2 15: start0 -> lbl53 : B'=0, D'=0, F'=G, H'=A, Q'=1, K'=-1+A, [ A>=2 && C==C && E==E && G==G && A==A && J==J && L==L ], cost: 2 19: [9] -> lbl71 : B'=-1+Q+meter, D'=0, F'=free_2, Q'=0, K'=-1+K, [ K>=2+B && B>=0 && D>=0 && 1>=D && A>=1+K && Q==1+B && H==A && 2*meter==-1+2*K-B-Q && -1+Q+meter>=0 && A>=1+Q+meter && D==1 && Q+meter==Q+meter && K==Q+meter && H==A && -1+Q+meter>=1 && A>=1+Q+meter && D==1 && H==A && -1+K==-1+Q+meter && Q+meter==Q+meter ], cost: 2+meter 16: [9] -> [7] : B'=-1+Q+meter, Q'=Q+meter, [ K>=2+B && B>=0 && D>=0 && 1>=D && A>=1+K && Q==1+B && H==A && 2*meter==-1+2*K-B-Q ], cost: meter 17: [9] -> [8] : B'=-1+Q+meter, Q'=Q+meter, [ K>=2+B && B>=0 && D>=0 && 1>=D && A>=1+K && Q==1+B && H==A && 2*meter==-1+2*K-B-Q ], cost: meter Applied chaining over branches and pruning: Start location: start0 3: lbl71 -> lbl53 : B'=Q, D'=1, Q'=1+Q, [ D>=0 && Q>=D && K>=1+Q && A>=1+K && H==A ], cost: 1 23: lbl53 -> [7] : B'=meter, D'=0, Q'=1+meter, K'=1+K-D, [ K>=2+B && B>=0 && A>=1+K && Q==1+B && H==A && 2*K-2*Q==-1+2*K-B-Q && A>=1+K && D==1 && -1+K>=1 && 1+K-D>=2 && 0>=0 && 0>=0 && 1>=0 && A>=2+K-D && 1==1 && H==A && 2*meter==2*K-2*D ], cost: -3/2+K*(-1+D)-1/2*(-1+D)^2+meter+3/2*D 24: lbl53 -> [8] : B'=meter, D'=0, Q'=1+meter, K'=1+K-D, [ K>=2+B && B>=0 && A>=1+K && Q==1+B && H==A && 2*K-2*Q==-1+2*K-B-Q && A>=1+K && D==1 && -1+K>=1 && 1+K-D>=2 && 0>=0 && 0>=0 && 1>=0 && A>=2+K-D && 1==1 && H==A && 2*meter==2*K-2*D ], cost: -3/2+K*(-1+D)-1/2*(-1+D)^2+meter+3/2*D 22: lbl53 -> [10] : B'=0, D'=0, Q'=1, K'=1+K-D, [ K>=2+B && B>=0 && A>=1+K && Q==1+B && H==A && 2*K-2*Q==-1+2*K-B-Q && A>=1+K && D==1 && -1+K>=1 ], cost: -3/2+K*(-1+D)-1/2*(-1+D)^2+3/2*D 14: start0 -> lbl71 : B'=C, D'=0, F'=free, H'=A, Q'=0, K'=-1+A, [ A>=2 && C==C && E==E && G==G && A==A && J==J && L==L ], cost: 2 15: start0 -> lbl53 : B'=0, D'=0, F'=G, H'=A, Q'=1, K'=-1+A, [ A>=2 && C==C && E==E && G==G && A==A && J==J && L==L ], cost: 2 Applied simple chaining: Start location: start0 23: lbl53 -> [7] : B'=meter, D'=0, Q'=1+meter, K'=1+K-D, [ K>=2+B && B>=0 && A>=1+K && Q==1+B && H==A && 2*K-2*Q==-1+2*K-B-Q && A>=1+K && D==1 && -1+K>=1 && 1+K-D>=2 && 0>=0 && 0>=0 && 1>=0 && A>=2+K-D && 1==1 && H==A && 2*meter==2*K-2*D ], cost: -3/2+K*(-1+D)-1/2*(-1+D)^2+meter+3/2*D 24: lbl53 -> [8] : B'=meter, D'=0, Q'=1+meter, K'=1+K-D, [ K>=2+B && B>=0 && A>=1+K && Q==1+B && H==A && 2*K-2*Q==-1+2*K-B-Q && A>=1+K && D==1 && -1+K>=1 && 1+K-D>=2 && 0>=0 && 0>=0 && 1>=0 && A>=2+K-D && 1==1 && H==A && 2*meter==2*K-2*D ], cost: -3/2+K*(-1+D)-1/2*(-1+D)^2+meter+3/2*D 22: lbl53 -> [10] : B'=0, D'=0, Q'=1, K'=1+K-D, [ K>=2+B && B>=0 && A>=1+K && Q==1+B && H==A && 2*K-2*Q==-1+2*K-B-Q && A>=1+K && D==1 && -1+K>=1 ], cost: -3/2+K*(-1+D)-1/2*(-1+D)^2+3/2*D 15: start0 -> lbl53 : B'=0, D'=0, F'=G, H'=A, Q'=1, K'=-1+A, [ A>=2 && C==C && E==E && G==G && A==A && J==J && L==L ], cost: 2 14: start0 -> lbl53 : B'=0, D'=1, F'=free, H'=A, Q'=1, K'=-1+A, [ A>=2 && C==C && E==E && G==G && A==A && J==J && L==L && 0>=0 && 0>=0 && -1+A>=1 && A>=A && A==A ], cost: 3 Applied chaining over branches and pruning: Start location: start0 25: start0 -> [7] : B'=meter, D'=0, F'=free, H'=A, Q'=1+meter, K'=-1+A, [ A>=2 && C==C && E==E && G==G && A==A && J==J && L==L && 0>=0 && 0>=0 && -1+A>=1 && A>=A && A==A && -1+A>=2 && 0>=0 && A>=A && 1==1 && A==A && -4+2*A==-4+2*A && A>=A && 1==1 && -2+A>=1 && -1+A>=2 && 0>=0 && 0>=0 && 1>=0 && A>=A && 1==1 && A==A && 2*meter==-4+2*A ], cost: 3+meter 26: start0 -> [8] : B'=meter, D'=0, F'=free, H'=A, Q'=1+meter, K'=-1+A, [ A>=2 && C==C && E==E && G==G && A==A && J==J && L==L && 0>=0 && 0>=0 && -1+A>=1 && A>=A && A==A && -1+A>=2 && 0>=0 && A>=A && 1==1 && A==A && -4+2*A==-4+2*A && A>=A && 1==1 && -2+A>=1 && -1+A>=2 && 0>=0 && 0>=0 && 1>=0 && A>=A && 1==1 && A==A && 2*meter==-4+2*A ], cost: 3+meter Final control flow graph problem, now checking costs for infinitely many models: Start location: start0 25: start0 -> [7] : B'=meter, D'=0, F'=free, H'=A, Q'=1+meter, K'=-1+A, [ A>=2 && C==C && E==E && G==G && A==A && J==J && L==L && 0>=0 && 0>=0 && -1+A>=1 && A>=A && A==A && -1+A>=2 && 0>=0 && A>=A && 1==1 && A==A && -4+2*A==-4+2*A && A>=A && 1==1 && -2+A>=1 && -1+A>=2 && 0>=0 && 0>=0 && 1>=0 && A>=A && 1==1 && A==A && 2*meter==-4+2*A ], cost: 3+meter 26: start0 -> [8] : B'=meter, D'=0, F'=free, H'=A, Q'=1+meter, K'=-1+A, [ A>=2 && C==C && E==E && G==G && A==A && J==J && L==L && 0>=0 && 0>=0 && -1+A>=1 && A>=A && A==A && -1+A>=2 && 0>=0 && A>=A && 1==1 && A==A && -4+2*A==-4+2*A && A>=A && 1==1 && -2+A>=1 && -1+A>=2 && 0>=0 && 0>=0 && 1>=0 && A>=A && 1==1 && A==A && 2*meter==-4+2*A ], cost: 3+meter Computing complexity for remaining 2 transitions. Found configuration with infinitely models for cost: 3+meter and guard: A>=2 && C==C && E==E && G==G && A==A && J==J && L==L && 0>=0 && 0>=0 && -1+A>=1 && A>=A && A==A && -1+A>=2 && 0>=0 && A>=A && 1==1 && A==A && -4+2*A==-4+2*A && A>=A && 1==1 && -2+A>=1 && -1+A>=2 && 0>=0 && 0>=0 && 1>=0 && A>=A && 1==1 && A==A && 2*meter==-4+2*A: E: Both, L: Both, C: Both, J: Both, G: Both, meter: Const, A: Const Found new complexity const, because: Found infinity configuration. Found configuration with infinitely models for cost: 3+meter and guard: A>=2 && C==C && E==E && G==G && A==A && J==J && L==L && 0>=0 && 0>=0 && -1+A>=1 && A>=A && A==A && -1+A>=2 && 0>=0 && A>=A && 1==1 && A==A && -4+2*A==-4+2*A && A>=A && 1==1 && -2+A>=1 && -1+A>=2 && 0>=0 && 0>=0 && 1>=0 && A>=A && 1==1 && A==A && 2*meter==-4+2*A: E: Both, L: Both, C: Both, J: Both, G: Both, meter: Const, A: Const The final runtime is determined by this resulting transition: Final Guard: A>=2 && C==C && E==E && G==G && A==A && J==J && L==L && 0>=0 && 0>=0 && -1+A>=1 && A>=A && A==A && -1+A>=2 && 0>=0 && A>=A && 1==1 && A==A && -4+2*A==-4+2*A && A>=A && 1==1 && -2+A>=1 && -1+A>=2 && 0>=0 && 0>=0 && 1>=0 && A>=A && 1==1 && A==A && 2*meter==-4+2*A Final Cost: 4 Obtained the following complexity w.r.t. the length of the input n: Complexity class: const Complexity value: 0 WORST_CASE(Omega(1),?)