/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: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty termination of the given Bare JBC problem could be proven: (0) Bare JBC problem (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] (2) JBC problem (3) JBCToGraph [EQUIVALENT, 782 ms] (4) JBCTerminationGraph (5) TerminationGraphToSCCProof [SOUND, 0 ms] (6) JBCTerminationSCC (7) SCCToIRSProof [SOUND, 300 ms] (8) IRSwT (9) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (10) IRSwT (11) IRSwTTerminationDigraphProof [EQUIVALENT, 43 ms] (12) IRSwT (13) IntTRSCompressionProof [EQUIVALENT, 0 ms] (14) IRSwT (15) TempFilterProof [SOUND, 27 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 590 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 118 IRulesP rules: f1385_0_random_LT(EOS(STATIC_1385(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i454, i453) -> f1400_0_random_FieldAccess(EOS(STATIC_1400(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456) :|: i454 < i453 f1400_0_random_FieldAccess(EOS(STATIC_1400(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456) -> f1417_0_random_FieldAccess(EOS(STATIC_1417(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(ARRAY(i453))) :|: TRUE f1417_0_random_FieldAccess(EOS(STATIC_1417(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(ARRAY(i453))) -> f1435_0_random_ArrayAccess(EOS(STATIC_1435(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(ARRAY(i453)), i454) :|: TRUE f1435_0_random_ArrayAccess(EOS(STATIC_1435(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(ARRAY(i453)), i454) -> f1447_0_random_ArrayAccess(EOS(STATIC_1447(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(ARRAY(i453)), i454) :|: TRUE f1447_0_random_ArrayAccess(EOS(STATIC_1447(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(ARRAY(i453)), i454) -> f1458_0_random_Store(EOS(STATIC_1458(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, o95) :|: TRUE f1458_0_random_Store(EOS(STATIC_1458(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, o95) -> f1464_0_random_FieldAccess(EOS(STATIC_1464(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, o95) :|: TRUE f1464_0_random_FieldAccess(EOS(STATIC_1464(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, o95) -> f1469_0_random_ConstantStackPush(EOS(STATIC_1469(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, o95, i454) :|: TRUE f1469_0_random_ConstantStackPush(EOS(STATIC_1469(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, o95, i454) -> f1485_0_random_IntArithmetic(EOS(STATIC_1485(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, o95, i454, 1) :|: TRUE f1485_0_random_IntArithmetic(EOS(STATIC_1485(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, o95, i454, matching1) -> f1495_0_random_FieldAccess(EOS(STATIC_1495(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, o95, i454 + 1) :|: i454 > 0 && matching1 = 1 f1495_0_random_FieldAccess(EOS(STATIC_1495(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, o95, i605) -> f1510_0_random_Load(EOS(STATIC_1510(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, o95) :|: TRUE f1510_0_random_Load(EOS(STATIC_1510(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, o95) -> f1532_0_random_InvokeMethod(EOS(STATIC_1532(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, o95) :|: TRUE f1532_0_random_InvokeMethod(EOS(STATIC_1532(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(o120sub)) -> f1548_0_random_InvokeMethod(EOS(STATIC_1548(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(o120sub)) :|: TRUE f1548_0_random_InvokeMethod(EOS(STATIC_1548(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(o121sub)) -> f1557_0_random_InvokeMethod(EOS(STATIC_1557(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(o121sub)) :|: TRUE f1557_0_random_InvokeMethod(EOS(STATIC_1557(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(o121sub)) -> f1566_0_length_Load(EOS(STATIC_1566(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(o121sub)) :|: TRUE f1566_0_length_Load(EOS(STATIC_1566(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(o121sub)) -> f1581_0_length_FieldAccess(EOS(STATIC_1581(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(o121sub)) :|: TRUE f1581_0_length_FieldAccess(EOS(STATIC_1581(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(java.lang.String(EOC, i746))) -> f1593_0_length_FieldAccess(EOS(STATIC_1593(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(java.lang.String(EOC, i746))) :|: i746 >= 0 f1593_0_length_FieldAccess(EOS(STATIC_1593(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, java.lang.Object(java.lang.String(EOC, i746))) -> f1598_0_length_Return(EOS(STATIC_1598(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746) :|: TRUE f1598_0_length_Return(EOS(STATIC_1598(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746) -> f1607_0_random_Return(EOS(STATIC_1607(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746) :|: TRUE f1607_0_random_Return(EOS(STATIC_1607(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746) -> f1624_0_main_Store(EOS(STATIC_1624(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746) :|: TRUE f1624_0_main_Store(EOS(STATIC_1624(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746) -> f1634_0_main_InvokeMethod(EOS(STATIC_1634(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746) :|: TRUE f1634_0_main_InvokeMethod(EOS(STATIC_1634(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746) -> f1645_0_random_FieldAccess(EOS(STATIC_1645(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746) :|: TRUE f1645_0_random_FieldAccess(EOS(STATIC_1645(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746) -> f1670_0_random_FieldAccess(EOS(STATIC_1670(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i605) :|: TRUE f1670_0_random_FieldAccess(EOS(STATIC_1670(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i605) -> f1708_0_random_ArrayLength(EOS(STATIC_1708(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i605, java.lang.Object(ARRAY(i453))) :|: TRUE f1708_0_random_ArrayLength(EOS(STATIC_1708(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i605, java.lang.Object(ARRAY(i453))) -> f1737_0_random_LT(EOS(STATIC_1737(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i605, i453) :|: i453 >= 0 f1737_0_random_LT(EOS(STATIC_1737(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i605, i453) -> f1761_0_random_LT(EOS(STATIC_1761(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i605, i453) :|: i605 < i453 f1737_0_random_LT(EOS(STATIC_1737(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i605, i453) -> f1762_0_random_LT(EOS(STATIC_1762(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i605, i453) :|: i605 >= i453 f1761_0_random_LT(EOS(STATIC_1761(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i605, i453) -> f1767_0_random_FieldAccess(EOS(STATIC_1767(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746) :|: i605 < i453 f1767_0_random_FieldAccess(EOS(STATIC_1767(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746) -> f1775_0_random_FieldAccess(EOS(STATIC_1775(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(ARRAY(i453))) :|: TRUE f1775_0_random_FieldAccess(EOS(STATIC_1775(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(ARRAY(i453))) -> f1805_0_random_ArrayAccess(EOS(STATIC_1805(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(ARRAY(i453)), i605) :|: TRUE f1805_0_random_ArrayAccess(EOS(STATIC_1805(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(ARRAY(i453)), i605) -> f1829_0_random_ArrayAccess(EOS(STATIC_1829(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(ARRAY(i453)), i605) :|: TRUE f1829_0_random_ArrayAccess(EOS(STATIC_1829(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(ARRAY(i453)), i605) -> f1847_0_random_Store(EOS(STATIC_1847(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, o195) :|: TRUE f1847_0_random_Store(EOS(STATIC_1847(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, o195) -> f1863_0_random_FieldAccess(EOS(STATIC_1863(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, o195) :|: TRUE f1863_0_random_FieldAccess(EOS(STATIC_1863(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, o195) -> f1871_0_random_ConstantStackPush(EOS(STATIC_1871(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, o195, i605) :|: TRUE f1871_0_random_ConstantStackPush(EOS(STATIC_1871(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, o195, i605) -> f1884_0_random_IntArithmetic(EOS(STATIC_1884(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, o195, i605, 1) :|: TRUE f1884_0_random_IntArithmetic(EOS(STATIC_1884(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, o195, i605, matching1) -> f1901_0_random_FieldAccess(EOS(STATIC_1901(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, o195, i605 + 1) :|: i605 > 0 && matching1 = 1 f1901_0_random_FieldAccess(EOS(STATIC_1901(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, o195, i1075) -> f1914_0_random_Load(EOS(STATIC_1914(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, o195) :|: TRUE f1914_0_random_Load(EOS(STATIC_1914(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, o195) -> f1927_0_random_InvokeMethod(EOS(STATIC_1927(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, o195) :|: TRUE f1927_0_random_InvokeMethod(EOS(STATIC_1927(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(o227sub)) -> f1936_0_random_InvokeMethod(EOS(STATIC_1936(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(o227sub)) :|: TRUE f1936_0_random_InvokeMethod(EOS(STATIC_1936(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(o228sub)) -> f2021_0_random_InvokeMethod(EOS(STATIC_2021(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(o228sub)) :|: TRUE f2021_0_random_InvokeMethod(EOS(STATIC_2021(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(o228sub)) -> f2026_0_length_Load(EOS(STATIC_2026(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(o228sub)) :|: TRUE f2026_0_length_Load(EOS(STATIC_2026(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(o228sub)) -> f2057_0_length_FieldAccess(EOS(STATIC_2057(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(o228sub)) :|: TRUE f2057_0_length_FieldAccess(EOS(STATIC_2057(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(java.lang.String(EOC, i1196))) -> f2068_0_length_FieldAccess(EOS(STATIC_2068(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(java.lang.String(EOC, i1196))) :|: i1196 >= 0 f2068_0_length_FieldAccess(EOS(STATIC_2068(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, java.lang.Object(java.lang.String(EOC, i1196))) -> f2087_0_length_Return(EOS(STATIC_2087(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i1196) :|: TRUE f2087_0_length_Return(EOS(STATIC_2087(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i1196) -> f2100_0_random_Return(EOS(STATIC_2100(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i1196) :|: TRUE f2100_0_random_Return(EOS(STATIC_2100(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i1196) -> f2131_0_main_Store(EOS(STATIC_2131(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i1196) :|: TRUE f2131_0_main_Store(EOS(STATIC_2131(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i1196) -> f2144_0_main_ConstantStackPush(EOS(STATIC_2144(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i1196) :|: TRUE f2144_0_main_ConstantStackPush(EOS(STATIC_2144(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i1196) -> f2175_0_main_Load(EOS(STATIC_2175(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i1196, 2) :|: TRUE f2175_0_main_Load(EOS(STATIC_2175(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i1196, matching1) -> f2198_0_main_IntArithmetic(EOS(STATIC_2198(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i455, i456, i746, i1196, 2, i21) :|: TRUE && matching1 = 2 f2198_0_main_IntArithmetic(EOS(STATIC_2198(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i455, i456, i746, i1196, matching1, i21) -> f2219_0_main_Load(EOS(STATIC_2219(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i455, i456, i746, i1196, 2 * i21) :|: TRUE && matching1 = 2 f2219_0_main_Load(EOS(STATIC_2219(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i455, i456, i746, i1196, i1366) -> f2233_0_main_IntArithmetic(EOS(STATIC_2233(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1366, i455) :|: TRUE f2233_0_main_IntArithmetic(EOS(STATIC_2233(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1366, i455) -> f2241_0_main_ConstantStackPush(EOS(STATIC_2241(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1366 - i455) :|: i1366 >= 0 && i455 >= 0 f2241_0_main_ConstantStackPush(EOS(STATIC_2241(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1389) -> f2253_0_main_Load(EOS(STATIC_2253(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1389, 2) :|: TRUE f2253_0_main_Load(EOS(STATIC_2253(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1389, matching1) -> f2269_0_main_IntArithmetic(EOS(STATIC_2269(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1389, 2, i746) :|: TRUE && matching1 = 2 f2269_0_main_IntArithmetic(EOS(STATIC_2269(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1389, matching1, i746) -> f2298_0_main_Load(EOS(STATIC_2298(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1389, 2 * i746) :|: TRUE && matching1 = 2 f2298_0_main_Load(EOS(STATIC_2298(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1389, i1451) -> f2470_0_main_IntArithmetic(EOS(STATIC_2470(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1389, i1451, i1196) :|: TRUE f2470_0_main_IntArithmetic(EOS(STATIC_2470(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1389, i1451, i1196) -> f2509_0_main_GT(EOS(STATIC_2509(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1389, i1451 - i1196) :|: i1451 >= 0 && i1196 >= 0 f2509_0_main_GT(EOS(STATIC_2509(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1389, i1570) -> f2555_0_main_GT(EOS(STATIC_2555(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1389, i1570) :|: i1389 > i1570 f2555_0_main_GT(EOS(STATIC_2555(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196, i1389, i1570) -> f2574_0_main_Load(EOS(STATIC_2574(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196) :|: i1389 > i1570 f2574_0_main_Load(EOS(STATIC_2574(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i746, i1196) -> f2589_0_main_Store(EOS(STATIC_2589(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i1196, i746) :|: TRUE f2589_0_main_Store(EOS(STATIC_2589(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i456, i1196, i746) -> f2636_0_main_Load(EOS(STATIC_2636(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i456, i1196) :|: TRUE f2636_0_main_Load(EOS(STATIC_2636(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i456, i1196) -> f2663_0_main_Store(EOS(STATIC_2663(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i456, i1196) :|: TRUE f2663_0_main_Store(EOS(STATIC_2663(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i456, i1196) -> f2767_0_main_Load(EOS(STATIC_2767(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i456) :|: TRUE f2767_0_main_Load(EOS(STATIC_2767(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i456) -> f2776_0_main_ConstantStackPush(EOS(STATIC_2776(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i456) :|: TRUE f2776_0_main_ConstantStackPush(EOS(STATIC_2776(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i456) -> f2786_0_main_Load(EOS(STATIC_2786(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i456, 2) :|: TRUE f2786_0_main_Load(EOS(STATIC_2786(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i456, matching1) -> f2795_0_main_IntArithmetic(EOS(STATIC_2795(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i456, 2, i746) :|: TRUE && matching1 = 2 f2795_0_main_IntArithmetic(EOS(STATIC_2795(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i456, matching1, i746) -> f2797_0_main_IntArithmetic(EOS(STATIC_2797(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i456, 2 * i746) :|: TRUE && matching1 = 2 f2797_0_main_IntArithmetic(EOS(STATIC_2797(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i456, i1754) -> f2802_0_main_Load(EOS(STATIC_2802(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i456 + i1754) :|: i456 >= 0 && i1754 >= 0 f2802_0_main_Load(EOS(STATIC_2802(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i1764) -> f2808_0_main_IntArithmetic(EOS(STATIC_2808(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i1764, i1196) :|: TRUE f2808_0_main_IntArithmetic(EOS(STATIC_2808(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i1764, i1196) -> f2817_0_main_Store(EOS(STATIC_2817(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i1764 - i1196) :|: i1764 >= 0 && i1196 >= 0 f2817_0_main_Store(EOS(STATIC_2817(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i1783) -> f2825_0_main_JMP(EOS(STATIC_2825(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i1783) :|: TRUE f2825_0_main_JMP(EOS(STATIC_2825(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i1783) -> f2901_0_main_Load(EOS(STATIC_2901(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i1783) :|: TRUE f2901_0_main_Load(EOS(STATIC_2901(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i1783) -> f2902_0_main_Load(EOS(STATIC_2902(java.lang.Object(ARRAY(i453)), i1075)), java.lang.Object(ARRAY(i453)), i746, i1196, i1783) :|: TRUE f2902_0_main_Load(EOS(STATIC_2902(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1822) -> f2930_0_main_LT(EOS(STATIC_2930(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1822, i1822) :|: TRUE f2930_0_main_LT(EOS(STATIC_2930(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1867, i1867) -> f2935_0_main_LT(EOS(STATIC_2935(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1867, i1867) :|: TRUE f2935_0_main_LT(EOS(STATIC_2935(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1867, i1867) -> f2953_0_main_InvokeMethod(EOS(STATIC_2953(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1867) :|: i1867 >= 0 f2953_0_main_InvokeMethod(EOS(STATIC_2953(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1867) -> f2954_0_random_FieldAccess(EOS(STATIC_2954(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1867) :|: TRUE f2954_0_random_FieldAccess(EOS(STATIC_2954(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1867) -> f2955_0_random_FieldAccess(EOS(STATIC_2955(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1867, i1819) :|: TRUE f2955_0_random_FieldAccess(EOS(STATIC_2955(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1867, i1819) -> f2959_0_random_ArrayLength(EOS(STATIC_2959(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1867, i1819, java.lang.Object(ARRAY(i1818))) :|: TRUE f2959_0_random_ArrayLength(EOS(STATIC_2959(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1867, i1819, java.lang.Object(ARRAY(i1818))) -> f3007_0_random_LT(EOS(STATIC_3007(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1867, i1819, i1818) :|: i1818 >= 0 f3007_0_random_LT(EOS(STATIC_3007(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1867, i1819, i1818) -> f1367_0_random_LT(EOS(STATIC_1367(java.lang.Object(ARRAY(i1818)), i1819)), java.lang.Object(ARRAY(i1818)), i1820, i1821, i1867, i1819, i1818) :|: TRUE f1367_0_random_LT(EOS(STATIC_1367(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i454, i453) -> f1385_0_random_LT(EOS(STATIC_1385(java.lang.Object(ARRAY(i453)), i454)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i454, i453) :|: i454 < i453 f1762_0_random_LT(EOS(STATIC_1762(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, i605, i453) -> f1768_0_random_ConstantStackPush(EOS(STATIC_1768(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746) :|: i605 >= i453 f1768_0_random_ConstantStackPush(EOS(STATIC_1768(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746) -> f1780_0_random_Return(EOS(STATIC_1780(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, 0) :|: TRUE f1780_0_random_Return(EOS(STATIC_1780(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, matching1) -> f1808_0_main_Store(EOS(STATIC_1808(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, 0) :|: TRUE && matching1 = 0 f1808_0_main_Store(EOS(STATIC_1808(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, matching1) -> f1833_0_main_ConstantStackPush(EOS(STATIC_1833(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, 0) :|: TRUE && matching1 = 0 f1833_0_main_ConstantStackPush(EOS(STATIC_1833(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, matching1) -> f1850_0_main_Load(EOS(STATIC_1850(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, 0, 2) :|: TRUE && matching1 = 0 f1850_0_main_Load(EOS(STATIC_1850(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i21, i455, i456, i746, matching1, matching2) -> f1866_0_main_IntArithmetic(EOS(STATIC_1866(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i455, i456, i746, 0, 2, i21) :|: TRUE && matching1 = 0 && matching2 = 2 f1866_0_main_IntArithmetic(EOS(STATIC_1866(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i455, i456, i746, matching1, matching2, i21) -> f1879_0_main_Load(EOS(STATIC_1879(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i455, i456, i746, 0, 2 * i21) :|: TRUE && matching1 = 0 && matching2 = 2 f1879_0_main_Load(EOS(STATIC_1879(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i455, i456, i746, matching1, i1059) -> f1887_0_main_IntArithmetic(EOS(STATIC_1887(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, 0, i1059, i455) :|: TRUE && matching1 = 0 f1887_0_main_IntArithmetic(EOS(STATIC_1887(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, matching1, i1059, i455) -> f1905_0_main_ConstantStackPush(EOS(STATIC_1905(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, 0, i1059 - i455) :|: i1059 >= 0 && i455 >= 0 && matching1 = 0 f1905_0_main_ConstantStackPush(EOS(STATIC_1905(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, matching1, i1079) -> f1918_0_main_Load(EOS(STATIC_1918(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, 0, i1079, 2) :|: TRUE && matching1 = 0 f1918_0_main_Load(EOS(STATIC_1918(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, matching1, i1079, matching2) -> f1931_0_main_IntArithmetic(EOS(STATIC_1931(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, 0, i1079, 2, i746) :|: TRUE && matching1 = 0 && matching2 = 2 f1931_0_main_IntArithmetic(EOS(STATIC_1931(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, matching1, i1079, matching2, i746) -> f1941_0_main_Load(EOS(STATIC_1941(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, 0, i1079, 2 * i746) :|: TRUE && matching1 = 0 && matching2 = 2 f1941_0_main_Load(EOS(STATIC_1941(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, matching1, i1079, i1102) -> f2024_0_main_IntArithmetic(EOS(STATIC_2024(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, 0, i1079, i1102, 0) :|: TRUE && matching1 = 0 f2024_0_main_IntArithmetic(EOS(STATIC_2024(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, matching1, i1079, i1102, matching2) -> f2028_0_main_GT(EOS(STATIC_2028(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, 0, i1079, i1102 - 0) :|: i1102 >= 0 && matching1 = 0 && matching2 = 0 f2028_0_main_GT(EOS(STATIC_2028(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, matching1, i1079, i1102) -> f2036_0_main_GT(EOS(STATIC_2036(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, 0, i1079, i1102) :|: i1079 > i1102 && matching1 = 0 f2036_0_main_GT(EOS(STATIC_2036(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, matching1, i1079, i1102) -> f2064_0_main_Load(EOS(STATIC_2064(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, 0) :|: i1079 > i1102 && matching1 = 0 f2064_0_main_Load(EOS(STATIC_2064(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, i746, matching1) -> f2072_0_main_Store(EOS(STATIC_2072(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, 0, i746) :|: TRUE && matching1 = 0 f2072_0_main_Store(EOS(STATIC_2072(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i456, matching1, i746) -> f2093_0_main_Load(EOS(STATIC_2093(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, i456, 0) :|: TRUE && matching1 = 0 f2093_0_main_Load(EOS(STATIC_2093(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, i456, matching1) -> f2111_0_main_Store(EOS(STATIC_2111(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, i456, 0) :|: TRUE && matching1 = 0 f2111_0_main_Store(EOS(STATIC_2111(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, i456, matching1) -> f2140_0_main_Load(EOS(STATIC_2140(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, 0, i456) :|: TRUE && matching1 = 0 f2140_0_main_Load(EOS(STATIC_2140(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, matching1, i456) -> f2158_0_main_ConstantStackPush(EOS(STATIC_2158(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, 0, i456) :|: TRUE && matching1 = 0 f2158_0_main_ConstantStackPush(EOS(STATIC_2158(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, matching1, i456) -> f2185_0_main_Load(EOS(STATIC_2185(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, 0, i456, 2) :|: TRUE && matching1 = 0 f2185_0_main_Load(EOS(STATIC_2185(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, matching1, i456, matching2) -> f2211_0_main_IntArithmetic(EOS(STATIC_2211(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, 0, i456, 2, i746) :|: TRUE && matching1 = 0 && matching2 = 2 f2211_0_main_IntArithmetic(EOS(STATIC_2211(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, matching1, i456, matching2, i746) -> f2226_0_main_IntArithmetic(EOS(STATIC_2226(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, 0, i456, 2 * i746) :|: TRUE && matching1 = 0 && matching2 = 2 f2226_0_main_IntArithmetic(EOS(STATIC_2226(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, matching1, i456, i1374) -> f2239_0_main_Load(EOS(STATIC_2239(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, 0, i456 + i1374) :|: i456 >= 0 && i1374 >= 0 && matching1 = 0 f2239_0_main_Load(EOS(STATIC_2239(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, matching1, i1388) -> f2251_0_main_IntArithmetic(EOS(STATIC_2251(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, 0, i1388, 0) :|: TRUE && matching1 = 0 f2251_0_main_IntArithmetic(EOS(STATIC_2251(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, matching1, i1388, matching2) -> f2264_0_main_Store(EOS(STATIC_2264(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, 0, i1388 - 0) :|: i1388 >= 0 && matching1 = 0 && matching2 = 0 f2264_0_main_Store(EOS(STATIC_2264(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, matching1, i1388) -> f2286_0_main_JMP(EOS(STATIC_2286(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, 0, i1388) :|: TRUE && matching1 = 0 f2286_0_main_JMP(EOS(STATIC_2286(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, matching1, i1388) -> f2440_0_main_Load(EOS(STATIC_2440(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, 0, i1388) :|: TRUE && matching1 = 0 f2440_0_main_Load(EOS(STATIC_2440(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, matching1, i1388) -> f2441_0_main_Load(EOS(STATIC_2441(java.lang.Object(ARRAY(i453)), i605)), java.lang.Object(ARRAY(i453)), i746, 0, i1388) :|: TRUE && matching1 = 0 f2441_0_main_Load(EOS(STATIC_2441(java.lang.Object(ARRAY(i1483)), i1484)), java.lang.Object(ARRAY(i1483)), i1485, i1486, i1487) -> f2494_0_main_LT(EOS(STATIC_2494(java.lang.Object(ARRAY(i1483)), i1484)), java.lang.Object(ARRAY(i1483)), i1485, i1486, i1487, i1487) :|: TRUE f2494_0_main_LT(EOS(STATIC_2494(java.lang.Object(ARRAY(i1483)), i1484)), java.lang.Object(ARRAY(i1483)), i1485, i1486, i1487, i1487) -> f2531_0_main_InvokeMethod(EOS(STATIC_2531(java.lang.Object(ARRAY(i1483)), i1484)), java.lang.Object(ARRAY(i1483)), i1485, i1486, i1487) :|: i1487 >= 0 f2531_0_main_InvokeMethod(EOS(STATIC_2531(java.lang.Object(ARRAY(i1483)), i1484)), java.lang.Object(ARRAY(i1483)), i1485, i1486, i1487) -> f2564_0_random_FieldAccess(EOS(STATIC_2564(java.lang.Object(ARRAY(i1483)), i1484)), java.lang.Object(ARRAY(i1483)), i1485, i1486, i1487) :|: TRUE f2564_0_random_FieldAccess(EOS(STATIC_2564(java.lang.Object(ARRAY(i1483)), i1484)), java.lang.Object(ARRAY(i1483)), i1485, i1486, i1487) -> f2627_0_random_FieldAccess(EOS(STATIC_2627(java.lang.Object(ARRAY(i1483)), i1484)), java.lang.Object(ARRAY(i1483)), i1485, i1486, i1487, i1484) :|: TRUE f2627_0_random_FieldAccess(EOS(STATIC_2627(java.lang.Object(ARRAY(i1483)), i1484)), java.lang.Object(ARRAY(i1483)), i1485, i1486, i1487, i1484) -> f2660_0_random_ArrayLength(EOS(STATIC_2660(java.lang.Object(ARRAY(i1483)), i1484)), java.lang.Object(ARRAY(i1483)), i1485, i1486, i1487, i1484, java.lang.Object(ARRAY(i1483))) :|: TRUE f2660_0_random_ArrayLength(EOS(STATIC_2660(java.lang.Object(ARRAY(i1483)), i1484)), java.lang.Object(ARRAY(i1483)), i1485, i1486, i1487, i1484, java.lang.Object(ARRAY(i1483))) -> f2762_0_random_LT(EOS(STATIC_2762(java.lang.Object(ARRAY(i1483)), i1484)), java.lang.Object(ARRAY(i1483)), i1485, i1486, i1487, i1484, i1483) :|: i1483 >= 0 f2762_0_random_LT(EOS(STATIC_2762(java.lang.Object(ARRAY(i1483)), i1484)), java.lang.Object(ARRAY(i1483)), i1485, i1486, i1487, i1484, i1483) -> f1367_0_random_LT(EOS(STATIC_1367(java.lang.Object(ARRAY(i1483)), i1484)), java.lang.Object(ARRAY(i1483)), i1485, i1486, i1487, i1484, i1483) :|: TRUE Combined rules. Obtained 1 IRulesP rules: f1385_0_random_LT(EOS(STATIC_1385(java.lang.Object(ARRAY(i453:0)), i454:0)), java.lang.Object(ARRAY(i453:0)), i21:0, i455:0, i456:0, i454:0, i453:0) -> f1385_0_random_LT(EOS(STATIC_1385(java.lang.Object(ARRAY(i453:0)), i454:0 + 2)), java.lang.Object(ARRAY(i453:0)), i746:0, i1196:0, i456:0 + 2 * i746:0 - i1196:0, i454:0 + 2, i453:0) :|: i454:0 + 1 < i453:0 && i454:0 + 2 < i453:0 && i454:0 > 0 && i746:0 > -1 && i453:0 > -1 && i1196:0 > -1 && i455:0 > -1 && 2 * i21:0 >= 0 && 2 * i746:0 >= 0 && 2 * i746:0 - i1196:0 < 2 * i21:0 - i455:0 && i456:0 > -1 && i456:0 + 2 * i746:0 >= 0 && i456:0 + 2 * i746:0 - i1196:0 >= 0 Finished conversion. Obtained 1 rules.P rules: f1385_0_random_LT(java.lang.Object(ARRAY(i453:0)), i21:0, i455:0, i456:0, i454:0, i453:0, i453:0, i454:0, i453:0) -> f1385_0_random_LT(java.lang.Object(ARRAY(i453:0)), i746:0, i1196:0, i456:0 + 2 * i746:0 - i1196:0, i454:0 + 2, i453:0, i453:0, i454:0 + 2, i453:0) :|: i454:0 + 2 < i453:0 && i454:0 + 1 < i453:0 && i454:0 > 0 && i746:0 > -1 && i453:0 > -1 && i1196:0 > -1 && i455:0 > -1 && 2 * i21:0 >= 0 && 2 * i746:0 >= 0 && 2 * i746:0 - i1196:0 < 2 * i21:0 - i455:0 && i456:0 > -1 && i456:0 + 2 * i746:0 - i1196:0 >= 0 && i456:0 + 2 * i746:0 >= 0 ---------------------------------------- (8) Obligation: Rules: f1385_0_random_LT(java.lang.Object(ARRAY(i453:0)), i21:0, i455:0, i456:0, i454:0, i453:0, i453:0, i454:0, i453:0) -> f1385_0_random_LT(java.lang.Object(ARRAY(i453:0)), i746:0, i1196:0, i456:0 + 2 * i746:0 - i1196:0, i454:0 + 2, i453:0, i453:0, i454:0 + 2, i453:0) :|: i454:0 + 2 < i453:0 && i454:0 + 1 < i453:0 && i454:0 > 0 && i746:0 > -1 && i453:0 > -1 && i1196:0 > -1 && i455:0 > -1 && 2 * i21:0 >= 0 && 2 * i746:0 >= 0 && 2 * i746:0 - i1196:0 < 2 * i21:0 - i455:0 && i456:0 > -1 && i456:0 + 2 * i746:0 - i1196:0 >= 0 && i456:0 + 2 * i746:0 >= 0 ---------------------------------------- (9) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (10) Obligation: Rules: f1385_0_random_LT(java.lang.Object(ARRAY(i453:0)), i21:0, i455:0, i456:0, i454:0, i453:0, i453:0, i454:0, i453:0) -> f1385_0_random_LT(java.lang.Object(ARRAY(i453:0)), i746:0, i1196:0, arith, arith1, i453:0, i453:0, arith1, i453:0) :|: i454:0 + 2 < i453:0 && i454:0 + 1 < i453:0 && i454:0 > 0 && i746:0 > -1 && i453:0 > -1 && i1196:0 > -1 && i455:0 > -1 && 2 * i21:0 >= 0 && 2 * i746:0 >= 0 && 2 * i746:0 - i1196:0 < 2 * i21:0 - i455:0 && i456:0 > -1 && i456:0 + 2 * i746:0 - i1196:0 >= 0 && i456:0 + 2 * i746:0 >= 0 && arith = i456:0 + 2 * i746:0 - i1196:0 && arith1 = i454:0 + 2 && arith1 = i454:0 + 2 ---------------------------------------- (11) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f1385_0_random_LT(java.lang.Object(ARRAY(i453:0)), i21:0, i455:0, i456:0, i454:0, i453:0, i453:0, i454:0, i453:0) -> f1385_0_random_LT(java.lang.Object(ARRAY(i453:0)), i746:0, i1196:0, arith, arith1, i453:0, i453:0, arith1, i453:0) :|: i454:0 + 2 < i453:0 && i454:0 + 1 < i453:0 && i454:0 > 0 && i746:0 > -1 && i453:0 > -1 && i1196:0 > -1 && i455:0 > -1 && 2 * i21:0 >= 0 && 2 * i746:0 >= 0 && 2 * i746:0 - i1196:0 < 2 * i21:0 - i455:0 && i456:0 > -1 && i456:0 + 2 * i746:0 - i1196:0 >= 0 && i456:0 + 2 * i746:0 >= 0 && arith = i456:0 + 2 * i746:0 - i1196:0 && arith1 = i454:0 + 2 && arith1 = i454:0 + 2 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (12) Obligation: Termination digraph: Nodes: (1) f1385_0_random_LT(java.lang.Object(ARRAY(i453:0)), i21:0, i455:0, i456:0, i454:0, i453:0, i453:0, i454:0, i453:0) -> f1385_0_random_LT(java.lang.Object(ARRAY(i453:0)), i746:0, i1196:0, arith, arith1, i453:0, i453:0, arith1, i453:0) :|: i454:0 + 2 < i453:0 && i454:0 + 1 < i453:0 && i454:0 > 0 && i746:0 > -1 && i453:0 > -1 && i1196:0 > -1 && i455:0 > -1 && 2 * i21:0 >= 0 && 2 * i746:0 >= 0 && 2 * i746:0 - i1196:0 < 2 * i21:0 - i455:0 && i456:0 > -1 && i456:0 + 2 * i746:0 - i1196:0 >= 0 && i456:0 + 2 * i746:0 >= 0 && arith = i456:0 + 2 * i746:0 - i1196:0 && arith1 = i454:0 + 2 && arith1 = i454:0 + 2 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (13) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (14) Obligation: Rules: f1385_0_random_LT(java.lang.Object(ARRAY(i453:0:0)), i21:0:0, i455:0:0, i456:0:0, i454:0:0, i453:0:0, i453:0:0, i454:0:0, i453:0:0) -> f1385_0_random_LT(java.lang.Object(ARRAY(i453:0:0)), i746:0:0, i1196:0:0, i456:0:0 + 2 * i746:0:0 - i1196:0:0, i454:0:0 + 2, i453:0:0, i453:0:0, i454:0:0 + 2, i453:0:0) :|: i456:0:0 + 2 * i746:0:0 - i1196:0:0 >= 0 && i456:0:0 + 2 * i746:0:0 >= 0 && i456:0:0 > -1 && 2 * i746:0:0 - i1196:0:0 < 2 * i21:0:0 - i455:0:0 && 2 * i746:0:0 >= 0 && 2 * i21:0:0 >= 0 && i455:0:0 > -1 && i1196:0:0 > -1 && i453:0:0 > -1 && i746:0:0 > -1 && i454:0:0 > 0 && i454:0:0 + 1 < i453:0:0 && i454:0:0 + 2 < i453:0:0 ---------------------------------------- (15) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f1385_0_random_LT(VARIABLE, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER) java.lang.Object(VARIABLE) ARRAY(INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (16) Obligation: Rules: f1385_0_random_LT(c, i21:0:0, i455:0:0, i456:0:0, i454:0:0, i453:0:0, i453:0:0, i454:0:0, i453:0:0) -> f1385_0_random_LT(c1, i746:0:0, i1196:0:0, c2, c3, i453:0:0, i453:0:0, c4, i453:0:0) :|: c4 = i454:0:0 + 2 && (c3 = i454:0:0 + 2 && (c2 = i456:0:0 + 2 * i746:0:0 - i1196:0:0 && (c1 = 0 && c = 0))) && (i456:0:0 + 2 * i746:0:0 - i1196:0:0 >= 0 && i456:0:0 + 2 * i746:0:0 >= 0 && i456:0:0 > -1 && 2 * i746:0:0 - i1196:0:0 < 2 * i21:0:0 - i455:0:0 && 2 * i746:0:0 >= 0 && 2 * i21:0:0 >= 0 && i455:0:0 > -1 && i1196:0:0 > -1 && i453:0:0 > -1 && i746:0:0 > -1 && i454:0:0 > 0 && i454:0:0 + 1 < i453:0:0 && i454:0:0 + 2 < i453:0:0) ---------------------------------------- (17) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f1385_0_random_LT(x, x1, x2, x3, x4, x5, x6, x7, x8)] = -3 + c*x - x4 + x5 The following rules are decreasing: f1385_0_random_LT(c, i21:0:0, i455:0:0, i456:0:0, i454:0:0, i453:0:0, i453:0:0, i454:0:0, i453:0:0) -> f1385_0_random_LT(c1, i746:0:0, i1196:0:0, c2, c3, i453:0:0, i453:0:0, c4, i453:0:0) :|: c4 = i454:0:0 + 2 && (c3 = i454:0:0 + 2 && (c2 = i456:0:0 + 2 * i746:0:0 - i1196:0:0 && (c1 = 0 && c = 0))) && (i456:0:0 + 2 * i746:0:0 - i1196:0:0 >= 0 && i456:0:0 + 2 * i746:0:0 >= 0 && i456:0:0 > -1 && 2 * i746:0:0 - i1196:0:0 < 2 * i21:0:0 - i455:0:0 && 2 * i746:0:0 >= 0 && 2 * i21:0:0 >= 0 && i455:0:0 > -1 && i1196:0:0 > -1 && i453:0:0 > -1 && i746:0:0 > -1 && i454:0:0 > 0 && i454:0:0 + 1 < i453:0:0 && i454:0:0 + 2 < i453:0:0) The following rules are bounded: f1385_0_random_LT(c, i21:0:0, i455:0:0, i456:0:0, i454:0:0, i453:0:0, i453:0:0, i454:0:0, i453:0:0) -> f1385_0_random_LT(c1, i746:0:0, i1196:0:0, c2, c3, i453:0:0, i453:0:0, c4, i453:0:0) :|: c4 = i454:0:0 + 2 && (c3 = i454:0:0 + 2 && (c2 = i456:0:0 + 2 * i746:0:0 - i1196:0:0 && (c1 = 0 && c = 0))) && (i456:0:0 + 2 * i746:0:0 - i1196:0:0 >= 0 && i456:0:0 + 2 * i746:0:0 >= 0 && i456:0:0 > -1 && 2 * i746:0:0 - i1196:0:0 < 2 * i21:0:0 - i455:0:0 && 2 * i746:0:0 >= 0 && 2 * i21:0:0 >= 0 && i455:0:0 > -1 && i1196:0:0 > -1 && i453:0:0 > -1 && i746:0:0 > -1 && i454:0:0 > 0 && i454:0:0 + 1 < i453:0:0 && i454:0:0 + 2 < i453:0:0) ---------------------------------------- (18) YES