(0) Obligation:

Need to prove time_complexity of the following program:
public class MinusBuiltIn{

  public static void main(int x, int y) {
    int res = 0;



    while (x > y) {

      y++;
      res++;

    }
  }

}


(1) JBCToGraph (BOTH CONCRETE BOUNDS(ID, ID) transformation)

Constructed TerminationGraph.

(2) Obligation:

Termination Graph based on JBC Program:
MinusBuiltIn.main(II)V: Graph of 49 nodes with 1 SCC.


(3) TerminationGraphToComplexityProof (BOTH CONCRETE BOUNDS(ID, ADD(4)) transformation)

Extracted set of 45 edges for the analysis of TIME complexity. Kept leaves.

(4) Obligation:

Set of 45 edges based on JBC Program.
Performed SCC analyses:
  • Used field analysis yielded the following read fields:

Considered paths: nonterm paths and paths from start to sinks

(5) JBCGraphEdgesToCpxIntTrsProof (CONCRETE UPPER BOUND(ID) transformation)

Transformed 45 jbc graph edges to a weighted ITS with 45 rules.
Filtered conditions with variables that do not depend on the variables on the lhs or rhs without taking transitive dependencies into account.
Did no encode lower bounds for putfield and astore.

(6) Obligation:

IntTrs with 45 rules
Start term: main_ConstantStackPush_2(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_ConstantStackPush_2(i1, i4, env, static) -{0,0}> main_ConstantStackPush_4(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_4(i1, i4, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_5(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_5(i1, i4, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_16(iconst_0, i1, i4, env, static) :|: iconst_0 = 0
langle_clinit_rangle_ArrayCreate_16(iconst_0, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_17(a2, i1, i4, iconst_0, env, static) :|: a2 = 2 && iconst_0 = 0 && 0 < a2
langle_clinit_rangle_FieldAccess_17(a2, i1, i4, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_19(i1, i4, env, static') :|: 0 <= a2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2
langle_clinit_rangle_New_19(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_21(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_New_21(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_22(i1, i4, env, static) :|: 0 <= static
langle_clinit_rangle_New_22(i1, i4, env, static) -{1,1}> langle_clinit_rangle_Duplicate_24(o2, i1, i4, env, static) :|: 0 < o2 && o2 = 1
langle_clinit_rangle_Duplicate_24(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_26(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_ConstantStackPush_26(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_28(o2, NULL, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_clinit_rangle_InvokeMethod_28(o2, NULL, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_30(o2, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_init_rangle_Load_30(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_35(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Load_35(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_36(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_36(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_38(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_38(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_41(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_41(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_43(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_FieldAccess_43(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_Return_46(i1, i4, env, static') :|: 0 < o2 && 0 <= o2 && 0 <= static && static' <= static + o2
langle_clinit_rangle_Return_46(i1, i4, env, static) -{1,1}> main_ConstantStackPush_48(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_48(i1, i4, env, static) -{0,0}> main_ConstantStackPush_49(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_49(i1, i4, env, static) -{0,0}> main_ConstantStackPush_50(i1, i4, env, static) :|: 0 <= static
main_ConstantStackPush_50(i1, i4, env, static) -{0,0}> main_ConstantStackPush_51(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_51(i1, i4, env, static) -{0,0}> main_ConstantStackPush_52(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_52(i1, i4, env, static) -{1,1}> main_Store_53(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Store_53(i1, i4, iconst_0, env, static) -{1,1}> main_Load_54(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Load_54(i1, i4, iconst_0, env, static) -{1,1}> main_Load_55(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Load_55(i1, i4, iconst_0, env, static) -{1,1}> main_LE_58(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_60(i1, i4, iconst_0, env, static) :|: iconst_0 = 0 && i1 <= i4
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_61(i1, i4, iconst_0, env, static) :|: i4 < i1 && iconst_0 = 0
main_LE_61(i1, i4, iconst_0, env, static) -{1,1}> main_Inc_65(i1, i4, iconst_0, env, static) :|: i4 < i1 && iconst_0 = 0
main_Inc_65(i1, i4, iconst_0, env, static) -{1,1}> main_Inc_68(i1, i4, i6, iconst_0, env, static) :|: iconst_0 = 0 && i4 + 1 = i6
main_Inc_68(i1, i4, i6, iconst_0, env, static) -{1,1}> main_JMP_70(i1, i4, i6, iconst_1, env, static) :|: iconst_1 = 1 && iconst_0 = 0
main_JMP_70(i1, i4, i6, iconst_1, env, static) -{1,1}> main_Load_74(i1, i4, i6, iconst_1, env, static) :|: iconst_1 = 1
main_Load_74(i1, i4, i6, iconst_1, env, static) -{0,0}> main_Load_135(i1, i4, i6, iconst_1, env, static) :|: iconst_1 <= 2 && 1 <= iconst_1 && iconst_1 = 1
main_Load_135(i1, i4, i24, i25, env, static) -{0,0}> main_Load_178(i1, i4, i24, i25, env, static) :|: 1 <= i25 && i25 <= 2 && i25 <= 3
main_Load_178(i1, i4, i48, i49, env, static) -{0,0}> main_Load_239(i1, i4, i48, i49, env, static) :|: i49 <= 3 && 1 <= i49
main_Load_239(i1, i4, i68, i69, env, static) -{1,1}> main_Load_251(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_Load_251(i1, i4, i68, i69, env, static) -{1,1}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_280(i1, i4, i68, i69, env, static) :|: i1 <= i68 && 1 <= i69
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_281(i1, i4, i68, i69, env, static) :|: i68 < i1 && 1 <= i69
main_LE_281(i1, i4, i68, i69, env, static) -{1,1}> main_Inc_301(i1, i4, i68, i69, env, static) :|: i68 < i1 && 1 <= i69
main_Inc_301(i1, i4, i68, i69, env, static) -{1,1}> main_Inc_305(i1, i4, i90, i69, env, static) :|: i68 + 1 = i90 && 1 <= i69
main_Inc_305(i1, i4, i90, i69, env, static) -{1,1}> main_JMP_306(i1, i4, i90, i92, env, static) :|: 2 <= i92 && i69 + 1 = i92 && 1 <= i69
main_JMP_306(i1, i4, i90, i92, env, static) -{1,1}> main_Load_317(i1, i4, i90, i92, env, static) :|: 2 <= i92
main_Load_317(i1, i4, i90, i92, env, static) -{0,0}> main_Load_239(i1, i4, i90, i92, env, static) :|: 2 <= i92 && 1 <= i92

(7) StraightLineCodeCompressionProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)

obtained
main_ConstantStackPush_2(i1, i4, env, static) -{19,19}> main_LE_58(i1, i4, 0, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
by chaining
main_ConstantStackPush_2(i1, i4, env, static) -{0,0}> main_ConstantStackPush_4(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_4(i1, i4, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_5(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_5(i1, i4, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_16(iconst_0, i1, i4, env, static) :|: iconst_0 = 0
langle_clinit_rangle_ArrayCreate_16(iconst_0, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_17(a2, i1, i4, iconst_0, env, static) :|: a2 = 2 && iconst_0 = 0 && 0 < a2
langle_clinit_rangle_FieldAccess_17(a2, i1, i4, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_19(i1, i4, env, static') :|: 0 <= a2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2
langle_clinit_rangle_New_19(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_21(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_New_21(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_22(i1, i4, env, static) :|: 0 <= static
langle_clinit_rangle_New_22(i1, i4, env, static) -{1,1}> langle_clinit_rangle_Duplicate_24(o2, i1, i4, env, static) :|: 0 < o2 && o2 = 1
langle_clinit_rangle_Duplicate_24(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_26(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_ConstantStackPush_26(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_28(o2, NULL, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_clinit_rangle_InvokeMethod_28(o2, NULL, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_30(o2, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_init_rangle_Load_30(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_35(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Load_35(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_36(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_36(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_38(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_38(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_41(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_41(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_43(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_FieldAccess_43(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_Return_46(i1, i4, env, static') :|: 0 < o2 && 0 <= o2 && 0 <= static && static' <= static + o2
langle_clinit_rangle_Return_46(i1, i4, env, static) -{1,1}> main_ConstantStackPush_48(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_48(i1, i4, env, static) -{0,0}> main_ConstantStackPush_49(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_49(i1, i4, env, static) -{0,0}> main_ConstantStackPush_50(i1, i4, env, static) :|: 0 <= static
main_ConstantStackPush_50(i1, i4, env, static) -{0,0}> main_ConstantStackPush_51(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_51(i1, i4, env, static) -{0,0}> main_ConstantStackPush_52(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_52(i1, i4, env, static) -{1,1}> main_Store_53(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Store_53(i1, i4, iconst_0, env, static) -{1,1}> main_Load_54(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Load_54(i1, i4, iconst_0, env, static) -{1,1}> main_Load_55(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Load_55(i1, i4, iconst_0, env, static) -{1,1}> main_LE_58(i1, i4, iconst_0, env, static) :|: iconst_0 = 0

obtained
main_LE_58(i1, i4, 0, env, static) -{4,4}> main_Load_239(i1, i4, i6', 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2
by chaining
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_61(i1, i4, iconst_0, env, static) :|: i4 < i1 && iconst_0 = 0
main_LE_61(i1, i4, iconst_0, env, static) -{1,1}> main_Inc_65(i1, i4, iconst_0, env, static) :|: i4 < i1 && iconst_0 = 0
main_Inc_65(i1, i4, iconst_0, env, static) -{1,1}> main_Inc_68(i1, i4, i6, iconst_0, env, static) :|: iconst_0 = 0 && i4 + 1 = i6
main_Inc_68(i1, i4, i6, iconst_0, env, static) -{1,1}> main_JMP_70(i1, i4, i6, iconst_1, env, static) :|: iconst_1 = 1 && iconst_0 = 0
main_JMP_70(i1, i4, i6, iconst_1, env, static) -{1,1}> main_Load_74(i1, i4, i6, iconst_1, env, static) :|: iconst_1 = 1
main_Load_74(i1, i4, i6, iconst_1, env, static) -{0,0}> main_Load_135(i1, i4, i6, iconst_1, env, static) :|: iconst_1 <= 2 && 1 <= iconst_1 && iconst_1 = 1
main_Load_135(i1, i4, i24, i25, env, static) -{0,0}> main_Load_178(i1, i4, i24, i25, env, static) :|: 1 <= i25 && i25 <= 2 && i25 <= 3
main_Load_178(i1, i4, i48, i49, env, static) -{0,0}> main_Load_239(i1, i4, i48, i49, env, static) :|: i49 <= 3 && 1 <= i49

obtained
main_Load_239(i1, i4, i68, i69, env, static) -{2,2}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69
by chaining
main_Load_239(i1, i4, i68, i69, env, static) -{1,1}> main_Load_251(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_Load_251(i1, i4, i68, i69, env, static) -{1,1}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69

obtained
main_LE_272(i1, i4, i68, i69, env, static) -{4,4}> main_Load_239(i1, i4, i90', i92', env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'
by chaining
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_281(i1, i4, i68, i69, env, static) :|: i68 < i1 && 1 <= i69
main_LE_281(i1, i4, i68, i69, env, static) -{1,1}> main_Inc_301(i1, i4, i68, i69, env, static) :|: i68 < i1 && 1 <= i69
main_Inc_301(i1, i4, i68, i69, env, static) -{1,1}> main_Inc_305(i1, i4, i90, i69, env, static) :|: i68 + 1 = i90 && 1 <= i69
main_Inc_305(i1, i4, i90, i69, env, static) -{1,1}> main_JMP_306(i1, i4, i90, i92, env, static) :|: 2 <= i92 && i69 + 1 = i92 && 1 <= i69
main_JMP_306(i1, i4, i90, i92, env, static) -{1,1}> main_Load_317(i1, i4, i90, i92, env, static) :|: 2 <= i92
main_Load_317(i1, i4, i90, i92, env, static) -{0,0}> main_Load_239(i1, i4, i90, i92, env, static) :|: 2 <= i92 && 1 <= i92

(8) Obligation:

IntTrs with 6 rules
Start term: main_ConstantStackPush_2(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_ConstantStackPush_2(i1, i4, env, static) -{19,19}> main_LE_58(i1, i4, 0, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_60(i1, i4, iconst_0, env, static) :|: iconst_0 = 0 && i1 <= i4
main_LE_58(i1, i4, 0, env, static) -{4,4}> main_Load_239(i1, i4, i6', 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2
main_Load_239(i1, i4, i68, i69, env, static) -{2,2}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_280(i1, i4, i68, i69, env, static) :|: i1 <= i68 && 1 <= i69
main_LE_272(i1, i4, i68, i69, env, static) -{4,4}> main_Load_239(i1, i4, i90', i92', env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'

(9) MovedArithmeticToConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)

Moved arithmethic from lhss to constraints.

main_LE_58(i1, i4, 0, env, static) -{4,4}> main_Load_239(i1, i4, i6', 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2
was transformed to
main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i6', 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2 && x = 0

(10) Obligation:

IntTrs with 6 rules
Start term: main_ConstantStackPush_2(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_280(i1, i4, i68, i69, env, static) :|: i1 <= i68 && 1 <= i69
main_LE_272(i1, i4, i68, i69, env, static) -{4,4}> main_Load_239(i1, i4, i90', i92', env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'
main_Load_239(i1, i4, i68, i69, env, static) -{2,2}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_ConstantStackPush_2(i1, i4, env, static) -{19,19}> main_LE_58(i1, i4, 0, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i6', 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2 && x = 0
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_60(i1, i4, iconst_0, env, static) :|: iconst_0 = 0 && i1 <= i4

(11) MovedArithmeticFromConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)

Moved arithmethic from constraints to rhss.

main_LE_272(i1, i4, i68, i69, env, static) -{4,4}> main_Load_239(i1, i4, i90', i92', env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'
was transformed to
main_LE_272(i1, i4, i68, i69, env, static) -{4,4}> main_Load_239(i1, i4, i68 + 1, i69 + 1, env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'

main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_60(i1, i4, iconst_0, env, static) :|: iconst_0 = 0 && i1 <= i4
was transformed to
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_60(i1, i4, 0, env, static) :|: iconst_0 = 0 && i1 <= i4

main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i6', 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2 && x = 0
was transformed to
main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i4 + 1, 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2 && x = 0

(12) Obligation:

IntTrs with 6 rules
Start term: main_ConstantStackPush_2(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_280(i1, i4, i68, i69, env, static) :|: i1 <= i68 && 1 <= i69
main_LE_272(i1, i4, i68, i69, env, static) -{4,4}> main_Load_239(i1, i4, i68 + 1, i69 + 1, env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'
main_Load_239(i1, i4, i68, i69, env, static) -{2,2}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_ConstantStackPush_2(i1, i4, env, static) -{19,19}> main_LE_58(i1, i4, 0, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_60(i1, i4, 0, env, static) :|: iconst_0 = 0 && i1 <= i4
main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i4 + 1, 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2 && x = 0

(13) ExpressionSimplificationProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)

Simplified expressions.

main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i4 + 1, 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2 && x = 0
was transformed to
main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i4 + 1, 1, env, static) :|: i4 + 1 = i6' && i4 < i1 && x = 0

main_ConstantStackPush_2(i1, i4, env, static) -{19,19}> main_LE_58(i1, i4, 0, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
was transformed to
main_ConstantStackPush_2(i1, i4, env, static) -{19,19}> main_LE_58(i1, i4, 0, env, static'1) :|: 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && static'1 <= static''' + 1

(14) Obligation:

IntTrs with 6 rules
Start term: main_ConstantStackPush_2(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i4 + 1, 1, env, static) :|: i4 + 1 = i6' && i4 < i1 && x = 0
main_LE_272(i1, i4, i68, i69, env, static) -{4,4}> main_Load_239(i1, i4, i68 + 1, i69 + 1, env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_280(i1, i4, i68, i69, env, static) :|: i1 <= i68 && 1 <= i69
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_60(i1, i4, 0, env, static) :|: iconst_0 = 0 && i1 <= i4
main_Load_239(i1, i4, i68, i69, env, static) -{2,2}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_ConstantStackPush_2(i1, i4, env, static) -{19,19}> main_LE_58(i1, i4, 0, env, static'1) :|: 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && static'1 <= static''' + 1

(15) koat Proof (EQUIVALENT transformation)

YES(?, 6*ar_0 + 6*ar_1 + 25)

Initial complexity problem:
1: T:
(Comp: ?, Cost: 4) main_LE_58(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(main_Load_239(ar_0, ar_1, ar_1 + 1, 1, ar_3, ar_4)) [ ar_1 + 1 = i6' /\ ar_1 < ar_0 /\ ar_2 = 0 ]
(Comp: ?, Cost: 4) main_LE_272(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(main_Load_239(ar_0, ar_1, ar_2 + 1, ar_3 + 1, ar_4, ar_5)) [ 1 <= ar_3 /\ 2 <= i92' /\ 1 <= i92' /\ ar_2 + 1 = i90' /\ ar_2 < ar_0 /\ ar_3 + 1 = i92' ]
(Comp: ?, Cost: 0) main_LE_272(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(main_LE_280(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5)) [ ar_0 <= ar_2 /\ 1 <= ar_3 ]
(Comp: ?, Cost: 0) main_LE_58(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(main_LE_60(ar_0, ar_1, 0, ar_3, ar_4, arityPad)) [ ar_2 = 0 /\ ar_0 <= ar_1 ]
(Comp: ?, Cost: 2) main_Load_239(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(main_LE_272(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5)) [ 1 <= ar_3 ]
(Comp: ?, Cost: 19) main_ConstantStackPush_2(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(main_LE_58(ar_0, ar_1, 0, ar_2, static'1, arityPad)) [ 0 <= static'1 /\ 0 <= ar_3 /\ static''' <= ar_3 + 2 /\ 0 <= static''' /\ static'1 <= static''' + 1 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5) -> Com_1(main_ConstantStackPush_2(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0

Slicing away variables that do not contribute to conditions from problem 1 leaves variables [ar_0, ar_1, ar_2, ar_3].
We thus obtain the following problem:
2: T:
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_ConstantStackPush_2(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]
(Comp: ?, Cost: 19) main_ConstantStackPush_2(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_58(ar_0, ar_1, 0, ar_2)) [ 0 <= static'1 /\ 0 <= ar_3 /\ static''' <= ar_3 + 2 /\ 0 <= static''' /\ static'1 <= static''' + 1 ]
(Comp: ?, Cost: 2) main_Load_239(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_272(ar_0, ar_1, ar_2, ar_3)) [ 1 <= ar_3 ]
(Comp: ?, Cost: 0) main_LE_58(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_60(ar_0, ar_1, 0, ar_3)) [ ar_2 = 0 /\ ar_0 <= ar_1 ]
(Comp: ?, Cost: 0) main_LE_272(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_280(ar_0, ar_1, ar_2, ar_3)) [ ar_0 <= ar_2 /\ 1 <= ar_3 ]
(Comp: ?, Cost: 4) main_LE_272(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_239(ar_0, ar_1, ar_2 + 1, ar_3 + 1)) [ 1 <= ar_3 /\ 2 <= i92' /\ 1 <= i92' /\ ar_2 + 1 = i90' /\ ar_2 < ar_0 /\ ar_3 + 1 = i92' ]
(Comp: ?, Cost: 4) main_LE_58(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_239(ar_0, ar_1, ar_1 + 1, 1)) [ ar_1 + 1 = i6' /\ ar_1 < ar_0 /\ ar_2 = 0 ]
start location: koat_start
leaf cost: 0

Repeatedly propagating knowledge in problem 2 produces the following problem:
3: T:
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_ConstantStackPush_2(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]
(Comp: 1, Cost: 19) main_ConstantStackPush_2(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_58(ar_0, ar_1, 0, ar_2)) [ 0 <= static'1 /\ 0 <= ar_3 /\ static''' <= ar_3 + 2 /\ 0 <= static''' /\ static'1 <= static''' + 1 ]
(Comp: ?, Cost: 2) main_Load_239(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_272(ar_0, ar_1, ar_2, ar_3)) [ 1 <= ar_3 ]
(Comp: 1, Cost: 0) main_LE_58(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_60(ar_0, ar_1, 0, ar_3)) [ ar_2 = 0 /\ ar_0 <= ar_1 ]
(Comp: ?, Cost: 0) main_LE_272(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_280(ar_0, ar_1, ar_2, ar_3)) [ ar_0 <= ar_2 /\ 1 <= ar_3 ]
(Comp: ?, Cost: 4) main_LE_272(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_239(ar_0, ar_1, ar_2 + 1, ar_3 + 1)) [ 1 <= ar_3 /\ 2 <= i92' /\ 1 <= i92' /\ ar_2 + 1 = i90' /\ ar_2 < ar_0 /\ ar_3 + 1 = i92' ]
(Comp: 1, Cost: 4) main_LE_58(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_239(ar_0, ar_1, ar_1 + 1, 1)) [ ar_1 + 1 = i6' /\ ar_1 < ar_0 /\ ar_2 = 0 ]
start location: koat_start
leaf cost: 0

A polynomial rank function with
Pol(koat_start) = 1
Pol(main_ConstantStackPush_2) = 1
Pol(main_LE_58) = 1
Pol(main_Load_239) = 1
Pol(main_LE_272) = 1
Pol(main_LE_60) = 0
Pol(main_LE_280) = 0
orients all transitions weakly and the transition
main_LE_272(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_280(ar_0, ar_1, ar_2, ar_3)) [ ar_0 <= ar_2 /\ 1 <= ar_3 ]
strictly and produces the following problem:
4: T:
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_ConstantStackPush_2(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]
(Comp: 1, Cost: 19) main_ConstantStackPush_2(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_58(ar_0, ar_1, 0, ar_2)) [ 0 <= static'1 /\ 0 <= ar_3 /\ static''' <= ar_3 + 2 /\ 0 <= static''' /\ static'1 <= static''' + 1 ]
(Comp: ?, Cost: 2) main_Load_239(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_272(ar_0, ar_1, ar_2, ar_3)) [ 1 <= ar_3 ]
(Comp: 1, Cost: 0) main_LE_58(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_60(ar_0, ar_1, 0, ar_3)) [ ar_2 = 0 /\ ar_0 <= ar_1 ]
(Comp: 1, Cost: 0) main_LE_272(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_280(ar_0, ar_1, ar_2, ar_3)) [ ar_0 <= ar_2 /\ 1 <= ar_3 ]
(Comp: ?, Cost: 4) main_LE_272(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_239(ar_0, ar_1, ar_2 + 1, ar_3 + 1)) [ 1 <= ar_3 /\ 2 <= i92' /\ 1 <= i92' /\ ar_2 + 1 = i90' /\ ar_2 < ar_0 /\ ar_3 + 1 = i92' ]
(Comp: 1, Cost: 4) main_LE_58(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_239(ar_0, ar_1, ar_1 + 1, 1)) [ ar_1 + 1 = i6' /\ ar_1 < ar_0 /\ ar_2 = 0 ]
start location: koat_start
leaf cost: 0

A polynomial rank function with
Pol(koat_start) = V_1 - V_2
Pol(main_ConstantStackPush_2) = V_1 - V_2
Pol(main_LE_58) = V_1 - V_2
Pol(main_Load_239) = V_1 - V_3
Pol(main_LE_272) = V_1 - V_3
Pol(main_LE_60) = V_1 - V_2
Pol(main_LE_280) = V_1 - V_3
orients all transitions weakly and the transition
main_LE_272(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_239(ar_0, ar_1, ar_2 + 1, ar_3 + 1)) [ 1 <= ar_3 /\ 2 <= i92' /\ 1 <= i92' /\ ar_2 + 1 = i90' /\ ar_2 < ar_0 /\ ar_3 + 1 = i92' ]
strictly and produces the following problem:
5: T:
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_ConstantStackPush_2(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]
(Comp: 1, Cost: 19) main_ConstantStackPush_2(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_58(ar_0, ar_1, 0, ar_2)) [ 0 <= static'1 /\ 0 <= ar_3 /\ static''' <= ar_3 + 2 /\ 0 <= static''' /\ static'1 <= static''' + 1 ]
(Comp: ?, Cost: 2) main_Load_239(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_272(ar_0, ar_1, ar_2, ar_3)) [ 1 <= ar_3 ]
(Comp: 1, Cost: 0) main_LE_58(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_60(ar_0, ar_1, 0, ar_3)) [ ar_2 = 0 /\ ar_0 <= ar_1 ]
(Comp: 1, Cost: 0) main_LE_272(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_280(ar_0, ar_1, ar_2, ar_3)) [ ar_0 <= ar_2 /\ 1 <= ar_3 ]
(Comp: ar_0 + ar_1, Cost: 4) main_LE_272(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_239(ar_0, ar_1, ar_2 + 1, ar_3 + 1)) [ 1 <= ar_3 /\ 2 <= i92' /\ 1 <= i92' /\ ar_2 + 1 = i90' /\ ar_2 < ar_0 /\ ar_3 + 1 = i92' ]
(Comp: 1, Cost: 4) main_LE_58(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_239(ar_0, ar_1, ar_1 + 1, 1)) [ ar_1 + 1 = i6' /\ ar_1 < ar_0 /\ ar_2 = 0 ]
start location: koat_start
leaf cost: 0

Repeatedly propagating knowledge in problem 5 produces the following problem:
6: T:
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_ConstantStackPush_2(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]
(Comp: 1, Cost: 19) main_ConstantStackPush_2(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_58(ar_0, ar_1, 0, ar_2)) [ 0 <= static'1 /\ 0 <= ar_3 /\ static''' <= ar_3 + 2 /\ 0 <= static''' /\ static'1 <= static''' + 1 ]
(Comp: ar_0 + ar_1 + 1, Cost: 2) main_Load_239(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_272(ar_0, ar_1, ar_2, ar_3)) [ 1 <= ar_3 ]
(Comp: 1, Cost: 0) main_LE_58(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_60(ar_0, ar_1, 0, ar_3)) [ ar_2 = 0 /\ ar_0 <= ar_1 ]
(Comp: 1, Cost: 0) main_LE_272(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LE_280(ar_0, ar_1, ar_2, ar_3)) [ ar_0 <= ar_2 /\ 1 <= ar_3 ]
(Comp: ar_0 + ar_1, Cost: 4) main_LE_272(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_239(ar_0, ar_1, ar_2 + 1, ar_3 + 1)) [ 1 <= ar_3 /\ 2 <= i92' /\ 1 <= i92' /\ ar_2 + 1 = i90' /\ ar_2 < ar_0 /\ ar_3 + 1 = i92' ]
(Comp: 1, Cost: 4) main_LE_58(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_239(ar_0, ar_1, ar_1 + 1, 1)) [ ar_1 + 1 = i6' /\ ar_1 < ar_0 /\ ar_2 = 0 ]
start location: koat_start
leaf cost: 0

Complexity upper bound 6*ar_0 + 6*ar_1 + 25

Time: 0.121 sec (SMT: 0.095 sec)

(16) BOUNDS(CONSTANT, 25 + 6 * |#0| + 6 * |#1|)

(17) JBCGraphEdgesToCpxIntTrsProof (CONCRETE UPPER BOUND(ID) transformation)

Transformed 45 jbc graph edges to a weighted ITS with 45 rules.
Used simplified encoding of division and modulo.
Filtered conditions with variables that do not depend on the variables on the lhs or rhs without taking transitive dependencies into account.
Did no encode lower bounds for putfield and astore.

(18) Obligation:

IntTrs with 45 rules
Start term: main_ConstantStackPush_2(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_ConstantStackPush_2(i1, i4, env, static) -{0,0}> main_ConstantStackPush_4(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_4(i1, i4, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_5(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_5(i1, i4, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_16(iconst_0, i1, i4, env, static) :|: iconst_0 = 0
langle_clinit_rangle_ArrayCreate_16(iconst_0, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_17(a2, i1, i4, iconst_0, env, static) :|: a2 = 2 && iconst_0 = 0 && 0 < a2
langle_clinit_rangle_FieldAccess_17(a2, i1, i4, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_19(i1, i4, env, static') :|: 0 <= a2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2
langle_clinit_rangle_New_19(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_21(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_New_21(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_22(i1, i4, env, static) :|: 0 <= static
langle_clinit_rangle_New_22(i1, i4, env, static) -{1,1}> langle_clinit_rangle_Duplicate_24(o2, i1, i4, env, static) :|: 0 < o2 && o2 = 1
langle_clinit_rangle_Duplicate_24(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_26(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_ConstantStackPush_26(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_28(o2, NULL, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_clinit_rangle_InvokeMethod_28(o2, NULL, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_30(o2, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_init_rangle_Load_30(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_35(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Load_35(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_36(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_36(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_38(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_38(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_41(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_41(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_43(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_FieldAccess_43(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_Return_46(i1, i4, env, static') :|: 0 < o2 && 0 <= o2 && 0 <= static && static' <= static + o2
langle_clinit_rangle_Return_46(i1, i4, env, static) -{1,1}> main_ConstantStackPush_48(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_48(i1, i4, env, static) -{0,0}> main_ConstantStackPush_49(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_49(i1, i4, env, static) -{0,0}> main_ConstantStackPush_50(i1, i4, env, static) :|: 0 <= static
main_ConstantStackPush_50(i1, i4, env, static) -{0,0}> main_ConstantStackPush_51(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_51(i1, i4, env, static) -{0,0}> main_ConstantStackPush_52(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_52(i1, i4, env, static) -{1,1}> main_Store_53(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Store_53(i1, i4, iconst_0, env, static) -{1,1}> main_Load_54(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Load_54(i1, i4, iconst_0, env, static) -{1,1}> main_Load_55(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Load_55(i1, i4, iconst_0, env, static) -{1,1}> main_LE_58(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_60(i1, i4, iconst_0, env, static) :|: iconst_0 = 0 && i1 <= i4
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_61(i1, i4, iconst_0, env, static) :|: i4 < i1 && iconst_0 = 0
main_LE_61(i1, i4, iconst_0, env, static) -{1,1}> main_Inc_65(i1, i4, iconst_0, env, static) :|: i4 < i1 && iconst_0 = 0
main_Inc_65(i1, i4, iconst_0, env, static) -{1,1}> main_Inc_68(i1, i4, i6, iconst_0, env, static) :|: iconst_0 = 0 && i4 + 1 = i6
main_Inc_68(i1, i4, i6, iconst_0, env, static) -{1,1}> main_JMP_70(i1, i4, i6, iconst_1, env, static) :|: iconst_1 = 1 && iconst_0 = 0
main_JMP_70(i1, i4, i6, iconst_1, env, static) -{1,1}> main_Load_74(i1, i4, i6, iconst_1, env, static) :|: iconst_1 = 1
main_Load_74(i1, i4, i6, iconst_1, env, static) -{0,0}> main_Load_135(i1, i4, i6, iconst_1, env, static) :|: iconst_1 <= 2 && 1 <= iconst_1 && iconst_1 = 1
main_Load_135(i1, i4, i24, i25, env, static) -{0,0}> main_Load_178(i1, i4, i24, i25, env, static) :|: 1 <= i25 && i25 <= 2 && i25 <= 3
main_Load_178(i1, i4, i48, i49, env, static) -{0,0}> main_Load_239(i1, i4, i48, i49, env, static) :|: i49 <= 3 && 1 <= i49
main_Load_239(i1, i4, i68, i69, env, static) -{1,1}> main_Load_251(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_Load_251(i1, i4, i68, i69, env, static) -{1,1}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_280(i1, i4, i68, i69, env, static) :|: i1 <= i68 && 1 <= i69
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_281(i1, i4, i68, i69, env, static) :|: i68 < i1 && 1 <= i69
main_LE_281(i1, i4, i68, i69, env, static) -{1,1}> main_Inc_301(i1, i4, i68, i69, env, static) :|: i68 < i1 && 1 <= i69
main_Inc_301(i1, i4, i68, i69, env, static) -{1,1}> main_Inc_305(i1, i4, i90, i69, env, static) :|: i68 + 1 = i90 && 1 <= i69
main_Inc_305(i1, i4, i90, i69, env, static) -{1,1}> main_JMP_306(i1, i4, i90, i92, env, static) :|: 2 <= i92 && i69 + 1 = i92 && 1 <= i69
main_JMP_306(i1, i4, i90, i92, env, static) -{1,1}> main_Load_317(i1, i4, i90, i92, env, static) :|: 2 <= i92
main_Load_317(i1, i4, i90, i92, env, static) -{0,0}> main_Load_239(i1, i4, i90, i92, env, static) :|: 2 <= i92 && 1 <= i92

(19) StraightLineCodeCompressionProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)

obtained
main_ConstantStackPush_2(i1, i4, env, static) -{19,19}> main_LE_58(i1, i4, 0, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
by chaining
main_ConstantStackPush_2(i1, i4, env, static) -{0,0}> main_ConstantStackPush_4(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_4(i1, i4, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_5(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_5(i1, i4, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_16(iconst_0, i1, i4, env, static) :|: iconst_0 = 0
langle_clinit_rangle_ArrayCreate_16(iconst_0, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_17(a2, i1, i4, iconst_0, env, static) :|: a2 = 2 && iconst_0 = 0 && 0 < a2
langle_clinit_rangle_FieldAccess_17(a2, i1, i4, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_19(i1, i4, env, static') :|: 0 <= a2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2
langle_clinit_rangle_New_19(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_21(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_New_21(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_22(i1, i4, env, static) :|: 0 <= static
langle_clinit_rangle_New_22(i1, i4, env, static) -{1,1}> langle_clinit_rangle_Duplicate_24(o2, i1, i4, env, static) :|: 0 < o2 && o2 = 1
langle_clinit_rangle_Duplicate_24(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_26(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_ConstantStackPush_26(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_28(o2, NULL, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_clinit_rangle_InvokeMethod_28(o2, NULL, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_30(o2, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_init_rangle_Load_30(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_35(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Load_35(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_36(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_36(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_38(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_38(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_41(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_41(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_43(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_FieldAccess_43(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_Return_46(i1, i4, env, static') :|: 0 < o2 && 0 <= o2 && 0 <= static && static' <= static + o2
langle_clinit_rangle_Return_46(i1, i4, env, static) -{1,1}> main_ConstantStackPush_48(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_48(i1, i4, env, static) -{0,0}> main_ConstantStackPush_49(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_49(i1, i4, env, static) -{0,0}> main_ConstantStackPush_50(i1, i4, env, static) :|: 0 <= static
main_ConstantStackPush_50(i1, i4, env, static) -{0,0}> main_ConstantStackPush_51(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_51(i1, i4, env, static) -{0,0}> main_ConstantStackPush_52(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_52(i1, i4, env, static) -{1,1}> main_Store_53(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Store_53(i1, i4, iconst_0, env, static) -{1,1}> main_Load_54(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Load_54(i1, i4, iconst_0, env, static) -{1,1}> main_Load_55(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Load_55(i1, i4, iconst_0, env, static) -{1,1}> main_LE_58(i1, i4, iconst_0, env, static) :|: iconst_0 = 0

obtained
main_LE_58(i1, i4, 0, env, static) -{4,4}> main_Load_239(i1, i4, i6', 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2
by chaining
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_61(i1, i4, iconst_0, env, static) :|: i4 < i1 && iconst_0 = 0
main_LE_61(i1, i4, iconst_0, env, static) -{1,1}> main_Inc_65(i1, i4, iconst_0, env, static) :|: i4 < i1 && iconst_0 = 0
main_Inc_65(i1, i4, iconst_0, env, static) -{1,1}> main_Inc_68(i1, i4, i6, iconst_0, env, static) :|: iconst_0 = 0 && i4 + 1 = i6
main_Inc_68(i1, i4, i6, iconst_0, env, static) -{1,1}> main_JMP_70(i1, i4, i6, iconst_1, env, static) :|: iconst_1 = 1 && iconst_0 = 0
main_JMP_70(i1, i4, i6, iconst_1, env, static) -{1,1}> main_Load_74(i1, i4, i6, iconst_1, env, static) :|: iconst_1 = 1
main_Load_74(i1, i4, i6, iconst_1, env, static) -{0,0}> main_Load_135(i1, i4, i6, iconst_1, env, static) :|: iconst_1 <= 2 && 1 <= iconst_1 && iconst_1 = 1
main_Load_135(i1, i4, i24, i25, env, static) -{0,0}> main_Load_178(i1, i4, i24, i25, env, static) :|: 1 <= i25 && i25 <= 2 && i25 <= 3
main_Load_178(i1, i4, i48, i49, env, static) -{0,0}> main_Load_239(i1, i4, i48, i49, env, static) :|: i49 <= 3 && 1 <= i49

obtained
main_Load_239(i1, i4, i68, i69, env, static) -{2,2}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69
by chaining
main_Load_239(i1, i4, i68, i69, env, static) -{1,1}> main_Load_251(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_Load_251(i1, i4, i68, i69, env, static) -{1,1}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69

obtained
main_LE_272(i1, i4, i68, i69, env, static) -{4,4}> main_Load_239(i1, i4, i90', i92', env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'
by chaining
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_281(i1, i4, i68, i69, env, static) :|: i68 < i1 && 1 <= i69
main_LE_281(i1, i4, i68, i69, env, static) -{1,1}> main_Inc_301(i1, i4, i68, i69, env, static) :|: i68 < i1 && 1 <= i69
main_Inc_301(i1, i4, i68, i69, env, static) -{1,1}> main_Inc_305(i1, i4, i90, i69, env, static) :|: i68 + 1 = i90 && 1 <= i69
main_Inc_305(i1, i4, i90, i69, env, static) -{1,1}> main_JMP_306(i1, i4, i90, i92, env, static) :|: 2 <= i92 && i69 + 1 = i92 && 1 <= i69
main_JMP_306(i1, i4, i90, i92, env, static) -{1,1}> main_Load_317(i1, i4, i90, i92, env, static) :|: 2 <= i92
main_Load_317(i1, i4, i90, i92, env, static) -{0,0}> main_Load_239(i1, i4, i90, i92, env, static) :|: 2 <= i92 && 1 <= i92

(20) Obligation:

IntTrs with 6 rules
Start term: main_ConstantStackPush_2(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_ConstantStackPush_2(i1, i4, env, static) -{19,19}> main_LE_58(i1, i4, 0, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_60(i1, i4, iconst_0, env, static) :|: iconst_0 = 0 && i1 <= i4
main_LE_58(i1, i4, 0, env, static) -{4,4}> main_Load_239(i1, i4, i6', 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2
main_Load_239(i1, i4, i68, i69, env, static) -{2,2}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_280(i1, i4, i68, i69, env, static) :|: i1 <= i68 && 1 <= i69
main_LE_272(i1, i4, i68, i69, env, static) -{4,4}> main_Load_239(i1, i4, i90', i92', env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'

(21) MovedArithmeticToConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)

Moved arithmethic from lhss to constraints.

main_LE_58(i1, i4, 0, env, static) -{4,4}> main_Load_239(i1, i4, i6', 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2
was transformed to
main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i6', 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2 && x = 0

(22) Obligation:

IntTrs with 6 rules
Start term: main_ConstantStackPush_2(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_280(i1, i4, i68, i69, env, static) :|: i1 <= i68 && 1 <= i69
main_LE_272(i1, i4, i68, i69, env, static) -{4,4}> main_Load_239(i1, i4, i90', i92', env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'
main_Load_239(i1, i4, i68, i69, env, static) -{2,2}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_ConstantStackPush_2(i1, i4, env, static) -{19,19}> main_LE_58(i1, i4, 0, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i6', 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2 && x = 0
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_60(i1, i4, iconst_0, env, static) :|: iconst_0 = 0 && i1 <= i4

(23) MovedArithmeticFromConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)

Moved arithmethic from constraints to rhss.

main_LE_272(i1, i4, i68, i69, env, static) -{4,4}> main_Load_239(i1, i4, i90', i92', env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'
was transformed to
main_LE_272(i1, i4, i68, i69, env, static) -{4,4}> main_Load_239(i1, i4, i68 + 1, i69 + 1, env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'

main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_60(i1, i4, iconst_0, env, static) :|: iconst_0 = 0 && i1 <= i4
was transformed to
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_60(i1, i4, 0, env, static) :|: iconst_0 = 0 && i1 <= i4

main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i6', 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2 && x = 0
was transformed to
main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i4 + 1, 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2 && x = 0

(24) Obligation:

IntTrs with 6 rules
Start term: main_ConstantStackPush_2(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_280(i1, i4, i68, i69, env, static) :|: i1 <= i68 && 1 <= i69
main_LE_272(i1, i4, i68, i69, env, static) -{4,4}> main_Load_239(i1, i4, i68 + 1, i69 + 1, env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'
main_Load_239(i1, i4, i68, i69, env, static) -{2,2}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_ConstantStackPush_2(i1, i4, env, static) -{19,19}> main_LE_58(i1, i4, 0, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_60(i1, i4, 0, env, static) :|: iconst_0 = 0 && i1 <= i4
main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i4 + 1, 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2 && x = 0

(25) ExpressionSimplificationProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)

Simplified expressions.

main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i4 + 1, 1, env, static) :|: i4 + 1 = i6' && 1 <= 3 && 1 <= 1 && i4 < i1 && 1 <= 2 && x = 0
was transformed to
main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i4 + 1, 1, env, static) :|: i4 + 1 = i6' && i4 < i1 && x = 0

main_ConstantStackPush_2(i1, i4, env, static) -{19,19}> main_LE_58(i1, i4, 0, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
was transformed to
main_ConstantStackPush_2(i1, i4, env, static) -{19,19}> main_LE_58(i1, i4, 0, env, static'1) :|: 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && static'1 <= static''' + 1

(26) Obligation:

IntTrs with 6 rules
Start term: main_ConstantStackPush_2(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_LE_58(i1, i4, x, env, static) -{4,4}> main_Load_239(i1, i4, i4 + 1, 1, env, static) :|: i4 + 1 = i6' && i4 < i1 && x = 0
main_LE_272(i1, i4, i68, i69, env, static) -{4,4}> main_Load_239(i1, i4, i68 + 1, i69 + 1, env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_280(i1, i4, i68, i69, env, static) :|: i1 <= i68 && 1 <= i69
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_60(i1, i4, 0, env, static) :|: iconst_0 = 0 && i1 <= i4
main_Load_239(i1, i4, i68, i69, env, static) -{2,2}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_ConstantStackPush_2(i1, i4, env, static) -{19,19}> main_LE_58(i1, i4, 0, env, static'1) :|: 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && static'1 <= static''' + 1

(27) TerminationGraphToComplexityProof (BOTH CONCRETE BOUNDS(ID, ADD(4)) transformation)

Extracted set of 43 edges for the analysis of TIME complexity. Dropped leaves.

(28) Obligation:

Set of 43 edges based on JBC Program.
Performed SCC analyses:
  • Used field analysis yielded the following read fields:

Considered paths: all paths from start

(29) JBCGraphEdgesToCpxIntTrsProof (CONCRETE UPPER BOUND(ID) transformation)

Transformed 43 jbc graph edges to a weighted ITS with 43 rules.
Used simplified encoding of division and modulo.
Filtered conditions with variables that do not depend on the variables on the lhs or rhs without taking transitive dependencies into account.
Filtered fields of type java.lang.Object.
Did no encode lower bounds for putfield and astore.

(30) Obligation:

IntTrs with 43 rules
Start term: main_ConstantStackPush_2(#0, #1, env, static)
Considered paths: all paths from start
Rules:
main_ConstantStackPush_2(i1, i4, env, static) -{0,0}> main_ConstantStackPush_4(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_4(i1, i4, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_5(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_5(i1, i4, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_16(iconst_0, i1, i4, env, static) :|: iconst_0 = 0
langle_clinit_rangle_ArrayCreate_16(iconst_0, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_17(a2, i1, i4, iconst_0, env, static) :|: a2 = 2 && iconst_0 = 0 && 0 < a2
langle_clinit_rangle_FieldAccess_17(a2, i1, i4, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_19(i1, i4, env, static') :|: 0 <= a2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2
langle_clinit_rangle_New_19(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_21(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_New_21(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_22(i1, i4, env, static) :|: 0 <= static
langle_clinit_rangle_New_22(i1, i4, env, static) -{1,1}> langle_clinit_rangle_Duplicate_24(o2, i1, i4, env, static) :|: 0 < o2 && o2 = 1
langle_clinit_rangle_Duplicate_24(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_26(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_ConstantStackPush_26(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_28(o2, NULL, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_clinit_rangle_InvokeMethod_28(o2, NULL, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_30(o2, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_init_rangle_Load_30(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_35(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Load_35(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_36(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_36(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_38(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_38(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_41(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_41(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_43(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_FieldAccess_43(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_Return_46(i1, i4, env, static') :|: 0 < o2 && 0 <= o2 && 0 <= static && static' <= static + o2
langle_clinit_rangle_Return_46(i1, i4, env, static) -{1,1}> main_ConstantStackPush_48(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_48(i1, i4, env, static) -{0,0}> main_ConstantStackPush_49(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_49(i1, i4, env, static) -{0,0}> main_ConstantStackPush_50(i1, i4, env, static) :|: 0 <= static
main_ConstantStackPush_50(i1, i4, env, static) -{0,0}> main_ConstantStackPush_51(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_51(i1, i4, env, static) -{0,0}> main_ConstantStackPush_52(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_52(i1, i4, env, static) -{1,1}> main_Store_53(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Store_53(i1, i4, iconst_0, env, static) -{1,1}> main_Load_54(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Load_54(i1, i4, iconst_0, env, static) -{1,1}> main_Load_55(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Load_55(i1, i4, iconst_0, env, static) -{1,1}> main_LE_58(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_61(i1, i4, iconst_0, env, static) :|: i4 < i1 && iconst_0 = 0
main_LE_61(i1, i4, iconst_0, env, static) -{1,1}> main_Inc_65(i1, i4, iconst_0, env, static) :|: i4 < i1 && iconst_0 = 0
main_Inc_65(i1, i4, iconst_0, env, static) -{1,1}> main_Inc_68(i1, i4, i6, iconst_0, env, static) :|: iconst_0 = 0 && i4 + 1 = i6
main_Inc_68(i1, i4, i6, iconst_0, env, static) -{1,1}> main_JMP_70(i1, i4, i6, iconst_1, env, static) :|: iconst_1 = 1 && iconst_0 = 0
main_JMP_70(i1, i4, i6, iconst_1, env, static) -{1,1}> main_Load_74(i1, i4, i6, iconst_1, env, static) :|: iconst_1 = 1
main_Load_74(i1, i4, i6, iconst_1, env, static) -{0,0}> main_Load_135(i1, i4, i6, iconst_1, env, static) :|: iconst_1 <= 2 && 1 <= iconst_1 && iconst_1 = 1
main_Load_135(i1, i4, i24, i25, env, static) -{0,0}> main_Load_178(i1, i4, i24, i25, env, static) :|: 1 <= i25 && i25 <= 2 && i25 <= 3
main_Load_178(i1, i4, i48, i49, env, static) -{0,0}> main_Load_239(i1, i4, i48, i49, env, static) :|: i49 <= 3 && 1 <= i49
main_Load_239(i1, i4, i68, i69, env, static) -{1,1}> main_Load_251(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_Load_251(i1, i4, i68, i69, env, static) -{1,1}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_281(i1, i4, i68, i69, env, static) :|: i68 < i1 && 1 <= i69
main_LE_281(i1, i4, i68, i69, env, static) -{1,1}> main_Inc_301(i1, i4, i68, i69, env, static) :|: i68 < i1 && 1 <= i69
main_Inc_301(i1, i4, i68, i69, env, static) -{1,1}> main_Inc_305(i1, i4, i90, i69, env, static) :|: i68 + 1 = i90 && 1 <= i69
main_Inc_305(i1, i4, i90, i69, env, static) -{1,1}> main_JMP_306(i1, i4, i90, i92, env, static) :|: 2 <= i92 && i69 + 1 = i92 && 1 <= i69
main_JMP_306(i1, i4, i90, i92, env, static) -{1,1}> main_Load_317(i1, i4, i90, i92, env, static) :|: 2 <= i92
main_Load_317(i1, i4, i90, i92, env, static) -{0,0}> main_Load_239(i1, i4, i90, i92, env, static) :|: 2 <= i92 && 1 <= i92

(31) StraightLineCodeCompressionProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)

obtained
main_ConstantStackPush_2(i1, i4, env, static) -{23,23}> main_Load_239(i1, i4, i6', 1, env, static'1) :|: i4 < i1 && 1 <= 3 && 1 <= 1 && 0 < 2 && 0 >= 0 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && 1 <= 2 && i4 + 1 = i6' && static'1 <= static''' + 1
by chaining
main_ConstantStackPush_2(i1, i4, env, static) -{0,0}> main_ConstantStackPush_4(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_4(i1, i4, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_5(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_5(i1, i4, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_16(iconst_0, i1, i4, env, static) :|: iconst_0 = 0
langle_clinit_rangle_ArrayCreate_16(iconst_0, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_17(a2, i1, i4, iconst_0, env, static) :|: a2 = 2 && iconst_0 = 0 && 0 < a2
langle_clinit_rangle_FieldAccess_17(a2, i1, i4, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_19(i1, i4, env, static') :|: 0 <= a2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2
langle_clinit_rangle_New_19(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_21(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_New_21(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_22(i1, i4, env, static) :|: 0 <= static
langle_clinit_rangle_New_22(i1, i4, env, static) -{1,1}> langle_clinit_rangle_Duplicate_24(o2, i1, i4, env, static) :|: 0 < o2 && o2 = 1
langle_clinit_rangle_Duplicate_24(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_26(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_ConstantStackPush_26(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_28(o2, NULL, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_clinit_rangle_InvokeMethod_28(o2, NULL, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_30(o2, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_init_rangle_Load_30(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_35(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Load_35(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_36(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_36(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_38(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_38(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_41(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_41(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_43(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_FieldAccess_43(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_Return_46(i1, i4, env, static') :|: 0 < o2 && 0 <= o2 && 0 <= static && static' <= static + o2
langle_clinit_rangle_Return_46(i1, i4, env, static) -{1,1}> main_ConstantStackPush_48(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_48(i1, i4, env, static) -{0,0}> main_ConstantStackPush_49(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_49(i1, i4, env, static) -{0,0}> main_ConstantStackPush_50(i1, i4, env, static) :|: 0 <= static
main_ConstantStackPush_50(i1, i4, env, static) -{0,0}> main_ConstantStackPush_51(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_51(i1, i4, env, static) -{0,0}> main_ConstantStackPush_52(i1, i4, env, static) :|: 0 >= 0
main_ConstantStackPush_52(i1, i4, env, static) -{1,1}> main_Store_53(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Store_53(i1, i4, iconst_0, env, static) -{1,1}> main_Load_54(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Load_54(i1, i4, iconst_0, env, static) -{1,1}> main_Load_55(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_Load_55(i1, i4, iconst_0, env, static) -{1,1}> main_LE_58(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
main_LE_58(i1, i4, iconst_0, env, static) -{0,0}> main_LE_61(i1, i4, iconst_0, env, static) :|: i4 < i1 && iconst_0 = 0
main_LE_61(i1, i4, iconst_0, env, static) -{1,1}> main_Inc_65(i1, i4, iconst_0, env, static) :|: i4 < i1 && iconst_0 = 0
main_Inc_65(i1, i4, iconst_0, env, static) -{1,1}> main_Inc_68(i1, i4, i6, iconst_0, env, static) :|: iconst_0 = 0 && i4 + 1 = i6
main_Inc_68(i1, i4, i6, iconst_0, env, static) -{1,1}> main_JMP_70(i1, i4, i6, iconst_1, env, static) :|: iconst_1 = 1 && iconst_0 = 0
main_JMP_70(i1, i4, i6, iconst_1, env, static) -{1,1}> main_Load_74(i1, i4, i6, iconst_1, env, static) :|: iconst_1 = 1
main_Load_74(i1, i4, i6, iconst_1, env, static) -{0,0}> main_Load_135(i1, i4, i6, iconst_1, env, static) :|: iconst_1 <= 2 && 1 <= iconst_1 && iconst_1 = 1
main_Load_135(i1, i4, i24, i25, env, static) -{0,0}> main_Load_178(i1, i4, i24, i25, env, static) :|: 1 <= i25 && i25 <= 2 && i25 <= 3
main_Load_178(i1, i4, i48, i49, env, static) -{0,0}> main_Load_239(i1, i4, i48, i49, env, static) :|: i49 <= 3 && 1 <= i49

obtained
main_Load_239(i1, i4, i68, i69, env, static) -{6,6}> main_Load_239(i1, i4, i90', i92', env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'
by chaining
main_Load_239(i1, i4, i68, i69, env, static) -{1,1}> main_Load_251(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_Load_251(i1, i4, i68, i69, env, static) -{1,1}> main_LE_272(i1, i4, i68, i69, env, static) :|: 1 <= i69
main_LE_272(i1, i4, i68, i69, env, static) -{0,0}> main_LE_281(i1, i4, i68, i69, env, static) :|: i68 < i1 && 1 <= i69
main_LE_281(i1, i4, i68, i69, env, static) -{1,1}> main_Inc_301(i1, i4, i68, i69, env, static) :|: i68 < i1 && 1 <= i69
main_Inc_301(i1, i4, i68, i69, env, static) -{1,1}> main_Inc_305(i1, i4, i90, i69, env, static) :|: i68 + 1 = i90 && 1 <= i69
main_Inc_305(i1, i4, i90, i69, env, static) -{1,1}> main_JMP_306(i1, i4, i90, i92, env, static) :|: 2 <= i92 && i69 + 1 = i92 && 1 <= i69
main_JMP_306(i1, i4, i90, i92, env, static) -{1,1}> main_Load_317(i1, i4, i90, i92, env, static) :|: 2 <= i92
main_Load_317(i1, i4, i90, i92, env, static) -{0,0}> main_Load_239(i1, i4, i90, i92, env, static) :|: 2 <= i92 && 1 <= i92

(32) Obligation:

IntTrs with 2 rules
Start term: main_ConstantStackPush_2(#0, #1, env, static)
Considered paths: all paths from start
Rules:
main_ConstantStackPush_2(i1, i4, env, static) -{23,23}> main_Load_239(i1, i4, i6', 1, env, static'1) :|: i4 < i1 && 1 <= 3 && 1 <= 1 && 0 < 2 && 0 >= 0 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && 1 <= 2 && i4 + 1 = i6' && static'1 <= static''' + 1
main_Load_239(i1, i4, i68, i69, env, static) -{6,6}> main_Load_239(i1, i4, i90', i92', env, static) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'

(33) WeightedIntTrsUnneededArgumentFilterProof (CONCRETE UPPER BOUND(ID) transformation)

Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements:

main_ConstantStackPush_2(x1, x2, x3, x4) → main_ConstantStackPush_2(x1, x2, x4)
main_Load_239(x1, x2, x3, x4, x5, x6) → main_Load_239(x1, x3, x4)

(34) Obligation:

IntTrs with 2 rules
Start term: main_ConstantStackPush_2(#0, #1, static)
Considered paths: all paths from start
Rules:
main_ConstantStackPush_2(i1, i4, static) -{23,23}> main_Load_239(i1, i6', 1) :|: i4 < i1 && 1 <= 3 && 1 <= 1 && 0 < 2 && 0 >= 0 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && 1 <= 2 && i4 + 1 = i6' && static'1 <= static''' + 1
main_Load_239(i1, i68, i69) -{6,6}> main_Load_239(i1, i90', i92') :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'

(35) MovedArithmeticFromConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)

Moved arithmethic from constraints to rhss.

main_Load_239(i1, i68, i69) -{6,6}> main_Load_239(i1, i90', i92') :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'
was transformed to
main_Load_239(i1, i68, i69) -{6,6}> main_Load_239(i1, i68 + 1, i69 + 1) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'

main_ConstantStackPush_2(i1, i4, static) -{23,23}> main_Load_239(i1, i6', 1) :|: i4 < i1 && 1 <= 3 && 1 <= 1 && 0 < 2 && 0 >= 0 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && 1 <= 2 && i4 + 1 = i6' && static'1 <= static''' + 1
was transformed to
main_ConstantStackPush_2(i1, i4, static) -{23,23}> main_Load_239(i1, i4 + 1, 1) :|: i4 < i1 && 1 <= 3 && 1 <= 1 && 0 < 2 && 0 >= 0 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && 1 <= 2 && i4 + 1 = i6' && static'1 <= static''' + 1

(36) Obligation:

IntTrs with 2 rules
Start term: main_ConstantStackPush_2(#0, #1, static)
Considered paths: all paths from start
Rules:
main_Load_239(i1, i68, i69) -{6,6}> main_Load_239(i1, i68 + 1, i69 + 1) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'
main_ConstantStackPush_2(i1, i4, static) -{23,23}> main_Load_239(i1, i4 + 1, 1) :|: i4 < i1 && 1 <= 3 && 1 <= 1 && 0 < 2 && 0 >= 0 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && 1 <= 2 && i4 + 1 = i6' && static'1 <= static''' + 1

(37) ExpressionSimplificationProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)

Simplified expressions.

main_ConstantStackPush_2(i1, i4, static) -{23,23}> main_Load_239(i1, i4 + 1, 1) :|: i4 < i1 && 1 <= 3 && 1 <= 1 && 0 < 2 && 0 >= 0 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && 1 <= 2 && i4 + 1 = i6' && static'1 <= static''' + 1
was transformed to
main_ConstantStackPush_2(i1, i4, static) -{23,23}> main_Load_239(i1, i4 + 1, 1) :|: i4 < i1 && 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && i4 + 1 = i6' && static'1 <= static''' + 1

(38) Obligation:

IntTrs with 2 rules
Start term: main_ConstantStackPush_2(#0, #1, static)
Considered paths: all paths from start
Rules:
main_Load_239(i1, i68, i69) -{6,6}> main_Load_239(i1, i68 + 1, i69 + 1) :|: 1 <= i69 && 2 <= i92' && 1 <= i92' && i68 + 1 = i90' && i68 < i1 && i69 + 1 = i92'
main_ConstantStackPush_2(i1, i4, static) -{23,23}> main_Load_239(i1, i4 + 1, 1) :|: i4 < i1 && 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && i4 + 1 = i6' && static'1 <= static''' + 1

(39) koat Proof (EQUIVALENT transformation)

YES(?, 6*ar_0 + 6*ar_1 + 23)

Initial complexity problem:
1: T:
(Comp: ?, Cost: 6) main_Load_239(ar_0, ar_1, ar_2) -> Com_1(main_Load_239(ar_0, ar_1 + 1, ar_2 + 1)) [ 1 <= ar_2 /\ 2 <= i92' /\ 1 <= i92' /\ ar_1 + 1 = i90' /\ ar_1 < ar_0 /\ ar_2 + 1 = i92' ]
(Comp: ?, Cost: 23) main_ConstantStackPush_2(ar_0, ar_1, ar_2) -> Com_1(main_Load_239(ar_0, ar_1 + 1, 1)) [ ar_1 < ar_0 /\ 0 <= static'1 /\ 0 <= ar_2 /\ static''' <= ar_2 + 2 /\ 0 <= static''' /\ ar_1 + 1 = i6' /\ static'1 <= static''' + 1 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2) -> Com_1(main_ConstantStackPush_2(ar_0, ar_1, ar_2)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0

Repeatedly propagating knowledge in problem 1 produces the following problem:
2: T:
(Comp: ?, Cost: 6) main_Load_239(ar_0, ar_1, ar_2) -> Com_1(main_Load_239(ar_0, ar_1 + 1, ar_2 + 1)) [ 1 <= ar_2 /\ 2 <= i92' /\ 1 <= i92' /\ ar_1 + 1 = i90' /\ ar_1 < ar_0 /\ ar_2 + 1 = i92' ]
(Comp: 1, Cost: 23) main_ConstantStackPush_2(ar_0, ar_1, ar_2) -> Com_1(main_Load_239(ar_0, ar_1 + 1, 1)) [ ar_1 < ar_0 /\ 0 <= static'1 /\ 0 <= ar_2 /\ static''' <= ar_2 + 2 /\ 0 <= static''' /\ ar_1 + 1 = i6' /\ static'1 <= static''' + 1 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2) -> Com_1(main_ConstantStackPush_2(ar_0, ar_1, ar_2)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0

A polynomial rank function with
Pol(main_Load_239) = V_1 - V_2
Pol(main_ConstantStackPush_2) = V_1 - V_2
Pol(koat_start) = V_1 - V_2
orients all transitions weakly and the transition
main_Load_239(ar_0, ar_1, ar_2) -> Com_1(main_Load_239(ar_0, ar_1 + 1, ar_2 + 1)) [ 1 <= ar_2 /\ 2 <= i92' /\ 1 <= i92' /\ ar_1 + 1 = i90' /\ ar_1 < ar_0 /\ ar_2 + 1 = i92' ]
strictly and produces the following problem:
3: T:
(Comp: ar_0 + ar_1, Cost: 6) main_Load_239(ar_0, ar_1, ar_2) -> Com_1(main_Load_239(ar_0, ar_1 + 1, ar_2 + 1)) [ 1 <= ar_2 /\ 2 <= i92' /\ 1 <= i92' /\ ar_1 + 1 = i90' /\ ar_1 < ar_0 /\ ar_2 + 1 = i92' ]
(Comp: 1, Cost: 23) main_ConstantStackPush_2(ar_0, ar_1, ar_2) -> Com_1(main_Load_239(ar_0, ar_1 + 1, 1)) [ ar_1 < ar_0 /\ 0 <= static'1 /\ 0 <= ar_2 /\ static''' <= ar_2 + 2 /\ 0 <= static''' /\ ar_1 + 1 = i6' /\ static'1 <= static''' + 1 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2) -> Com_1(main_ConstantStackPush_2(ar_0, ar_1, ar_2)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0

Complexity upper bound 6*ar_0 + 6*ar_1 + 23

Time: 0.115 sec (SMT: 0.110 sec)

(40) BOUNDS(CONSTANT, 23 + 6 * |#0| + 6 * |#1|)