/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.jar /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.jar # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty termination of the given Bare JBC problem could be proven: (0) Bare JBC problem (1) BareJBCToJBCProof [EQUIVALENT, 97 ms] (2) JBC problem (3) JBCToGraph [EQUIVALENT, 1091 ms] (4) JBCTerminationGraph (5) TerminationGraphToSCCProof [SOUND, 13 ms] (6) JBCTerminationSCC (7) SCCToIRSProof [SOUND, 401 ms] (8) IRSwT (9) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (10) IRSwT (11) IRSwTTerminationDigraphProof [EQUIVALENT, 102 ms] (12) IRSwT (13) IntTRSCompressionProof [EQUIVALENT, 0 ms] (14) IRSwT (15) TempFilterProof [SOUND, 22 ms] (16) IntTRS (17) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (18) YES ---------------------------------------- (0) Obligation: need to prove termination of the following program: public class Et5 { public static void main(String[] args) { Random.args = args; int a = Random.random(); int b = Random.random(); int c = Random.random(); while (c >= 0) { int ap = Random.random(); int bp = Random.random(); if ( 2*a -b <= 2*ap-bp ) break; a = ap; b = bp; c = c + 2*a -b; } } } /* entry(A,B,X) :- {2*A-B >= 1+2*C-D, X>=0,Y=X+2*C-D}, entry(C,D,Y). */ public class Random { static String[] args; static int index = 0; public static int random() { if (index >= args.length) return 0; String string = args[index]; index++; return string.length(); } } ---------------------------------------- (1) BareJBCToJBCProof (EQUIVALENT) initialized classpath ---------------------------------------- (2) Obligation: need to prove termination of the following program: public class Et5 { public static void main(String[] args) { Random.args = args; int a = Random.random(); int b = Random.random(); int c = Random.random(); while (c >= 0) { int ap = Random.random(); int bp = Random.random(); if ( 2*a -b <= 2*ap-bp ) break; a = ap; b = bp; c = c + 2*a -b; } } } /* entry(A,B,X) :- {2*A-B >= 1+2*C-D, X>=0,Y=X+2*C-D}, entry(C,D,Y). */ public class Random { static String[] args; static int index = 0; public static int random() { if (index >= args.length) return 0; String string = args[index]; index++; return string.length(); } } ---------------------------------------- (3) JBCToGraph (EQUIVALENT) Constructed TerminationGraph. ---------------------------------------- (4) Obligation: Termination Graph based on JBC Program: Et5.main([Ljava/lang/String;)V: Graph of 603 nodes with 1 SCC. ---------------------------------------- (5) TerminationGraphToSCCProof (SOUND) Splitted TerminationGraph to 1 SCCs. ---------------------------------------- (6) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: Et5.main([Ljava/lang/String;)V SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *java.lang.String: [count] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (7) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 151 IRulesP rules: f3561_0_main_LT(EOS(STATIC_3561(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i1646) -> f3567_0_main_LT(EOS(STATIC_3567(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i1646) :|: TRUE f3567_0_main_LT(EOS(STATIC_3567(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i1646) -> f3591_0_main_InvokeMethod(EOS(STATIC_3591(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646) :|: i1646 >= 0 f3591_0_main_InvokeMethod(EOS(STATIC_3591(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646) -> f3593_0_random_FieldAccess(EOS(STATIC_3593(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646) :|: TRUE f3593_0_random_FieldAccess(EOS(STATIC_3593(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646) -> f3610_0_random_FieldAccess(EOS(STATIC_3610(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i1598) :|: TRUE f3610_0_random_FieldAccess(EOS(STATIC_3610(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i1598) -> f3612_0_random_ArrayLength(EOS(STATIC_3612(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i1598, java.lang.Object(ARRAY(i1597))) :|: TRUE f3612_0_random_ArrayLength(EOS(STATIC_3612(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i1598, java.lang.Object(ARRAY(i1597))) -> f3643_0_random_LT(EOS(STATIC_3643(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i1598, i1597) :|: i1597 >= 0 f3643_0_random_LT(EOS(STATIC_3643(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i1598, i1597) -> f3644_0_random_LT(EOS(STATIC_3644(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i1598, i1597) :|: i1598 < i1597 f3643_0_random_LT(EOS(STATIC_3643(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i1598, i1597) -> f3645_0_random_LT(EOS(STATIC_3645(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i1598, i1597) :|: i1598 >= i1597 f3644_0_random_LT(EOS(STATIC_3644(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i1598, i1597) -> f3647_0_random_FieldAccess(EOS(STATIC_3647(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646) :|: i1598 < i1597 f3647_0_random_FieldAccess(EOS(STATIC_3647(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646) -> f3670_0_random_FieldAccess(EOS(STATIC_3670(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(ARRAY(i1597))) :|: TRUE f3670_0_random_FieldAccess(EOS(STATIC_3670(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(ARRAY(i1597))) -> f3685_0_random_ArrayAccess(EOS(STATIC_3685(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(ARRAY(i1597)), i1598) :|: TRUE f3685_0_random_ArrayAccess(EOS(STATIC_3685(java.lang.Object(ARRAY(i1597)), i1799)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(ARRAY(i1597)), i1799) -> f3705_0_random_ArrayAccess(EOS(STATIC_3705(java.lang.Object(ARRAY(i1597)), i1799)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(ARRAY(i1597)), i1799) :|: TRUE f3705_0_random_ArrayAccess(EOS(STATIC_3705(java.lang.Object(ARRAY(i1597)), i1799)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(ARRAY(i1597)), i1799) -> f3762_0_random_ArrayAccess(EOS(STATIC_3762(java.lang.Object(ARRAY(i1597)), i1799)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(ARRAY(i1597)), i1799) :|: TRUE f3762_0_random_ArrayAccess(EOS(STATIC_3762(java.lang.Object(ARRAY(i1597)), i1799)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(ARRAY(i1597)), i1799) -> f3770_0_random_Store(EOS(STATIC_3770(java.lang.Object(ARRAY(i1597)), i1799)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, o260) :|: TRUE f3770_0_random_Store(EOS(STATIC_3770(java.lang.Object(ARRAY(i1597)), i1799)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, o260) -> f3779_0_random_FieldAccess(EOS(STATIC_3779(java.lang.Object(ARRAY(i1597)), i1799)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, o260) :|: TRUE f3779_0_random_FieldAccess(EOS(STATIC_3779(java.lang.Object(ARRAY(i1597)), i1799)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, o260) -> f3813_0_random_ConstantStackPush(EOS(STATIC_3813(java.lang.Object(ARRAY(i1597)), i1799)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, o260, i1799) :|: TRUE f3813_0_random_ConstantStackPush(EOS(STATIC_3813(java.lang.Object(ARRAY(i1597)), i1799)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, o260, i1799) -> f3857_0_random_IntArithmetic(EOS(STATIC_3857(java.lang.Object(ARRAY(i1597)), i1799)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, o260, i1799, 1) :|: TRUE f3857_0_random_IntArithmetic(EOS(STATIC_3857(java.lang.Object(ARRAY(i1597)), i1799)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, o260, i1799, matching1) -> f3894_0_random_FieldAccess(EOS(STATIC_3894(java.lang.Object(ARRAY(i1597)), i1799)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, o260, i1799 + 1) :|: i1799 >= 0 && matching1 = 1 f3894_0_random_FieldAccess(EOS(STATIC_3894(java.lang.Object(ARRAY(i1597)), i1799)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, o260, i1929) -> f3914_0_random_Load(EOS(STATIC_3914(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, o260) :|: TRUE f3914_0_random_Load(EOS(STATIC_3914(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, o260) -> f3950_0_random_InvokeMethod(EOS(STATIC_3950(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, o260) :|: TRUE f3950_0_random_InvokeMethod(EOS(STATIC_3950(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(o293sub)) -> f3986_0_random_InvokeMethod(EOS(STATIC_3986(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(o293sub)) :|: TRUE f3986_0_random_InvokeMethod(EOS(STATIC_3986(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(o295sub)) -> f4005_0_random_InvokeMethod(EOS(STATIC_4005(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(o295sub)) :|: TRUE f4005_0_random_InvokeMethod(EOS(STATIC_4005(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(o295sub)) -> f4038_0_length_Load(EOS(STATIC_4038(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(o295sub)) :|: TRUE f4038_0_length_Load(EOS(STATIC_4038(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(o295sub)) -> f4106_0_length_FieldAccess(EOS(STATIC_4106(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(o295sub)) :|: TRUE f4106_0_length_FieldAccess(EOS(STATIC_4106(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(java.lang.String(EOC, i2109))) -> f4137_0_length_FieldAccess(EOS(STATIC_4137(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(java.lang.String(EOC, i2109))) :|: i2109 >= 0 f4137_0_length_FieldAccess(EOS(STATIC_4137(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, java.lang.Object(java.lang.String(EOC, i2109))) -> f4180_0_length_Return(EOS(STATIC_4180(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109) :|: TRUE f4180_0_length_Return(EOS(STATIC_4180(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109) -> f4184_0_random_Return(EOS(STATIC_4184(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109) :|: TRUE f4184_0_random_Return(EOS(STATIC_4184(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109) -> f4202_0_main_Store(EOS(STATIC_4202(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109) :|: TRUE f4202_0_main_Store(EOS(STATIC_4202(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109) -> f4253_0_main_InvokeMethod(EOS(STATIC_4253(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109) :|: TRUE f4253_0_main_InvokeMethod(EOS(STATIC_4253(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109) -> f4346_0_random_FieldAccess(EOS(STATIC_4346(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109) :|: TRUE f4346_0_random_FieldAccess(EOS(STATIC_4346(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109) -> f4380_0_random_FieldAccess(EOS(STATIC_4380(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i1929) :|: TRUE f4380_0_random_FieldAccess(EOS(STATIC_4380(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i1929) -> f4386_0_random_ArrayLength(EOS(STATIC_4386(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i1929, java.lang.Object(ARRAY(i1597))) :|: TRUE f4386_0_random_ArrayLength(EOS(STATIC_4386(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i1929, java.lang.Object(ARRAY(i1597))) -> f4392_0_random_LT(EOS(STATIC_4392(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i1929, i1597) :|: i1597 >= 0 f4392_0_random_LT(EOS(STATIC_4392(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i1929, i1597) -> f4398_0_random_LT(EOS(STATIC_4398(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i1929, i1597) :|: i1929 < i1597 f4392_0_random_LT(EOS(STATIC_4392(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i1929, i1597) -> f4399_0_random_LT(EOS(STATIC_4399(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i1929, i1597) :|: i1929 >= i1597 f4398_0_random_LT(EOS(STATIC_4398(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i1929, i1597) -> f4405_0_random_FieldAccess(EOS(STATIC_4405(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109) :|: i1929 < i1597 f4405_0_random_FieldAccess(EOS(STATIC_4405(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109) -> f4411_0_random_FieldAccess(EOS(STATIC_4411(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(ARRAY(i1597))) :|: TRUE f4411_0_random_FieldAccess(EOS(STATIC_4411(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(ARRAY(i1597))) -> f4417_0_random_ArrayAccess(EOS(STATIC_4417(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(ARRAY(i1597)), i1929) :|: TRUE f4417_0_random_ArrayAccess(EOS(STATIC_4417(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(ARRAY(i1597)), i1929) -> f4423_0_random_ArrayAccess(EOS(STATIC_4423(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(ARRAY(i1597)), i1929) :|: TRUE f4423_0_random_ArrayAccess(EOS(STATIC_4423(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(ARRAY(i1597)), i1929) -> f4430_0_random_Store(EOS(STATIC_4430(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, o408) :|: TRUE f4430_0_random_Store(EOS(STATIC_4430(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, o408) -> f4436_0_random_FieldAccess(EOS(STATIC_4436(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, o408) :|: TRUE f4436_0_random_FieldAccess(EOS(STATIC_4436(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, o408) -> f4441_0_random_ConstantStackPush(EOS(STATIC_4441(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, o408, i1929) :|: TRUE f4441_0_random_ConstantStackPush(EOS(STATIC_4441(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, o408, i1929) -> f4446_0_random_IntArithmetic(EOS(STATIC_4446(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, o408, i1929, 1) :|: TRUE f4446_0_random_IntArithmetic(EOS(STATIC_4446(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, o408, i1929, matching1) -> f4451_0_random_FieldAccess(EOS(STATIC_4451(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, o408, i1929 + 1) :|: i1929 > 0 && matching1 = 1 f4451_0_random_FieldAccess(EOS(STATIC_4451(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, o408, i2709) -> f4455_0_random_Load(EOS(STATIC_4455(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, o408) :|: TRUE f4455_0_random_Load(EOS(STATIC_4455(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, o408) -> f4460_0_random_InvokeMethod(EOS(STATIC_4460(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, o408) :|: TRUE f4460_0_random_InvokeMethod(EOS(STATIC_4460(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(o427sub)) -> f4464_0_random_InvokeMethod(EOS(STATIC_4464(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(o427sub)) :|: TRUE f4464_0_random_InvokeMethod(EOS(STATIC_4464(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(o428sub)) -> f4467_0_random_InvokeMethod(EOS(STATIC_4467(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(o428sub)) :|: TRUE f4467_0_random_InvokeMethod(EOS(STATIC_4467(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(o428sub)) -> f4471_0_length_Load(EOS(STATIC_4471(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(o428sub)) :|: TRUE f4471_0_length_Load(EOS(STATIC_4471(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(o428sub)) -> f4477_0_length_FieldAccess(EOS(STATIC_4477(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(o428sub)) :|: TRUE f4477_0_length_FieldAccess(EOS(STATIC_4477(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(java.lang.String(EOC, i2807))) -> f4482_0_length_FieldAccess(EOS(STATIC_4482(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(java.lang.String(EOC, i2807))) :|: i2807 >= 0 f4482_0_length_FieldAccess(EOS(STATIC_4482(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, java.lang.Object(java.lang.String(EOC, i2807))) -> f4486_0_length_Return(EOS(STATIC_4486(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i2807) :|: TRUE f4486_0_length_Return(EOS(STATIC_4486(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i2807) -> f4490_0_random_Return(EOS(STATIC_4490(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i2807) :|: TRUE f4490_0_random_Return(EOS(STATIC_4490(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i2807) -> f4494_0_main_Store(EOS(STATIC_4494(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i2807) :|: TRUE f4494_0_main_Store(EOS(STATIC_4494(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i2807) -> f4497_0_main_ConstantStackPush(EOS(STATIC_4497(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i2807) :|: TRUE f4497_0_main_ConstantStackPush(EOS(STATIC_4497(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i2807) -> f4501_0_main_Load(EOS(STATIC_4501(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i2807, 2) :|: TRUE f4501_0_main_Load(EOS(STATIC_4501(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i2807, matching1) -> f4505_0_main_IntArithmetic(EOS(STATIC_4505(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1600, i1646, i2109, i2807, 2, i1599) :|: TRUE && matching1 = 2 f4505_0_main_IntArithmetic(EOS(STATIC_4505(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1600, i1646, i2109, i2807, matching1, i1599) -> f4508_0_main_Load(EOS(STATIC_4508(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1600, i1646, i2109, i2807, 2 * i1599) :|: TRUE && matching1 = 2 f4508_0_main_Load(EOS(STATIC_4508(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1600, i1646, i2109, i2807, i2872) -> f4512_0_main_IntArithmetic(EOS(STATIC_4512(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2872, i1600) :|: TRUE f4512_0_main_IntArithmetic(EOS(STATIC_4512(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2872, i1600) -> f4516_0_main_ConstantStackPush(EOS(STATIC_4516(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2872 - i1600) :|: i2872 >= 0 && i1600 >= 0 f4516_0_main_ConstantStackPush(EOS(STATIC_4516(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2903) -> f4520_0_main_Load(EOS(STATIC_4520(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2903, 2) :|: TRUE f4520_0_main_Load(EOS(STATIC_4520(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2903, matching1) -> f4524_0_main_IntArithmetic(EOS(STATIC_4524(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2903, 2, i2109) :|: TRUE && matching1 = 2 f4524_0_main_IntArithmetic(EOS(STATIC_4524(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2903, matching1, i2109) -> f4528_0_main_Load(EOS(STATIC_4528(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2903, 2 * i2109) :|: TRUE && matching1 = 2 f4528_0_main_Load(EOS(STATIC_4528(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2903, i2946) -> f4532_0_main_IntArithmetic(EOS(STATIC_4532(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2903, i2946, i2807) :|: TRUE f4532_0_main_IntArithmetic(EOS(STATIC_4532(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2903, i2946, i2807) -> f4535_0_main_GT(EOS(STATIC_4535(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2903, i2946 - i2807) :|: i2946 >= 0 && i2807 >= 0 f4535_0_main_GT(EOS(STATIC_4535(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2903, i2971) -> f4538_0_main_GT(EOS(STATIC_4538(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2903, i2971) :|: i2903 > i2971 f4538_0_main_GT(EOS(STATIC_4538(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807, i2903, i2971) -> f4542_0_main_Load(EOS(STATIC_4542(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807) :|: i2903 > i2971 f4542_0_main_Load(EOS(STATIC_4542(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2109, i2807) -> f4546_0_main_Store(EOS(STATIC_4546(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2807, i2109) :|: TRUE f4546_0_main_Store(EOS(STATIC_4546(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i1646, i2807, i2109) -> f4549_0_main_Load(EOS(STATIC_4549(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i1646, i2807) :|: TRUE f4549_0_main_Load(EOS(STATIC_4549(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i1646, i2807) -> f4552_0_main_Store(EOS(STATIC_4552(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i1646, i2807) :|: TRUE f4552_0_main_Store(EOS(STATIC_4552(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i1646, i2807) -> f4554_0_main_Load(EOS(STATIC_4554(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i1646) :|: TRUE f4554_0_main_Load(EOS(STATIC_4554(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i1646) -> f4556_0_main_ConstantStackPush(EOS(STATIC_4556(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i1646) :|: TRUE f4556_0_main_ConstantStackPush(EOS(STATIC_4556(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i1646) -> f4557_0_main_Load(EOS(STATIC_4557(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i1646, 2) :|: TRUE f4557_0_main_Load(EOS(STATIC_4557(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i1646, matching1) -> f4558_0_main_IntArithmetic(EOS(STATIC_4558(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i1646, 2, i2109) :|: TRUE && matching1 = 2 f4558_0_main_IntArithmetic(EOS(STATIC_4558(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i1646, matching1, i2109) -> f4559_0_main_IntArithmetic(EOS(STATIC_4559(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i1646, 2 * i2109) :|: TRUE && matching1 = 2 f4559_0_main_IntArithmetic(EOS(STATIC_4559(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i1646, i3014) -> f4560_0_main_Load(EOS(STATIC_4560(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i1646 + i3014) :|: i1646 >= 0 && i3014 >= 0 f4560_0_main_Load(EOS(STATIC_4560(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i3015) -> f4561_0_main_IntArithmetic(EOS(STATIC_4561(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i3015, i2807) :|: TRUE f4561_0_main_IntArithmetic(EOS(STATIC_4561(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i3015, i2807) -> f4562_0_main_Store(EOS(STATIC_4562(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i3015 - i2807) :|: i3015 >= 0 && i2807 >= 0 f4562_0_main_Store(EOS(STATIC_4562(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i3016) -> f4563_0_main_JMP(EOS(STATIC_4563(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i3016) :|: TRUE f4563_0_main_JMP(EOS(STATIC_4563(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i3016) -> f4564_0_main_Load(EOS(STATIC_4564(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i3016) :|: TRUE f4564_0_main_Load(EOS(STATIC_4564(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i3016) -> f3551_0_main_Load(EOS(STATIC_3551(java.lang.Object(ARRAY(i1597)), i2709)), java.lang.Object(ARRAY(i1597)), i2109, i2807, i3016) :|: TRUE f3551_0_main_Load(EOS(STATIC_3551(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1601) -> f3561_0_main_LT(EOS(STATIC_3561(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1601, i1601) :|: TRUE f4399_0_random_LT(EOS(STATIC_4399(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, i1929, i1597) -> f4406_0_random_ConstantStackPush(EOS(STATIC_4406(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109) :|: i1929 >= i1597 f4406_0_random_ConstantStackPush(EOS(STATIC_4406(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109) -> f4412_0_random_Return(EOS(STATIC_4412(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, 0) :|: TRUE f4412_0_random_Return(EOS(STATIC_4412(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, matching1) -> f4418_0_main_Store(EOS(STATIC_4418(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, 0) :|: TRUE && matching1 = 0 f4418_0_main_Store(EOS(STATIC_4418(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, matching1) -> f4425_0_main_ConstantStackPush(EOS(STATIC_4425(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, 0) :|: TRUE && matching1 = 0 f4425_0_main_ConstantStackPush(EOS(STATIC_4425(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, matching1) -> f4432_0_main_Load(EOS(STATIC_4432(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, 0, 2) :|: TRUE && matching1 = 0 f4432_0_main_Load(EOS(STATIC_4432(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i2109, matching1, matching2) -> f4437_0_main_IntArithmetic(EOS(STATIC_4437(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1600, i1646, i2109, 0, 2, i1599) :|: TRUE && matching1 = 0 && matching2 = 2 f4437_0_main_IntArithmetic(EOS(STATIC_4437(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1600, i1646, i2109, matching1, matching2, i1599) -> f4443_0_main_Load(EOS(STATIC_4443(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1600, i1646, i2109, 0, 2 * i1599) :|: TRUE && matching1 = 0 && matching2 = 2 f4443_0_main_Load(EOS(STATIC_4443(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1600, i1646, i2109, matching1, i2690) -> f4448_0_main_IntArithmetic(EOS(STATIC_4448(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, 0, i2690, i1600) :|: TRUE && matching1 = 0 f4448_0_main_IntArithmetic(EOS(STATIC_4448(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, matching1, i2690, i1600) -> f4452_0_main_ConstantStackPush(EOS(STATIC_4452(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, 0, i2690 - i1600) :|: i2690 >= 0 && i1600 >= 0 && matching1 = 0 f4452_0_main_ConstantStackPush(EOS(STATIC_4452(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, matching1, i2716) -> f4457_0_main_Load(EOS(STATIC_4457(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, 0, i2716, 2) :|: TRUE && matching1 = 0 f4457_0_main_Load(EOS(STATIC_4457(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, matching1, i2716, matching2) -> f4462_0_main_IntArithmetic(EOS(STATIC_4462(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, 0, i2716, 2, i2109) :|: TRUE && matching1 = 0 && matching2 = 2 f4462_0_main_IntArithmetic(EOS(STATIC_4462(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, matching1, i2716, matching2, i2109) -> f4466_0_main_Load(EOS(STATIC_4466(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, 0, i2716, 2 * i2109) :|: TRUE && matching1 = 0 && matching2 = 2 f4466_0_main_Load(EOS(STATIC_4466(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, matching1, i2716, i2751) -> f4470_0_main_IntArithmetic(EOS(STATIC_4470(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, 0, i2716, i2751, 0) :|: TRUE && matching1 = 0 f4470_0_main_IntArithmetic(EOS(STATIC_4470(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, matching1, i2716, i2751, matching2) -> f4473_0_main_GT(EOS(STATIC_4473(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, 0, i2716, i2751 - 0) :|: i2751 >= 0 && matching1 = 0 && matching2 = 0 f4473_0_main_GT(EOS(STATIC_4473(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, matching1, i2716, i2751) -> f4475_0_main_GT(EOS(STATIC_4475(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, 0, i2716, i2751) :|: i2716 > i2751 && matching1 = 0 f4475_0_main_GT(EOS(STATIC_4475(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, matching1, i2716, i2751) -> f4480_0_main_Load(EOS(STATIC_4480(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, 0) :|: i2716 > i2751 && matching1 = 0 f4480_0_main_Load(EOS(STATIC_4480(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, i2109, matching1) -> f4484_0_main_Store(EOS(STATIC_4484(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, 0, i2109) :|: TRUE && matching1 = 0 f4484_0_main_Store(EOS(STATIC_4484(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i1646, matching1, i2109) -> f4488_0_main_Load(EOS(STATIC_4488(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, i1646, 0) :|: TRUE && matching1 = 0 f4488_0_main_Load(EOS(STATIC_4488(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, i1646, matching1) -> f4493_0_main_Store(EOS(STATIC_4493(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, i1646, 0) :|: TRUE && matching1 = 0 f4493_0_main_Store(EOS(STATIC_4493(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, i1646, matching1) -> f4496_0_main_Load(EOS(STATIC_4496(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, 0, i1646) :|: TRUE && matching1 = 0 f4496_0_main_Load(EOS(STATIC_4496(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, matching1, i1646) -> f4500_0_main_ConstantStackPush(EOS(STATIC_4500(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, 0, i1646) :|: TRUE && matching1 = 0 f4500_0_main_ConstantStackPush(EOS(STATIC_4500(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, matching1, i1646) -> f4504_0_main_Load(EOS(STATIC_4504(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, 0, i1646, 2) :|: TRUE && matching1 = 0 f4504_0_main_Load(EOS(STATIC_4504(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, matching1, i1646, matching2) -> f4507_0_main_IntArithmetic(EOS(STATIC_4507(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, 0, i1646, 2, i2109) :|: TRUE && matching1 = 0 && matching2 = 2 f4507_0_main_IntArithmetic(EOS(STATIC_4507(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, matching1, i1646, matching2, i2109) -> f4511_0_main_IntArithmetic(EOS(STATIC_4511(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, 0, i1646, 2 * i2109) :|: TRUE && matching1 = 0 && matching2 = 2 f4511_0_main_IntArithmetic(EOS(STATIC_4511(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, matching1, i1646, i2887) -> f4515_0_main_Load(EOS(STATIC_4515(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, 0, i1646 + i2887) :|: i1646 >= 0 && i2887 >= 0 && matching1 = 0 f4515_0_main_Load(EOS(STATIC_4515(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, matching1, i2902) -> f4519_0_main_IntArithmetic(EOS(STATIC_4519(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, 0, i2902, 0) :|: TRUE && matching1 = 0 f4519_0_main_IntArithmetic(EOS(STATIC_4519(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, matching1, i2902, matching2) -> f4523_0_main_Store(EOS(STATIC_4523(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, 0, i2902 - 0) :|: i2902 >= 0 && matching1 = 0 && matching2 = 0 f4523_0_main_Store(EOS(STATIC_4523(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, matching1, i2902) -> f4527_0_main_JMP(EOS(STATIC_4527(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, 0, i2902) :|: TRUE && matching1 = 0 f4527_0_main_JMP(EOS(STATIC_4527(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, matching1, i2902) -> f4531_0_main_Load(EOS(STATIC_4531(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, 0, i2902) :|: TRUE && matching1 = 0 f4531_0_main_Load(EOS(STATIC_4531(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, matching1, i2902) -> f3551_0_main_Load(EOS(STATIC_3551(java.lang.Object(ARRAY(i1597)), i1929)), java.lang.Object(ARRAY(i1597)), i2109, 0, i2902) :|: TRUE && matching1 = 0 f3645_0_random_LT(EOS(STATIC_3645(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, i1598, i1597) -> f3669_0_random_ConstantStackPush(EOS(STATIC_3669(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646) :|: i1598 >= i1597 f3669_0_random_ConstantStackPush(EOS(STATIC_3669(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646) -> f3682_0_random_Return(EOS(STATIC_3682(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, 0) :|: TRUE f3682_0_random_Return(EOS(STATIC_3682(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, matching1) -> f3700_0_main_Store(EOS(STATIC_3700(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, 0) :|: TRUE && matching1 = 0 f3700_0_main_Store(EOS(STATIC_3700(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, matching1) -> f3758_0_main_InvokeMethod(EOS(STATIC_3758(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, 0) :|: TRUE && matching1 = 0 f3758_0_main_InvokeMethod(EOS(STATIC_3758(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, matching1) -> f3765_0_random_FieldAccess(EOS(STATIC_3765(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, 0) :|: TRUE && matching1 = 0 f3765_0_random_FieldAccess(EOS(STATIC_3765(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, matching1) -> f3806_0_random_FieldAccess(EOS(STATIC_3806(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, 0, i1598) :|: TRUE && matching1 = 0 f3806_0_random_FieldAccess(EOS(STATIC_3806(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, matching1, i1598) -> f3852_0_random_ArrayLength(EOS(STATIC_3852(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, 0, i1598, java.lang.Object(ARRAY(i1597))) :|: TRUE && matching1 = 0 f3852_0_random_ArrayLength(EOS(STATIC_3852(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, matching1, i1598, java.lang.Object(ARRAY(i1597))) -> f3888_0_random_LT(EOS(STATIC_3888(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, 0, i1598, i1597) :|: i1597 >= 0 && matching1 = 0 f3888_0_random_LT(EOS(STATIC_3888(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, matching1, i1598, i1597) -> f3907_0_random_LT(EOS(STATIC_3907(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, 0, i1598, i1597) :|: i1598 >= i1597 && matching1 = 0 f3907_0_random_LT(EOS(STATIC_3907(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, matching1, i1598, i1597) -> f3945_0_random_ConstantStackPush(EOS(STATIC_3945(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, 0) :|: i1598 >= i1597 && matching1 = 0 f3945_0_random_ConstantStackPush(EOS(STATIC_3945(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, matching1) -> f3975_0_random_Return(EOS(STATIC_3975(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, 0, 0) :|: TRUE && matching1 = 0 f3975_0_random_Return(EOS(STATIC_3975(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, matching1, matching2) -> f4000_0_main_Store(EOS(STATIC_4000(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, 0, 0) :|: TRUE && matching1 = 0 && matching2 = 0 f4000_0_main_Store(EOS(STATIC_4000(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, matching1, matching2) -> f4034_0_main_ConstantStackPush(EOS(STATIC_4034(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, 0, 0) :|: TRUE && matching1 = 0 && matching2 = 0 f4034_0_main_ConstantStackPush(EOS(STATIC_4034(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, matching1, matching2) -> f4073_0_main_Load(EOS(STATIC_4073(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, 0, 0, 2) :|: TRUE && matching1 = 0 && matching2 = 0 f4073_0_main_Load(EOS(STATIC_4073(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1599, i1600, i1646, matching1, matching2, matching3) -> f4100_0_main_IntArithmetic(EOS(STATIC_4100(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1600, i1646, 0, 0, 2, i1599) :|: TRUE && matching1 = 0 && matching2 = 0 && matching3 = 2 f4100_0_main_IntArithmetic(EOS(STATIC_4100(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1600, i1646, matching1, matching2, matching3, i1599) -> f4134_0_main_Load(EOS(STATIC_4134(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1600, i1646, 0, 0, 2 * i1599) :|: TRUE && matching1 = 0 && matching2 = 0 && matching3 = 2 f4134_0_main_Load(EOS(STATIC_4134(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1600, i1646, matching1, matching2, i2100) -> f4174_0_main_IntArithmetic(EOS(STATIC_4174(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, 0, 0, i2100, i1600) :|: TRUE && matching1 = 0 && matching2 = 0 f4174_0_main_IntArithmetic(EOS(STATIC_4174(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, matching1, matching2, i2100, i1600) -> f4182_0_main_ConstantStackPush(EOS(STATIC_4182(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, 0, 0, i2100 - i1600) :|: i2100 >= 0 && i1600 >= 0 && matching1 = 0 && matching2 = 0 f4182_0_main_ConstantStackPush(EOS(STATIC_4182(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, matching1, matching2, i2149) -> f4200_0_main_Load(EOS(STATIC_4200(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, 0, 0, i2149) :|: TRUE && matching1 = 0 && matching2 = 0 f4200_0_main_Load(EOS(STATIC_4200(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, matching1, matching2, i2149) -> f4250_0_main_IntArithmetic(EOS(STATIC_4250(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, 0, 0, i2149, 0) :|: TRUE && matching1 = 0 && matching2 = 0 f4250_0_main_IntArithmetic(EOS(STATIC_4250(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, matching1, matching2, i2149, matching3) -> f4285_0_main_Load(EOS(STATIC_4285(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, 0, 0, i2149, 0) :|: TRUE && matching1 = 0 && matching2 = 0 && matching3 = 0 f4285_0_main_Load(EOS(STATIC_4285(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, matching1, matching2, i2149, matching3) -> f4369_0_main_IntArithmetic(EOS(STATIC_4369(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, 0, 0, i2149, 0, 0) :|: TRUE && matching1 = 0 && matching2 = 0 && matching3 = 0 f4369_0_main_IntArithmetic(EOS(STATIC_4369(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, matching1, matching2, i2149, matching3, matching4) -> f4378_0_main_GT(EOS(STATIC_4378(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, 0, 0, i2149, 0) :|: TRUE && matching1 = 0 && matching2 = 0 && matching3 = 0 && matching4 = 0 f4378_0_main_GT(EOS(STATIC_4378(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, matching1, matching2, i2365, matching3) -> f4384_0_main_GT(EOS(STATIC_4384(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, 0, 0, i2365, 0) :|: TRUE && matching1 = 0 && matching2 = 0 && matching3 = 0 f4384_0_main_GT(EOS(STATIC_4384(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, matching1, matching2, i2365, matching3) -> f4390_0_main_Load(EOS(STATIC_4390(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, 0, 0) :|: i2365 > 0 && matching1 = 0 && matching2 = 0 && matching3 = 0 f4390_0_main_Load(EOS(STATIC_4390(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, matching1, matching2) -> f4396_0_main_Store(EOS(STATIC_4396(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, 0, 0) :|: TRUE && matching1 = 0 && matching2 = 0 f4396_0_main_Store(EOS(STATIC_4396(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), i1646, matching1, matching2) -> f4403_0_main_Load(EOS(STATIC_4403(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), 0, i1646, 0) :|: TRUE && matching1 = 0 && matching2 = 0 f4403_0_main_Load(EOS(STATIC_4403(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), matching1, i1646, matching2) -> f4409_0_main_Store(EOS(STATIC_4409(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), 0, i1646, 0) :|: TRUE && matching1 = 0 && matching2 = 0 f4409_0_main_Store(EOS(STATIC_4409(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), matching1, i1646, matching2) -> f4415_0_main_Load(EOS(STATIC_4415(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), 0, 0, i1646) :|: TRUE && matching1 = 0 && matching2 = 0 f4415_0_main_Load(EOS(STATIC_4415(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), matching1, matching2, i1646) -> f4421_0_main_ConstantStackPush(EOS(STATIC_4421(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), 0, 0, i1646) :|: TRUE && matching1 = 0 && matching2 = 0 f4421_0_main_ConstantStackPush(EOS(STATIC_4421(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), matching1, matching2, i1646) -> f4428_0_main_Load(EOS(STATIC_4428(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), 0, 0, i1646) :|: TRUE && matching1 = 0 && matching2 = 0 f4428_0_main_Load(EOS(STATIC_4428(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), matching1, matching2, i1646) -> f4435_0_main_IntArithmetic(EOS(STATIC_4435(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), 0, 0, i1646, 0) :|: TRUE && matching1 = 0 && matching2 = 0 f4435_0_main_IntArithmetic(EOS(STATIC_4435(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), matching1, matching2, i1646, matching3) -> f4440_0_main_IntArithmetic(EOS(STATIC_4440(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), 0, 0, i1646, 0) :|: TRUE && matching1 = 0 && matching2 = 0 && matching3 = 0 f4440_0_main_IntArithmetic(EOS(STATIC_4440(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), matching1, matching2, i1646, matching3) -> f4445_0_main_Load(EOS(STATIC_4445(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), 0, 0, i1646 + 0) :|: i1646 >= 0 && matching1 = 0 && matching2 = 0 && matching3 = 0 f4445_0_main_Load(EOS(STATIC_4445(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), matching1, matching2, i1646) -> f4450_0_main_IntArithmetic(EOS(STATIC_4450(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), 0, 0, i1646, 0) :|: TRUE && matching1 = 0 && matching2 = 0 f4450_0_main_IntArithmetic(EOS(STATIC_4450(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), matching1, matching2, i1646, matching3) -> f4454_0_main_Store(EOS(STATIC_4454(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), 0, 0, i1646 - 0) :|: i1646 >= 0 && matching1 = 0 && matching2 = 0 && matching3 = 0 f4454_0_main_Store(EOS(STATIC_4454(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), matching1, matching2, i1646) -> f4459_0_main_JMP(EOS(STATIC_4459(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), 0, 0, i1646) :|: TRUE && matching1 = 0 && matching2 = 0 f4459_0_main_JMP(EOS(STATIC_4459(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), matching1, matching2, i1646) -> f4463_0_main_Load(EOS(STATIC_4463(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), 0, 0, i1646) :|: TRUE && matching1 = 0 && matching2 = 0 f4463_0_main_Load(EOS(STATIC_4463(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), matching1, matching2, i1646) -> f3551_0_main_Load(EOS(STATIC_3551(java.lang.Object(ARRAY(i1597)), i1598)), java.lang.Object(ARRAY(i1597)), 0, 0, i1646) :|: TRUE && matching1 = 0 && matching2 = 0 Combined rules. Obtained 3 IRulesP rules: f3561_0_main_LT(EOS(STATIC_3561(java.lang.Object(ARRAY(i1597:0)), i1598:0)), java.lang.Object(ARRAY(i1597:0)), i1599:0, i1600:0, i1646:0, i1646:0) -> f3561_0_main_LT(EOS(STATIC_3561(java.lang.Object(ARRAY(i1597:0)), i1598:0 + 2)), java.lang.Object(ARRAY(i1597:0)), i2109:0, i2807:0, i1646:0 + 2 * i2109:0 - i2807:0, i1646:0 + 2 * i2109:0 - i2807:0) :|: i1598:0 + 1 < i1597:0 && i1646:0 > -1 && i1597:0 > -1 && i1598:0 > -1 && i2109:0 > -1 && i2807:0 > -1 && i1600:0 > -1 && 2 * i1599:0 >= 0 && 2 * i2109:0 >= 0 && 2 * i2109:0 - i2807:0 < 2 * i1599:0 - i1600:0 && i1646:0 + 2 * i2109:0 >= 0 f3561_0_main_LT(EOS(STATIC_3561(java.lang.Object(ARRAY(i1597:0)), i1598:0)), java.lang.Object(ARRAY(i1597:0)), i1599:0, i1600:0, arith, arith) -> f3561_0_main_LT(EOS(STATIC_3561(java.lang.Object(ARRAY(i1597:0)), i1598:0)), java.lang.Object(ARRAY(i1597:0)), 0, 0, arith, arith) :|: arith > -1 && i1597:0 > -1 && i1598:0 >= i1597:0 && i1600:0 > -1 && 2 * i1599:0 >= 0 && 2 * i1599:0 - i1600:0 > 0 f3561_0_main_LT(EOS(STATIC_3561(java.lang.Object(ARRAY(i1597:0)), i1598:0)), java.lang.Object(ARRAY(i1597:0)), i1599:0, i1600:0, i1646:0, i1646:0) -> f3561_0_main_LT(EOS(STATIC_3561(java.lang.Object(ARRAY(i1597:0)), i1598:0 + 1)), java.lang.Object(ARRAY(i1597:0)), i2109:0, 0, i1646:0 + 2 * i2109:0, i1646:0 + 2 * i2109:0) :|: i1646:0 > -1 && i1597:0 > -1 && i1598:0 < i1597:0 && i1598:0 > -1 && i2109:0 > -1 && i1598:0 + 1 >= i1597:0 && i1600:0 > -1 && 2 * i1599:0 >= 0 && 2 * i2109:0 >= 0 && 2 * i2109:0 < 2 * i1599:0 - i1600:0 && i1646:0 + 2 * i2109:0 >= 0 Filtered duplicate arguments: f3561_0_main_LT(x1, x2, x3, x4, x5, x6) -> f3561_0_main_LT(x1, x2, x3, x4, x6) Finished conversion. Obtained 3 rules.P rules: f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0)), i1599:0, i1600:0, i1646:0, i1597:0, i1598:0, i1597:0) -> f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0)), i2109:0, i2807:0, i1646:0 + 2 * i2109:0 - i2807:0, i1597:0, i1598:0 + 2, i1597:0) :|: i1646:0 > -1 && i1598:0 + 1 < i1597:0 && i1597:0 > -1 && i1598:0 > -1 && i2109:0 > -1 && i2807:0 > -1 && i1600:0 > -1 && 2 * i1599:0 >= 0 && 2 * i2109:0 >= 0 && i1646:0 + 2 * i2109:0 >= 0 && 2 * i2109:0 - i2807:0 < 2 * i1599:0 - i1600:0 f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0)), i1599:0, i1600:0, arith, i1597:0, i1598:0, i1597:0) -> f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0)), 0, 0, arith, i1597:0, i1598:0, i1597:0) :|: i1597:0 > -1 && arith > -1 && i1598:0 >= i1597:0 && i1600:0 > -1 && 2 * i1599:0 - i1600:0 > 0 && 2 * i1599:0 >= 0 f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0)), i1599:0, i1600:0, i1646:0, i1597:0, i1598:0, i1597:0) -> f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0)), i2109:0, 0, i1646:0 + 2 * i2109:0, i1597:0, i1598:0 + 1, i1597:0) :|: i1597:0 > -1 && i1646:0 > -1 && i1598:0 < i1597:0 && i1598:0 > -1 && i2109:0 > -1 && i1598:0 + 1 >= i1597:0 && i1600:0 > -1 && 2 * i1599:0 >= 0 && 2 * i2109:0 >= 0 && i1646:0 + 2 * i2109:0 >= 0 && 2 * i2109:0 < 2 * i1599:0 - i1600:0 ---------------------------------------- (8) Obligation: Rules: f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0)), i1599:0, i1600:0, i1646:0, i1597:0, i1598:0, i1597:0) -> f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0)), i2109:0, i2807:0, i1646:0 + 2 * i2109:0 - i2807:0, i1597:0, i1598:0 + 2, i1597:0) :|: i1646:0 > -1 && i1598:0 + 1 < i1597:0 && i1597:0 > -1 && i1598:0 > -1 && i2109:0 > -1 && i2807:0 > -1 && i1600:0 > -1 && 2 * i1599:0 >= 0 && 2 * i2109:0 >= 0 && i1646:0 + 2 * i2109:0 >= 0 && 2 * i2109:0 - i2807:0 < 2 * i1599:0 - i1600:0 f3561_0_main_LT(java.lang.Object(ARRAY(x)), x1, x2, x3, x, x4, x) -> f3561_0_main_LT(java.lang.Object(ARRAY(x)), 0, 0, x3, x, x4, x) :|: x > -1 && x3 > -1 && x4 >= x && x2 > -1 && 2 * x1 - x2 > 0 && 2 * x1 >= 0 f3561_0_main_LT(java.lang.Object(ARRAY(x5)), x6, x7, x8, x5, x9, x5) -> f3561_0_main_LT(java.lang.Object(ARRAY(x5)), x10, 0, x8 + 2 * x10, x5, x9 + 1, x5) :|: x5 > -1 && x8 > -1 && x9 < x5 && x9 > -1 && x10 > -1 && x9 + 1 >= x5 && x7 > -1 && 2 * x6 >= 0 && 2 * x10 >= 0 && x8 + 2 * x10 >= 0 && 2 * x10 < 2 * x6 - x7 ---------------------------------------- (9) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (10) Obligation: Rules: f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0)), i1599:0, i1600:0, i1646:0, i1597:0, i1598:0, i1597:0) -> f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0)), i2109:0, i2807:0, arith, i1597:0, arith1, i1597:0) :|: i1646:0 > -1 && i1598:0 + 1 < i1597:0 && i1597:0 > -1 && i1598:0 > -1 && i2109:0 > -1 && i2807:0 > -1 && i1600:0 > -1 && 2 * i1599:0 >= 0 && 2 * i2109:0 >= 0 && i1646:0 + 2 * i2109:0 >= 0 && 2 * i2109:0 - i2807:0 < 2 * i1599:0 - i1600:0 && arith = i1646:0 + 2 * i2109:0 - i2807:0 && arith1 = i1598:0 + 2 f3561_0_main_LT(java.lang.Object(ARRAY(x)), x1, x2, x3, x, x4, x) -> f3561_0_main_LT(java.lang.Object(ARRAY(x)), 0, 0, x3, x, x4, x) :|: x > -1 && x3 > -1 && x4 >= x && x2 > -1 && 2 * x1 - x2 > 0 && 2 * x1 >= 0 f3561_0_main_LT(java.lang.Object(ARRAY(x11)), x12, x13, x14, x11, x15, x11) -> f3561_0_main_LT(java.lang.Object(ARRAY(x11)), x16, 0, x17, x11, x18, x11) :|: x11 > -1 && x14 > -1 && x15 < x11 && x15 > -1 && x16 > -1 && x15 + 1 >= x11 && x13 > -1 && 2 * x12 >= 0 && 2 * x16 >= 0 && x14 + 2 * x16 >= 0 && 2 * x16 < 2 * x12 - x13 && x17 = x14 + 2 * x16 && x18 = x15 + 1 ---------------------------------------- (11) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0)), i1599:0, i1600:0, i1646:0, i1597:0, i1598:0, i1597:0) -> f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0)), i2109:0, i2807:0, arith, i1597:0, arith1, i1597:0) :|: i1646:0 > -1 && i1598:0 + 1 < i1597:0 && i1597:0 > -1 && i1598:0 > -1 && i2109:0 > -1 && i2807:0 > -1 && i1600:0 > -1 && 2 * i1599:0 >= 0 && 2 * i2109:0 >= 0 && i1646:0 + 2 * i2109:0 >= 0 && 2 * i2109:0 - i2807:0 < 2 * i1599:0 - i1600:0 && arith = i1646:0 + 2 * i2109:0 - i2807:0 && arith1 = i1598:0 + 2 (2) f3561_0_main_LT(java.lang.Object(ARRAY(x)), x1, x2, x3, x, x4, x) -> f3561_0_main_LT(java.lang.Object(ARRAY(x)), 0, 0, x3, x, x4, x) :|: x > -1 && x3 > -1 && x4 >= x && x2 > -1 && 2 * x1 - x2 > 0 && 2 * x1 >= 0 (3) f3561_0_main_LT(java.lang.Object(ARRAY(x11)), x12, x13, x14, x11, x15, x11) -> f3561_0_main_LT(java.lang.Object(ARRAY(x11)), x16, 0, x17, x11, x18, x11) :|: x11 > -1 && x14 > -1 && x15 < x11 && x15 > -1 && x16 > -1 && x15 + 1 >= x11 && x13 > -1 && 2 * x12 >= 0 && 2 * x16 >= 0 && x14 + 2 * x16 >= 0 && 2 * x16 < 2 * x12 - x13 && x17 = x14 + 2 * x16 && x18 = x15 + 1 Arcs: (1) -> (1), (2), (3) (3) -> (2) This digraph is fully evaluated! ---------------------------------------- (12) Obligation: Termination digraph: Nodes: (1) f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0)), i1599:0, i1600:0, i1646:0, i1597:0, i1598:0, i1597:0) -> f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0)), i2109:0, i2807:0, arith, i1597:0, arith1, i1597:0) :|: i1646:0 > -1 && i1598:0 + 1 < i1597:0 && i1597:0 > -1 && i1598:0 > -1 && i2109:0 > -1 && i2807:0 > -1 && i1600:0 > -1 && 2 * i1599:0 >= 0 && 2 * i2109:0 >= 0 && i1646:0 + 2 * i2109:0 >= 0 && 2 * i2109:0 - i2807:0 < 2 * i1599:0 - i1600:0 && arith = i1646:0 + 2 * i2109:0 - i2807:0 && arith1 = i1598:0 + 2 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (13) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (14) Obligation: Rules: f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0:0)), i1599:0:0, i1600:0:0, i1646:0:0, i1597:0:0, i1598:0:0, i1597:0:0) -> f3561_0_main_LT(java.lang.Object(ARRAY(i1597:0:0)), i2109:0:0, i2807:0:0, i1646:0:0 + 2 * i2109:0:0 - i2807:0:0, i1597:0:0, i1598:0:0 + 2, i1597:0:0) :|: i1646:0:0 + 2 * i2109:0:0 >= 0 && 2 * i2109:0:0 - i2807:0:0 < 2 * i1599:0:0 - i1600:0:0 && 2 * i2109:0:0 >= 0 && 2 * i1599:0:0 >= 0 && i1600:0:0 > -1 && i2807:0:0 > -1 && i2109:0:0 > -1 && i1598:0:0 > -1 && i1597:0:0 > -1 && i1598:0:0 + 1 < i1597:0:0 && i1646:0:0 > -1 ---------------------------------------- (15) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f3561_0_main_LT(VARIABLE, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER) java.lang.Object(VARIABLE) ARRAY(INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (16) Obligation: Rules: f3561_0_main_LT(c, i1599:0:0, i1600:0:0, i1646:0:0, i1597:0:0, i1598:0:0, i1597:0:0) -> f3561_0_main_LT(c1, i2109:0:0, i2807:0:0, c2, i1597:0:0, c3, i1597:0:0) :|: c3 = i1598:0:0 + 2 && (c2 = i1646:0:0 + 2 * i2109:0:0 - i2807:0:0 && (c1 = 0 && c = 0)) && (i1646:0:0 + 2 * i2109:0:0 >= 0 && 2 * i2109:0:0 - i2807:0:0 < 2 * i1599:0:0 - i1600:0:0 && 2 * i2109:0:0 >= 0 && 2 * i1599:0:0 >= 0 && i1600:0:0 > -1 && i2807:0:0 > -1 && i2109:0:0 > -1 && i1598:0:0 > -1 && i1597:0:0 > -1 && i1598:0:0 + 1 < i1597:0:0 && i1646:0:0 > -1) ---------------------------------------- (17) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f3561_0_main_LT(x, x1, x2, x3, x4, x5, x6)] = -1 + c*x - x5 + x6 The following rules are decreasing: f3561_0_main_LT(c, i1599:0:0, i1600:0:0, i1646:0:0, i1597:0:0, i1598:0:0, i1597:0:0) -> f3561_0_main_LT(c1, i2109:0:0, i2807:0:0, c2, i1597:0:0, c3, i1597:0:0) :|: c3 = i1598:0:0 + 2 && (c2 = i1646:0:0 + 2 * i2109:0:0 - i2807:0:0 && (c1 = 0 && c = 0)) && (i1646:0:0 + 2 * i2109:0:0 >= 0 && 2 * i2109:0:0 - i2807:0:0 < 2 * i1599:0:0 - i1600:0:0 && 2 * i2109:0:0 >= 0 && 2 * i1599:0:0 >= 0 && i1600:0:0 > -1 && i2807:0:0 > -1 && i2109:0:0 > -1 && i1598:0:0 > -1 && i1597:0:0 > -1 && i1598:0:0 + 1 < i1597:0:0 && i1646:0:0 > -1) The following rules are bounded: f3561_0_main_LT(c, i1599:0:0, i1600:0:0, i1646:0:0, i1597:0:0, i1598:0:0, i1597:0:0) -> f3561_0_main_LT(c1, i2109:0:0, i2807:0:0, c2, i1597:0:0, c3, i1597:0:0) :|: c3 = i1598:0:0 + 2 && (c2 = i1646:0:0 + 2 * i2109:0:0 - i2807:0:0 && (c1 = 0 && c = 0)) && (i1646:0:0 + 2 * i2109:0:0 >= 0 && 2 * i2109:0:0 - i2807:0:0 < 2 * i1599:0:0 - i1600:0:0 && 2 * i2109:0:0 >= 0 && 2 * i1599:0:0 >= 0 && i1600:0:0 > -1 && i2807:0:0 > -1 && i2109:0:0 > -1 && i1598:0:0 > -1 && i1597:0:0 > -1 && i1598:0:0 + 1 < i1597:0:0 && i1646:0:0 > -1) ---------------------------------------- (18) YES