/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, 1414 ms] (4) JBCTerminationGraph (5) TerminationGraphToSCCProof [SOUND, 0 ms] (6) AND (7) JBCTerminationSCC (8) SCCToIRSProof [SOUND, 227 ms] (9) IRSwT (10) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (11) IRSwT (12) IRSwTTerminationDigraphProof [EQUIVALENT, 65 ms] (13) IRSwT (14) IntTRSCompressionProof [EQUIVALENT, 0 ms] (15) IRSwT (16) TempFilterProof [SOUND, 29 ms] (17) IntTRS (18) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (19) YES (20) JBCTerminationSCC (21) SCCToIRSProof [SOUND, 74 ms] (22) IRSwT (23) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (24) IRSwT (25) IRSwTTerminationDigraphProof [EQUIVALENT, 42 ms] (26) IRSwT (27) IntTRSCompressionProof [EQUIVALENT, 0 ms] (28) IRSwT (29) TempFilterProof [SOUND, 16 ms] (30) IntTRS (31) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (32) YES (33) JBCTerminationSCC (34) SCCToIRSProof [SOUND, 67 ms] (35) IRSwT (36) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (37) IRSwT (38) IRSwTTerminationDigraphProof [EQUIVALENT, 60 ms] (39) AND (40) IRSwT (41) IntTRSCompressionProof [EQUIVALENT, 0 ms] (42) IRSwT (43) TempFilterProof [SOUND, 22 ms] (44) IntTRS (45) RankingReductionPairProof [EQUIVALENT, 7 ms] (46) YES (47) IRSwT (48) IntTRSCompressionProof [EQUIVALENT, 0 ms] (49) IRSwT (50) TempFilterProof [SOUND, 18 ms] (51) IntTRS (52) PolynomialOrderProcessor [EQUIVALENT, 5 ms] (53) YES ---------------------------------------- (0) Obligation: need to prove termination of the following program: class BubbleSortR { public static void main(String[] args) { Random.args = args; int dim = Random.random()*Random.random(); int[] t = new int[dim] ; for(int i = 0; i < t.length; i++) t[i] = Random.random(); sort(t); } public static void sort(int[] x) { int n = x.length; for (int pass=1; pass < n; pass++) // count how many times // This next loop becomes shorter and shorter aux(0,n-pass,x); //for (int i = 0; i < x.length; i++) // System.out.print(x[i]+ " "); } private static void aux(int min, int max, int[] x) { if (min >= max) return; int i = min; if (x[i] > x[i+1]) { // exchange elements int temp = x[i]; x[i] = x[i+1]; x[i+1] = temp; } aux(min+1,max,x); } } 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: class BubbleSortR { public static void main(String[] args) { Random.args = args; int dim = Random.random()*Random.random(); int[] t = new int[dim] ; for(int i = 0; i < t.length; i++) t[i] = Random.random(); sort(t); } public static void sort(int[] x) { int n = x.length; for (int pass=1; pass < n; pass++) // count how many times // This next loop becomes shorter and shorter aux(0,n-pass,x); //for (int i = 0; i < x.length; i++) // System.out.print(x[i]+ " "); } private static void aux(int min, int max, int[] x) { if (min >= max) return; int i = min; if (x[i] > x[i+1]) { // exchange elements int temp = x[i]; x[i] = x[i+1]; x[i+1] = temp; } aux(min+1,max,x); } } 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: BubbleSortR.main([Ljava/lang/String;)V: Graph of 437 nodes with 2 SCCs. BubbleSortR.aux(II[I)V: Graph of 217 nodes with 0 SCCs. ---------------------------------------- (5) TerminationGraphToSCCProof (SOUND) Splitted TerminationGraph to 3 SCCss. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: BubbleSortR.aux(II[I)V SCC calls the following helper methods: BubbleSortR.aux(II[I)V Performed SCC analyses: *Used field analysis yielded the following read fields: *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (8) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 52 IRulesP rules: f4278_0_aux_Load(EOS(STATIC_4278), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057) -> f4279_0_aux_LT(EOS(STATIC_4279), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055) :|: TRUE f4279_0_aux_LT(EOS(STATIC_4279), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055) -> f4280_0_aux_LT(EOS(STATIC_4280), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055) :|: i1057 < i1055 f4280_0_aux_LT(EOS(STATIC_4280), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055) -> f4282_0_aux_Load(EOS(STATIC_4282), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056))) :|: i1057 < i1055 f4282_0_aux_Load(EOS(STATIC_4282), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056))) -> f4284_0_aux_Store(EOS(STATIC_4284), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057) :|: TRUE f4284_0_aux_Store(EOS(STATIC_4284), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057) -> f4286_0_aux_Load(EOS(STATIC_4286), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057) :|: TRUE f4286_0_aux_Load(EOS(STATIC_4286), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057) -> f4287_0_aux_Load(EOS(STATIC_4287), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056))) :|: TRUE f4287_0_aux_Load(EOS(STATIC_4287), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056))) -> f4289_0_aux_ArrayAccess(EOS(STATIC_4289), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1057) :|: TRUE f4289_0_aux_ArrayAccess(EOS(STATIC_4289), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1057) -> f4291_0_aux_ArrayAccess(EOS(STATIC_4291), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1057) :|: TRUE f4291_0_aux_ArrayAccess(EOS(STATIC_4291), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1057) -> f4294_0_aux_Load(EOS(STATIC_4294), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069) :|: i1057 < i1056 f4294_0_aux_Load(EOS(STATIC_4294), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069) -> f4297_0_aux_Load(EOS(STATIC_4297), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, java.lang.Object(ARRAY(i1056))) :|: TRUE f4297_0_aux_Load(EOS(STATIC_4297), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, java.lang.Object(ARRAY(i1056))) -> f4298_0_aux_ConstantStackPush(EOS(STATIC_4298), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, java.lang.Object(ARRAY(i1056)), i1057) :|: TRUE f4298_0_aux_ConstantStackPush(EOS(STATIC_4298), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, java.lang.Object(ARRAY(i1056)), i1057) -> f4300_0_aux_IntArithmetic(EOS(STATIC_4300), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, java.lang.Object(ARRAY(i1056)), i1057, 1) :|: TRUE f4300_0_aux_IntArithmetic(EOS(STATIC_4300), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, java.lang.Object(ARRAY(i1056)), i1057, matching1) -> f4302_0_aux_ArrayAccess(EOS(STATIC_4302), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, java.lang.Object(ARRAY(i1056)), i1057 + 1) :|: i1057 >= 0 && matching1 = 1 f4302_0_aux_ArrayAccess(EOS(STATIC_4302), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, java.lang.Object(ARRAY(i1056)), i1078) -> f4303_0_aux_ArrayAccess(EOS(STATIC_4303), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, java.lang.Object(ARRAY(i1056)), i1078) :|: TRUE f4303_0_aux_ArrayAccess(EOS(STATIC_4303), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, java.lang.Object(ARRAY(i1056)), i1078) -> f4306_0_aux_LE(EOS(STATIC_4306), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, i1079) :|: i1078 < i1056 f4306_0_aux_LE(EOS(STATIC_4306), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, i1079) -> f4309_0_aux_LE(EOS(STATIC_4309), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, i1079) :|: i1069 <= i1079 f4306_0_aux_LE(EOS(STATIC_4306), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, i1079) -> f4310_0_aux_LE(EOS(STATIC_4310), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, i1079) :|: i1069 > i1079 f4309_0_aux_LE(EOS(STATIC_4309), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, i1079) -> f4311_0_aux_Load(EOS(STATIC_4311), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056))) :|: i1069 <= i1079 f4311_0_aux_Load(EOS(STATIC_4311), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056))) -> f4416_0_aux_Load(EOS(STATIC_4416), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056))) :|: TRUE f4416_0_aux_Load(EOS(STATIC_4416), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056))) -> f4422_0_aux_ConstantStackPush(EOS(STATIC_4422), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1055, java.lang.Object(ARRAY(i1056)), i1057) :|: TRUE f4422_0_aux_ConstantStackPush(EOS(STATIC_4422), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1055, java.lang.Object(ARRAY(i1056)), i1057) -> f4427_0_aux_IntArithmetic(EOS(STATIC_4427), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1055, java.lang.Object(ARRAY(i1056)), i1057, 1) :|: TRUE f4427_0_aux_IntArithmetic(EOS(STATIC_4427), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1055, java.lang.Object(ARRAY(i1056)), i1057, matching1) -> f4434_0_aux_Load(EOS(STATIC_4434), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1055, java.lang.Object(ARRAY(i1056)), i1057 + 1) :|: i1057 >= 0 && matching1 = 1 f4434_0_aux_Load(EOS(STATIC_4434), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1055, java.lang.Object(ARRAY(i1056)), i1151) -> f4439_0_aux_Load(EOS(STATIC_4439), i1054, i1055, java.lang.Object(ARRAY(i1056)), java.lang.Object(ARRAY(i1056)), i1151, i1055) :|: TRUE f4439_0_aux_Load(EOS(STATIC_4439), i1054, i1055, java.lang.Object(ARRAY(i1056)), java.lang.Object(ARRAY(i1056)), i1151, i1055) -> f4442_0_aux_InvokeMethod(EOS(STATIC_4442), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1151, i1055, java.lang.Object(ARRAY(i1056))) :|: TRUE f4442_0_aux_InvokeMethod(EOS(STATIC_4442), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1151, i1055, java.lang.Object(ARRAY(i1056))) -> f4448_0_aux_Load(EOS(STATIC_4448), i1151, i1055, java.lang.Object(ARRAY(i1056)), i1151, i1055, java.lang.Object(ARRAY(i1056))) :|: i1055 >= 1 && i1151 >= 1 && i1053 > 1 && i1054 <= i1055 && i1151 <= i1055 f4442_0_aux_InvokeMethod(EOS(STATIC_4442), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1151, i1055, java.lang.Object(ARRAY(i1056))) -> f4448_1_aux_Load(EOS(STATIC_4448), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1151, i1055, java.lang.Object(ARRAY(i1056))) :|: i1055 >= 1 && i1151 >= 1 && i1053 > 1 && i1054 <= i1055 && i1151 <= i1055 f4448_0_aux_Load(EOS(STATIC_4448), i1151, i1055, java.lang.Object(ARRAY(i1056)), i1151, i1055, java.lang.Object(ARRAY(i1056))) -> f4453_0_aux_Load(EOS(STATIC_4453), i1151, i1055, java.lang.Object(ARRAY(i1056)), i1151, i1055, java.lang.Object(ARRAY(i1056))) :|: TRUE f4453_0_aux_Load(EOS(STATIC_4453), i1151, i1055, java.lang.Object(ARRAY(i1056)), i1151, i1055, java.lang.Object(ARRAY(i1056))) -> f4276_0_aux_Load(EOS(STATIC_4276), i1151, i1055, java.lang.Object(ARRAY(i1056)), i1151, i1055, java.lang.Object(ARRAY(i1056))) :|: TRUE f4276_0_aux_Load(EOS(STATIC_4276), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056))) -> f4278_0_aux_Load(EOS(STATIC_4278), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057) :|: TRUE f4310_0_aux_LE(EOS(STATIC_4310), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1069, i1079) -> f4312_0_aux_Load(EOS(STATIC_4312), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057) :|: i1069 > i1079 f4312_0_aux_Load(EOS(STATIC_4312), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057) -> f4316_0_aux_Load(EOS(STATIC_4316), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056))) :|: TRUE f4316_0_aux_Load(EOS(STATIC_4316), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056))) -> f4320_0_aux_ArrayAccess(EOS(STATIC_4320), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1057) :|: TRUE f4320_0_aux_ArrayAccess(EOS(STATIC_4320), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1057) -> f4322_0_aux_ArrayAccess(EOS(STATIC_4322), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1057) :|: TRUE f4322_0_aux_ArrayAccess(EOS(STATIC_4322), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1057) -> f4327_0_aux_Store(EOS(STATIC_4327), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081) :|: i1057 < i1056 f4327_0_aux_Store(EOS(STATIC_4327), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081) -> f4332_0_aux_Load(EOS(STATIC_4332), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081) :|: TRUE f4332_0_aux_Load(EOS(STATIC_4332), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081) -> f4334_0_aux_Load(EOS(STATIC_4334), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056))) :|: TRUE f4334_0_aux_Load(EOS(STATIC_4334), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056))) -> f4339_0_aux_Load(EOS(STATIC_4339), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057) :|: TRUE f4339_0_aux_Load(EOS(STATIC_4339), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057) -> f4343_0_aux_Load(EOS(STATIC_4343), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056))) :|: TRUE f4343_0_aux_Load(EOS(STATIC_4343), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056))) -> f4345_0_aux_ConstantStackPush(EOS(STATIC_4345), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1057) :|: TRUE f4345_0_aux_ConstantStackPush(EOS(STATIC_4345), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1057) -> f4349_0_aux_IntArithmetic(EOS(STATIC_4349), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1057, 1) :|: TRUE f4349_0_aux_IntArithmetic(EOS(STATIC_4349), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1057, matching1) -> f4356_0_aux_ArrayAccess(EOS(STATIC_4356), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1057 + 1) :|: i1057 >= 0 && matching1 = 1 f4356_0_aux_ArrayAccess(EOS(STATIC_4356), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1097) -> f4359_0_aux_ArrayAccess(EOS(STATIC_4359), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1097) :|: TRUE f4359_0_aux_ArrayAccess(EOS(STATIC_4359), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057, java.lang.Object(ARRAY(i1056)), i1097) -> f4365_0_aux_ArrayAccess(EOS(STATIC_4365), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057, i1098) :|: i1097 < i1056 f4365_0_aux_ArrayAccess(EOS(STATIC_4365), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057, i1098) -> f4370_0_aux_ArrayAccess(EOS(STATIC_4370), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057, i1098) :|: TRUE f4370_0_aux_ArrayAccess(EOS(STATIC_4370), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056)), i1057, i1098) -> f4376_0_aux_Load(EOS(STATIC_4376), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081) :|: i1057 < i1056 f4376_0_aux_Load(EOS(STATIC_4376), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081) -> f4384_0_aux_Load(EOS(STATIC_4384), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056))) :|: TRUE f4384_0_aux_Load(EOS(STATIC_4384), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1081, java.lang.Object(ARRAY(i1056))) -> f4389_0_aux_ConstantStackPush(EOS(STATIC_4389), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1081, java.lang.Object(ARRAY(i1056)), i1057) :|: TRUE f4389_0_aux_ConstantStackPush(EOS(STATIC_4389), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1081, java.lang.Object(ARRAY(i1056)), i1057) -> f4393_0_aux_IntArithmetic(EOS(STATIC_4393), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1081, java.lang.Object(ARRAY(i1056)), i1057, 1) :|: TRUE f4393_0_aux_IntArithmetic(EOS(STATIC_4393), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1081, java.lang.Object(ARRAY(i1056)), i1057, matching1) -> f4399_0_aux_Load(EOS(STATIC_4399), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1081, java.lang.Object(ARRAY(i1056)), i1057 + 1) :|: i1057 >= 0 && matching1 = 1 f4399_0_aux_Load(EOS(STATIC_4399), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), i1081, java.lang.Object(ARRAY(i1056)), i1126) -> f4404_0_aux_ArrayAccess(EOS(STATIC_4404), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), java.lang.Object(ARRAY(i1056)), i1126, i1081) :|: TRUE f4404_0_aux_ArrayAccess(EOS(STATIC_4404), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), java.lang.Object(ARRAY(i1056)), i1126, i1081) -> f4408_0_aux_ArrayAccess(EOS(STATIC_4408), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), java.lang.Object(ARRAY(i1056)), i1126, i1081) :|: TRUE f4408_0_aux_ArrayAccess(EOS(STATIC_4408), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056)), java.lang.Object(ARRAY(i1056)), i1126, i1081) -> f4416_0_aux_Load(EOS(STATIC_4416), i1054, i1055, java.lang.Object(ARRAY(i1056)), i1057, i1055, java.lang.Object(ARRAY(i1056))) :|: i1126 < i1056 Combined rules. Obtained 3 IRulesP rules: f4442_0_aux_InvokeMethod(EOS(STATIC_4442), i1054:0, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1151:0, i1055:0, java.lang.Object(ARRAY(i1056:0))) -> f4442_0_aux_InvokeMethod(EOS(STATIC_4442), i1151:0, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1151:0 + 1, i1055:0, java.lang.Object(ARRAY(i1056:0))) :|: i1151:0 + 1 < i1056:0 && i1151:0 > 0 && i1151:0 < i1055:0 && i1055:0 > 0 && i1053:0 > 1 && i1055:0 >= i1054:0 && i1079:0 < i1069:0 f4442_0_aux_InvokeMethod(EOS(STATIC_4442), i1054:0, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1151:0, i1055:0, java.lang.Object(ARRAY(i1056:0))) -> f4442_0_aux_InvokeMethod(EOS(STATIC_4442), i1151:0, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1151:0 + 1, i1055:0, java.lang.Object(ARRAY(i1056:0))) :|: i1151:0 + 1 < i1056:0 && i1151:0 > 0 && i1151:0 < i1055:0 && i1079:0 >= i1069:0 && i1055:0 > 0 && i1055:0 >= i1054:0 && i1053:0 > 1 Removed following non-SCC rules: f4442_0_aux_InvokeMethod(EOS(STATIC_4442), i1054:0, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1151:0, i1055:0, java.lang.Object(ARRAY(i1056:0))) -> f4448_1_aux_Load(EOS(STATIC_4448), i1054:0, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1151:0, i1055:0, java.lang.Object(ARRAY(i1056:0))) :|: i1151:0 > 0 && i1055:0 > 0 && i1053:0 > 1 && i1151:0 <= i1055:0 && i1055:0 >= i1054:0 Filtered constant ground arguments: f4442_0_aux_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) -> f4442_0_aux_InvokeMethod(x2, x3, x4, x5, x6, x7) EOS(x1) -> EOS Filtered duplicate arguments: f4442_0_aux_InvokeMethod(x1, x2, x3, x4, x5, x6) -> f4442_0_aux_InvokeMethod(x1, x4, x5, x6) Finished conversion. Obtained 2 rules.P rules: f4442_0_aux_InvokeMethod(i1054:0, i1151:0, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1056:0) -> f4442_0_aux_InvokeMethod(i1151:0, i1151:0 + 1, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1056:0) :|: i1151:0 > 0 && i1151:0 + 1 < i1056:0 && i1151:0 < i1055:0 && i1055:0 > 0 && i1053:0 > 1 && i1079:0 < i1069:0 && i1055:0 >= i1054:0 f4442_0_aux_InvokeMethod(i1054:0, i1151:0, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1056:0) -> f4442_0_aux_InvokeMethod(i1151:0, i1151:0 + 1, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1056:0) :|: i1151:0 > 0 && i1151:0 + 1 < i1056:0 && i1151:0 < i1055:0 && i1079:0 >= i1069:0 && i1055:0 > 0 && i1053:0 > 1 && i1055:0 >= i1054:0 ---------------------------------------- (9) Obligation: Rules: f4442_0_aux_InvokeMethod(i1054:0, i1151:0, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1056:0) -> f4442_0_aux_InvokeMethod(i1151:0, i1151:0 + 1, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1056:0) :|: i1151:0 > 0 && i1151:0 + 1 < i1056:0 && i1151:0 < i1055:0 && i1055:0 > 0 && i1053:0 > 1 && i1079:0 < i1069:0 && i1055:0 >= i1054:0 f4442_0_aux_InvokeMethod(x, x1, x2, java.lang.Object(ARRAY(x3)), x3) -> f4442_0_aux_InvokeMethod(x1, x1 + 1, x2, java.lang.Object(ARRAY(x3)), x3) :|: x1 > 0 && x1 + 1 < x3 && x1 < x2 && x4 >= x5 && x2 > 0 && x6 > 1 && x2 >= x ---------------------------------------- (10) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (11) Obligation: Rules: f4442_0_aux_InvokeMethod(i1054:0, i1151:0, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1056:0) -> f4442_0_aux_InvokeMethod(i1151:0, arith, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1056:0) :|: i1151:0 > 0 && i1151:0 + 1 < i1056:0 && i1151:0 < i1055:0 && i1055:0 > 0 && i1053:0 > 1 && i1079:0 < i1069:0 && i1055:0 >= i1054:0 && arith = i1151:0 + 1 f4442_0_aux_InvokeMethod(x7, x8, x9, java.lang.Object(ARRAY(x10)), x10) -> f4442_0_aux_InvokeMethod(x8, x11, x9, java.lang.Object(ARRAY(x10)), x10) :|: x8 > 0 && x8 + 1 < x10 && x8 < x9 && x12 >= x13 && x9 > 0 && x14 > 1 && x9 >= x7 && x11 = x8 + 1 ---------------------------------------- (12) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f4442_0_aux_InvokeMethod(i1054:0, i1151:0, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1056:0) -> f4442_0_aux_InvokeMethod(i1151:0, arith, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1056:0) :|: i1151:0 > 0 && i1151:0 + 1 < i1056:0 && i1151:0 < i1055:0 && i1055:0 > 0 && i1053:0 > 1 && i1079:0 < i1069:0 && i1055:0 >= i1054:0 && arith = i1151:0 + 1 (2) f4442_0_aux_InvokeMethod(x7, x8, x9, java.lang.Object(ARRAY(x10)), x10) -> f4442_0_aux_InvokeMethod(x8, x11, x9, java.lang.Object(ARRAY(x10)), x10) :|: x8 > 0 && x8 + 1 < x10 && x8 < x9 && x12 >= x13 && x9 > 0 && x14 > 1 && x9 >= x7 && x11 = x8 + 1 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (13) Obligation: Termination digraph: Nodes: (1) f4442_0_aux_InvokeMethod(i1054:0, i1151:0, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1056:0) -> f4442_0_aux_InvokeMethod(i1151:0, arith, i1055:0, java.lang.Object(ARRAY(i1056:0)), i1056:0) :|: i1151:0 > 0 && i1151:0 + 1 < i1056:0 && i1151:0 < i1055:0 && i1055:0 > 0 && i1053:0 > 1 && i1079:0 < i1069:0 && i1055:0 >= i1054:0 && arith = i1151:0 + 1 (2) f4442_0_aux_InvokeMethod(x7, x8, x9, java.lang.Object(ARRAY(x10)), x10) -> f4442_0_aux_InvokeMethod(x8, x11, x9, java.lang.Object(ARRAY(x10)), x10) :|: x8 > 0 && x8 + 1 < x10 && x8 < x9 && x12 >= x13 && x9 > 0 && x14 > 1 && x9 >= x7 && x11 = x8 + 1 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (14) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (15) Obligation: Rules: f4442_0_aux_InvokeMethod(i1054:0:0, i1151:0:0, i1055:0:0, java.lang.Object(ARRAY(i1056:0:0)), i1056:0:0) -> f4442_0_aux_InvokeMethod(i1151:0:0, i1151:0:0 + 1, i1055:0:0, java.lang.Object(ARRAY(i1056:0:0)), i1056:0:0) :|: i1079:0:0 < i1069:0:0 && i1055:0:0 >= i1054:0:0 && i1053:0:0 > 1 && i1055:0:0 > 0 && i1151:0:0 < i1055:0:0 && i1151:0:0 + 1 < i1056:0:0 && i1151:0:0 > 0 f4442_0_aux_InvokeMethod(x7:0, x8:0, x9:0, java.lang.Object(ARRAY(x10:0)), x10:0) -> f4442_0_aux_InvokeMethod(x8:0, x8:0 + 1, x9:0, java.lang.Object(ARRAY(x10:0)), x10:0) :|: x14:0 > 1 && x9:0 >= x7:0 && x9:0 > 0 && x13:0 <= x12:0 && x9:0 > x8:0 && x8:0 + 1 < x10:0 && x8:0 > 0 ---------------------------------------- (16) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f4442_0_aux_InvokeMethod(INTEGER, INTEGER, INTEGER, VARIABLE, INTEGER) java.lang.Object(VARIABLE) ARRAY(INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (17) Obligation: Rules: f4442_0_aux_InvokeMethod(i1054:0:0, i1151:0:0, i1055:0:0, c, i1056:0:0) -> f4442_0_aux_InvokeMethod(i1151:0:0, c1, i1055:0:0, c2, i1056:0:0) :|: c2 = 0 && (c1 = i1151:0:0 + 1 && c = 0) && (i1079:0:0 < i1069:0:0 && i1055:0:0 >= i1054:0:0 && i1053:0:0 > 1 && i1055:0:0 > 0 && i1151:0:0 < i1055:0:0 && i1151:0:0 + 1 < i1056:0:0 && i1151:0:0 > 0) f4442_0_aux_InvokeMethod(x7:0, x8:0, x9:0, c3, x10:0) -> f4442_0_aux_InvokeMethod(x8:0, c4, x9:0, c5, x10:0) :|: c5 = 0 && (c4 = x8:0 + 1 && c3 = 0) && (x14:0 > 1 && x9:0 >= x7:0 && x9:0 > 0 && x13:0 <= x12:0 && x9:0 > x8:0 && x8:0 + 1 < x10:0 && x8:0 > 0) ---------------------------------------- (18) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f4442_0_aux_InvokeMethod(x, x1, x2, x3, x4)] = -2 - x1 + c3*x3 + x4 The following rules are decreasing: f4442_0_aux_InvokeMethod(i1054:0:0, i1151:0:0, i1055:0:0, c, i1056:0:0) -> f4442_0_aux_InvokeMethod(i1151:0:0, c1, i1055:0:0, c2, i1056:0:0) :|: c2 = 0 && (c1 = i1151:0:0 + 1 && c = 0) && (i1079:0:0 < i1069:0:0 && i1055:0:0 >= i1054:0:0 && i1053:0:0 > 1 && i1055:0:0 > 0 && i1151:0:0 < i1055:0:0 && i1151:0:0 + 1 < i1056:0:0 && i1151:0:0 > 0) f4442_0_aux_InvokeMethod(x7:0, x8:0, x9:0, c3, x10:0) -> f4442_0_aux_InvokeMethod(x8:0, c4, x9:0, c5, x10:0) :|: c5 = 0 && (c4 = x8:0 + 1 && c3 = 0) && (x14:0 > 1 && x9:0 >= x7:0 && x9:0 > 0 && x13:0 <= x12:0 && x9:0 > x8:0 && x8:0 + 1 < x10:0 && x8:0 > 0) The following rules are bounded: f4442_0_aux_InvokeMethod(i1054:0:0, i1151:0:0, i1055:0:0, c, i1056:0:0) -> f4442_0_aux_InvokeMethod(i1151:0:0, c1, i1055:0:0, c2, i1056:0:0) :|: c2 = 0 && (c1 = i1151:0:0 + 1 && c = 0) && (i1079:0:0 < i1069:0:0 && i1055:0:0 >= i1054:0:0 && i1053:0:0 > 1 && i1055:0:0 > 0 && i1151:0:0 < i1055:0:0 && i1151:0:0 + 1 < i1056:0:0 && i1151:0:0 > 0) f4442_0_aux_InvokeMethod(x7:0, x8:0, x9:0, c3, x10:0) -> f4442_0_aux_InvokeMethod(x8:0, c4, x9:0, c5, x10:0) :|: c5 = 0 && (c4 = x8:0 + 1 && c3 = 0) && (x14:0 > 1 && x9:0 >= x7:0 && x9:0 > 0 && x13:0 <= x12:0 && x9:0 > x8:0 && x8:0 + 1 < x10:0 && x8:0 > 0) ---------------------------------------- (19) YES ---------------------------------------- (20) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: BubbleSortR.main([Ljava/lang/String;)V SCC calls the following helper methods: BubbleSortR.aux(II[I)V Performed SCC analyses: *Used field analysis yielded the following read fields: *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (21) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 21 IRulesP rules: f4242_0_sort_Load(EOS(STATIC_4242), java.lang.Object(ARRAY(i979)), i980, i981, i981) -> f4245_0_sort_GE(EOS(STATIC_4245), java.lang.Object(ARRAY(i979)), i980, i981, i981, i980) :|: TRUE f4245_0_sort_GE(EOS(STATIC_4245), java.lang.Object(ARRAY(i979)), i980, i981, i981, i980) -> f4250_0_sort_GE(EOS(STATIC_4250), java.lang.Object(ARRAY(i979)), i980, i981, i981, i980) :|: i981 < i980 f4250_0_sort_GE(EOS(STATIC_4250), java.lang.Object(ARRAY(i979)), i980, i981, i981, i980) -> f4254_0_sort_ConstantStackPush(EOS(STATIC_4254), java.lang.Object(ARRAY(i979)), i980, i981) :|: i981 < i980 f4254_0_sort_ConstantStackPush(EOS(STATIC_4254), java.lang.Object(ARRAY(i979)), i980, i981) -> f4258_0_sort_Load(EOS(STATIC_4258), java.lang.Object(ARRAY(i979)), i980, i981, 0) :|: TRUE f4258_0_sort_Load(EOS(STATIC_4258), java.lang.Object(ARRAY(i979)), i980, i981, matching1) -> f4262_0_sort_Load(EOS(STATIC_4262), java.lang.Object(ARRAY(i979)), i980, i981, 0, i980) :|: TRUE && matching1 = 0 f4262_0_sort_Load(EOS(STATIC_4262), java.lang.Object(ARRAY(i979)), i980, i981, matching1, i980) -> f4264_0_sort_IntArithmetic(EOS(STATIC_4264), java.lang.Object(ARRAY(i979)), i980, i981, 0, i980, i981) :|: TRUE && matching1 = 0 f4264_0_sort_IntArithmetic(EOS(STATIC_4264), java.lang.Object(ARRAY(i979)), i980, i981, matching1, i980, i981) -> f4266_0_sort_Load(EOS(STATIC_4266), java.lang.Object(ARRAY(i979)), i980, i981, 0, i980 - i981) :|: i980 > 0 && i981 > 0 && matching1 = 0 f4266_0_sort_Load(EOS(STATIC_4266), java.lang.Object(ARRAY(i979)), i980, i981, matching1, i1034) -> f4268_0_sort_InvokeMethod(EOS(STATIC_4268), java.lang.Object(ARRAY(i979)), i980, i981, 0, i1034, java.lang.Object(ARRAY(i979))) :|: TRUE && matching1 = 0 f4268_0_sort_InvokeMethod(EOS(STATIC_4268), java.lang.Object(ARRAY(i979)), i980, i981, matching1, i1034, java.lang.Object(ARRAY(i979))) -> f4270_0_aux_Load(EOS(STATIC_4270), 0, i1034, java.lang.Object(ARRAY(i979)), 0, i1034, java.lang.Object(ARRAY(i979))) :|: i1034 >= 1 && i980 > 1 && i981 >= 1 && i978 > 1 && i4 > 1 && i978 <= i4 && i981 < i980 && matching1 = 0 f4268_0_sort_InvokeMethod(EOS(STATIC_4268), java.lang.Object(ARRAY(i979)), i980, i981, matching1, i1034, java.lang.Object(ARRAY(i979))) -> f4270_1_aux_Load(EOS(STATIC_4270), java.lang.Object(ARRAY(i979)), i980, i981, 0, i1034, java.lang.Object(ARRAY(i979))) :|: i1034 >= 1 && i980 > 1 && i981 >= 1 && i978 > 1 && i4 > 1 && i978 <= i4 && i981 < i980 && matching1 = 0 f4270_0_aux_Load(EOS(STATIC_4270), matching1, i1034, java.lang.Object(ARRAY(i979)), matching2, i1034, java.lang.Object(ARRAY(i979))) -> f5021_0_aux_Load(EOS(STATIC_5021), 0, i1034, java.lang.Object(ARRAY(i979)), 0, i1034, java.lang.Object(ARRAY(i979))) :|: TRUE && matching1 = 0 && matching2 = 0 f4288_0_aux_Return(EOS(STATIC_4288), java.lang.Object(ARRAY(i1067)), i980, i981) -> f4290_0_sort_Inc(EOS(STATIC_4290), java.lang.Object(ARRAY(i1067)), i980, i981) :|: TRUE f4290_0_sort_Inc(EOS(STATIC_4290), java.lang.Object(ARRAY(i1067)), i980, i981) -> f4293_0_sort_JMP(EOS(STATIC_4293), java.lang.Object(ARRAY(i1067)), i980, i981 + 1) :|: TRUE f4293_0_sort_JMP(EOS(STATIC_4293), java.lang.Object(ARRAY(i1067)), i980, i1068) -> f4296_0_sort_Load(EOS(STATIC_4296), java.lang.Object(ARRAY(i1067)), i980, i1068) :|: TRUE f4296_0_sort_Load(EOS(STATIC_4296), java.lang.Object(ARRAY(i1067)), i980, i1068) -> f4238_0_sort_Load(EOS(STATIC_4238), java.lang.Object(ARRAY(i1067)), i980, i1068) :|: TRUE f4238_0_sort_Load(EOS(STATIC_4238), java.lang.Object(ARRAY(i979)), i980, i981) -> f4242_0_sort_Load(EOS(STATIC_4242), java.lang.Object(ARRAY(i979)), i980, i981, i981) :|: TRUE f4490_0_aux_Return(EOS(STATIC_4490), java.lang.Object(ARRAY(i1241)), i980, i981) -> f4374_0_aux_Return(EOS(STATIC_4374), java.lang.Object(ARRAY(i1241)), i980, i981) :|: TRUE f4374_0_aux_Return(EOS(STATIC_4374), java.lang.Object(ARRAY(i1108)), i980, i981) -> f4382_0_sort_Inc(EOS(STATIC_4382), java.lang.Object(ARRAY(i1108)), i980, i981) :|: TRUE f4382_0_sort_Inc(EOS(STATIC_4382), java.lang.Object(ARRAY(i1108)), i980, i981) -> f4290_0_sort_Inc(EOS(STATIC_4290), java.lang.Object(ARRAY(i1108)), i980, i981) :|: TRUE f4270_1_aux_Load(EOS(STATIC_4270), java.lang.Object(ARRAY(i1067)), i980, i981, matching1, i1034, java.lang.Object(ARRAY(i1067))) -> f4288_0_aux_Return(EOS(STATIC_4288), java.lang.Object(ARRAY(i1067)), i980, i981) :|: TRUE && matching1 = 0 f4270_1_aux_Load(EOS(STATIC_4270), java.lang.Object(ARRAY(i979)), i980, i981, matching1, i1034, java.lang.Object(ARRAY(i979))) -> f4490_0_aux_Return(EOS(STATIC_4490), java.lang.Object(ARRAY(i1241)), i980, i981) :|: TRUE && matching1 = 0 Combined rules. Obtained 3 IRulesP rules: f4242_0_sort_Load(EOS(STATIC_4242), java.lang.Object(ARRAY(i979:0)), i980:0, i981:0, i981:0) -> f4242_0_sort_Load(EOS(STATIC_4242), java.lang.Object(ARRAY(i979:0)), i980:0, i981:0 + 1, i981:0 + 1) :|: i980:0 > 1 && i980:0 - i981:0 >= 1 && i981:0 < i980:0 && i981:0 > 0 && i978:0 > 1 && i4:0 > 1 && i978:0 <= i4:0 f4242_0_sort_Load(EOS(STATIC_4242), java.lang.Object(ARRAY(i979:0)), i980:0, i981:0, i981:0) -> f4242_0_sort_Load(EOS(STATIC_4242), java.lang.Object(ARRAY(i1241:0)), i980:0, i981:0 + 1, i981:0 + 1) :|: i980:0 > 1 && i980:0 - i981:0 >= 1 && i981:0 < i980:0 && i981:0 > 0 && i978:0 > 1 && i4:0 > 1 && i978:0 <= i4:0 Removed following non-SCC rules: f4242_0_sort_Load(EOS(STATIC_4242), java.lang.Object(ARRAY(i979:0)), i980:0, i981:0, i981:0) -> f5021_0_aux_Load(EOS(STATIC_5021), 0, i980:0 - i981:0, java.lang.Object(ARRAY(i979:0)), 0, i980:0 - i981:0, java.lang.Object(ARRAY(i979:0))) :|: i980:0 > 1 && i980:0 - i981:0 >= 1 && i981:0 < i980:0 && i981:0 > 0 && i978:0 > 1 && i4:0 > 1 && i978:0 <= i4:0 Filtered constant ground arguments: f4242_0_sort_Load(x1, x2, x3, x4, x5) -> f4242_0_sort_Load(x2, x3, x4, x5) EOS(x1) -> EOS Filtered duplicate arguments: f4242_0_sort_Load(x1, x2, x3, x4) -> f4242_0_sort_Load(x1, x2, x4) Filtered unneeded arguments: f4242_0_sort_Load(x1, x2, x3) -> f4242_0_sort_Load(x2, x3) Finished conversion. Obtained 1 rules.P rules: f4242_0_sort_Load(i980:0, i981:0) -> f4242_0_sort_Load(i980:0, i981:0 + 1) :|: i980:0 - i981:0 >= 1 && i980:0 > 1 && i981:0 < i980:0 && i981:0 > 0 && i978:0 > 1 && i978:0 <= i4:0 && i4:0 > 1 ---------------------------------------- (22) Obligation: Rules: f4242_0_sort_Load(i980:0, i981:0) -> f4242_0_sort_Load(i980:0, i981:0 + 1) :|: i980:0 - i981:0 >= 1 && i980:0 > 1 && i981:0 < i980:0 && i981:0 > 0 && i978:0 > 1 && i978:0 <= i4:0 && i4:0 > 1 ---------------------------------------- (23) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (24) Obligation: Rules: f4242_0_sort_Load(i980:0, i981:0) -> f4242_0_sort_Load(i980:0, arith) :|: i980:0 - i981:0 >= 1 && i980:0 > 1 && i981:0 < i980:0 && i981:0 > 0 && i978:0 > 1 && i978:0 <= i4:0 && i4:0 > 1 && arith = i981:0 + 1 ---------------------------------------- (25) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f4242_0_sort_Load(i980:0, i981:0) -> f4242_0_sort_Load(i980:0, arith) :|: i980:0 - i981:0 >= 1 && i980:0 > 1 && i981:0 < i980:0 && i981:0 > 0 && i978:0 > 1 && i978:0 <= i4:0 && i4:0 > 1 && arith = i981:0 + 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (26) Obligation: Termination digraph: Nodes: (1) f4242_0_sort_Load(i980:0, i981:0) -> f4242_0_sort_Load(i980:0, arith) :|: i980:0 - i981:0 >= 1 && i980:0 > 1 && i981:0 < i980:0 && i981:0 > 0 && i978:0 > 1 && i978:0 <= i4:0 && i4:0 > 1 && arith = i981:0 + 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (27) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (28) Obligation: Rules: f4242_0_sort_Load(i980:0:0, i981:0:0) -> f4242_0_sort_Load(i980:0:0, i981:0:0 + 1) :|: i978:0:0 <= i4:0:0 && i4:0:0 > 1 && i978:0:0 > 1 && i981:0:0 > 0 && i981:0:0 < i980:0:0 && i980:0:0 > 1 && i980:0:0 - i981:0:0 >= 1 ---------------------------------------- (29) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f4242_0_sort_Load(INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (30) Obligation: Rules: f4242_0_sort_Load(i980:0:0, i981:0:0) -> f4242_0_sort_Load(i980:0:0, c) :|: c = i981:0:0 + 1 && (i978:0:0 <= i4:0:0 && i4:0:0 > 1 && i978:0:0 > 1 && i981:0:0 > 0 && i981:0:0 < i980:0:0 && i980:0:0 > 1 && i980:0:0 - i981:0:0 >= 1) ---------------------------------------- (31) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f4242_0_sort_Load(x, x1)] = x - x1 The following rules are decreasing: f4242_0_sort_Load(i980:0:0, i981:0:0) -> f4242_0_sort_Load(i980:0:0, c) :|: c = i981:0:0 + 1 && (i978:0:0 <= i4:0:0 && i4:0:0 > 1 && i978:0:0 > 1 && i981:0:0 > 0 && i981:0:0 < i980:0:0 && i980:0:0 > 1 && i980:0:0 - i981:0:0 >= 1) The following rules are bounded: f4242_0_sort_Load(i980:0:0, i981:0:0) -> f4242_0_sort_Load(i980:0:0, c) :|: c = i981:0:0 + 1 && (i978:0:0 <= i4:0:0 && i4:0:0 > 1 && i978:0:0 > 1 && i981:0:0 > 0 && i981:0:0 < i980:0:0 && i980:0:0 > 1 && i980:0:0 - i981:0:0 >= 1) ---------------------------------------- (32) YES ---------------------------------------- (33) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: BubbleSortR.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: ---------------------------------------- (34) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 45 IRulesP rules: f1393_0_main_Load(EOS(STATIC_1393(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, i266) -> f1397_0_main_ArrayLength(EOS(STATIC_1397(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, i266, java.lang.Object(ARRAY(i265))) :|: TRUE f1397_0_main_ArrayLength(EOS(STATIC_1397(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, i266, java.lang.Object(ARRAY(i265))) -> f1413_0_main_GE(EOS(STATIC_1413(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, i266, i265) :|: i265 >= 0 f1413_0_main_GE(EOS(STATIC_1413(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, i266, i265) -> f1421_0_main_GE(EOS(STATIC_1421(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, i266, i265) :|: i266 < i265 f1421_0_main_GE(EOS(STATIC_1421(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, i266, i265) -> f1430_0_main_Load(EOS(STATIC_1430(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266) :|: i266 < i265 f1430_0_main_Load(EOS(STATIC_1430(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266) -> f1434_0_main_Load(EOS(STATIC_1434(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265))) :|: TRUE f1434_0_main_Load(EOS(STATIC_1434(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265))) -> f1439_0_main_InvokeMethod(EOS(STATIC_1439(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266) :|: TRUE f1439_0_main_InvokeMethod(EOS(STATIC_1439(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266) -> f1441_0_random_FieldAccess(EOS(STATIC_1441(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266) :|: TRUE f1441_0_random_FieldAccess(EOS(STATIC_1441(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266) -> f1451_0_random_FieldAccess(EOS(STATIC_1451(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i39) :|: TRUE f1451_0_random_FieldAccess(EOS(STATIC_1451(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i39) -> f1454_0_random_ArrayLength(EOS(STATIC_1454(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i39, java.lang.Object(ARRAY(i4))) :|: TRUE f1454_0_random_ArrayLength(EOS(STATIC_1454(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i39, java.lang.Object(ARRAY(i4))) -> f1464_0_random_LT(EOS(STATIC_1464(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i39, i4) :|: i4 >= 0 f1464_0_random_LT(EOS(STATIC_1464(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i39, i4) -> f1476_0_random_LT(EOS(STATIC_1476(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i39, i4) :|: i39 < i4 f1464_0_random_LT(EOS(STATIC_1464(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i39, i4) -> f1477_0_random_LT(EOS(STATIC_1477(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i39, i4) :|: i39 >= i4 f1476_0_random_LT(EOS(STATIC_1476(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i39, i4) -> f1482_0_random_FieldAccess(EOS(STATIC_1482(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266) :|: i39 < i4 f1482_0_random_FieldAccess(EOS(STATIC_1482(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266) -> f1497_0_random_FieldAccess(EOS(STATIC_1497(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i4))) :|: TRUE f1497_0_random_FieldAccess(EOS(STATIC_1497(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i4))) -> f1511_0_random_ArrayAccess(EOS(STATIC_1511(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i4)), i39) :|: TRUE f1511_0_random_ArrayAccess(EOS(STATIC_1511(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i4)), i39) -> f1528_0_random_ArrayAccess(EOS(STATIC_1528(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i4)), i39) :|: TRUE f1528_0_random_ArrayAccess(EOS(STATIC_1528(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i4)), i39) -> f1541_0_random_Store(EOS(STATIC_1541(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, o71) :|: TRUE f1541_0_random_Store(EOS(STATIC_1541(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, o71) -> f1550_0_random_FieldAccess(EOS(STATIC_1550(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, o71) :|: TRUE f1550_0_random_FieldAccess(EOS(STATIC_1550(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, o71) -> f1556_0_random_ConstantStackPush(EOS(STATIC_1556(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, o71, i39) :|: TRUE f1556_0_random_ConstantStackPush(EOS(STATIC_1556(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, o71, i39) -> f1613_0_random_IntArithmetic(EOS(STATIC_1613(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, o71, i39, 1) :|: TRUE f1613_0_random_IntArithmetic(EOS(STATIC_1613(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, o71, i39, matching1) -> f1618_0_random_FieldAccess(EOS(STATIC_1618(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, o71, i39 + 1) :|: i39 > 0 && matching1 = 1 f1618_0_random_FieldAccess(EOS(STATIC_1618(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, o71, i338) -> f1620_0_random_Load(EOS(STATIC_1620(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, o71) :|: TRUE f1620_0_random_Load(EOS(STATIC_1620(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, o71) -> f1641_0_random_InvokeMethod(EOS(STATIC_1641(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, o71) :|: TRUE f1641_0_random_InvokeMethod(EOS(STATIC_1641(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(o81sub)) -> f1674_0_random_InvokeMethod(EOS(STATIC_1674(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(o81sub)) :|: TRUE f1674_0_random_InvokeMethod(EOS(STATIC_1674(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(o83sub)) -> f1678_0_random_InvokeMethod(EOS(STATIC_1678(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(o83sub)) :|: TRUE f1678_0_random_InvokeMethod(EOS(STATIC_1678(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(o83sub)) -> f1701_0_length_Load(EOS(STATIC_1701(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(o83sub)) :|: TRUE f1701_0_length_Load(EOS(STATIC_1701(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(o83sub)) -> f1715_0_length_FieldAccess(EOS(STATIC_1715(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(o83sub)) :|: TRUE f1715_0_length_FieldAccess(EOS(STATIC_1715(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(java.lang.String(EOC, i370))) -> f1723_0_length_FieldAccess(EOS(STATIC_1723(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(java.lang.String(EOC, i370))) :|: i370 >= 0 f1723_0_length_FieldAccess(EOS(STATIC_1723(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, java.lang.Object(java.lang.String(EOC, i370))) -> f1734_0_length_Return(EOS(STATIC_1734(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i370) :|: TRUE f1734_0_length_Return(EOS(STATIC_1734(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i370) -> f1745_0_random_Return(EOS(STATIC_1745(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i370) :|: TRUE f1745_0_random_Return(EOS(STATIC_1745(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i370) -> f1804_0_main_ArrayAccess(EOS(STATIC_1804(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i370) :|: TRUE f1804_0_main_ArrayAccess(EOS(STATIC_1804(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i370) -> f1822_0_main_ArrayAccess(EOS(STATIC_1822(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i370) :|: TRUE f1822_0_main_ArrayAccess(EOS(STATIC_1822(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i370) -> f1835_0_main_Inc(EOS(STATIC_1835(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266) :|: i266 < i265 f1835_0_main_Inc(EOS(STATIC_1835(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266) -> f1853_0_main_JMP(EOS(STATIC_1853(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266 + 1) :|: TRUE f1853_0_main_JMP(EOS(STATIC_1853(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i386) -> f1891_0_main_Load(EOS(STATIC_1891(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i386) :|: TRUE f1891_0_main_Load(EOS(STATIC_1891(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i386) -> f1392_0_main_Load(EOS(STATIC_1392(java.lang.Object(ARRAY(i4)), i338)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i386) :|: TRUE f1392_0_main_Load(EOS(STATIC_1392(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266) -> f1393_0_main_Load(EOS(STATIC_1393(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, i266) :|: TRUE f1477_0_random_LT(EOS(STATIC_1477(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, i39, i4) -> f1490_0_random_ConstantStackPush(EOS(STATIC_1490(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266) :|: i39 >= i4 f1490_0_random_ConstantStackPush(EOS(STATIC_1490(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266) -> f1499_0_random_Return(EOS(STATIC_1499(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, 0) :|: TRUE f1499_0_random_Return(EOS(STATIC_1499(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, matching1) -> f1513_0_main_ArrayAccess(EOS(STATIC_1513(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, 0) :|: TRUE && matching1 = 0 f1513_0_main_ArrayAccess(EOS(STATIC_1513(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, matching1) -> f1530_0_main_ArrayAccess(EOS(STATIC_1530(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, 0) :|: TRUE && matching1 = 0 f1530_0_main_ArrayAccess(EOS(STATIC_1530(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266, java.lang.Object(ARRAY(i265)), i266, matching1) -> f1545_0_main_Inc(EOS(STATIC_1545(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266) :|: i266 < i265 && matching1 = 0 f1545_0_main_Inc(EOS(STATIC_1545(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266) -> f1551_0_main_JMP(EOS(STATIC_1551(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i266 + 1) :|: TRUE f1551_0_main_JMP(EOS(STATIC_1551(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i328) -> f1606_0_main_Load(EOS(STATIC_1606(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i328) :|: TRUE f1606_0_main_Load(EOS(STATIC_1606(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i328) -> f1392_0_main_Load(EOS(STATIC_1392(java.lang.Object(ARRAY(i4)), i39)), java.lang.Object(ARRAY(i4)), java.lang.Object(ARRAY(i265)), i328) :|: TRUE Combined rules. Obtained 2 IRulesP rules: f1393_0_main_Load(EOS(STATIC_1393(java.lang.Object(ARRAY(i4:0)), i39:0)), java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), i266:0, i266:0) -> f1393_0_main_Load(EOS(STATIC_1393(java.lang.Object(ARRAY(i4:0)), i39:0 + 1)), java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), i266:0 + 1, i266:0 + 1) :|: i265:0 > -1 && i266:0 < i265:0 && i4:0 > -1 && i4:0 > i39:0 && i39:0 > 0 && i370:0 > -1 f1393_0_main_Load(EOS(STATIC_1393(java.lang.Object(ARRAY(i4:0)), i39:0)), java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), i266:0, i266:0) -> f1393_0_main_Load(EOS(STATIC_1393(java.lang.Object(ARRAY(i4:0)), i39:0)), java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), i266:0 + 1, i266:0 + 1) :|: i265:0 > -1 && i266:0 < i265:0 && i4:0 > -1 && i4:0 <= i39:0 Filtered duplicate arguments: f1393_0_main_Load(x1, x2, x3, x4, x5) -> f1393_0_main_Load(x1, x2, x3, x5) Finished conversion. Obtained 2 rules.P rules: f1393_0_main_Load(java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), i266:0, i4:0, i39:0, i4:0, i265:0) -> f1393_0_main_Load(java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), i266:0 + 1, i4:0, i39:0 + 1, i4:0, i265:0) :|: i266:0 < i265:0 && i265:0 > -1 && i4:0 > -1 && i4:0 > i39:0 && i370:0 > -1 && i39:0 > 0 f1393_0_main_Load(java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), i266:0, i4:0, i39:0, i4:0, i265:0) -> f1393_0_main_Load(java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), i266:0 + 1, i4:0, i39:0, i4:0, i265:0) :|: i266:0 < i265:0 && i265:0 > -1 && i4:0 <= i39:0 && i4:0 > -1 ---------------------------------------- (35) Obligation: Rules: f1393_0_main_Load(java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), i266:0, i4:0, i39:0, i4:0, i265:0) -> f1393_0_main_Load(java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), i266:0 + 1, i4:0, i39:0 + 1, i4:0, i265:0) :|: i266:0 < i265:0 && i265:0 > -1 && i4:0 > -1 && i4:0 > i39:0 && i370:0 > -1 && i39:0 > 0 f1393_0_main_Load(java.lang.Object(ARRAY(x)), java.lang.Object(ARRAY(x1)), x2, x, x3, x, x1) -> f1393_0_main_Load(java.lang.Object(ARRAY(x)), java.lang.Object(ARRAY(x1)), x2 + 1, x, x3, x, x1) :|: x2 < x1 && x1 > -1 && x <= x3 && x > -1 ---------------------------------------- (36) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (37) Obligation: Rules: f1393_0_main_Load(java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), i266:0, i4:0, i39:0, i4:0, i265:0) -> f1393_0_main_Load(java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), arith, i4:0, arith1, i4:0, i265:0) :|: i266:0 < i265:0 && i265:0 > -1 && i4:0 > -1 && i4:0 > i39:0 && i370:0 > -1 && i39:0 > 0 && arith = i266:0 + 1 && arith1 = i39:0 + 1 f1393_0_main_Load(java.lang.Object(ARRAY(x4)), java.lang.Object(ARRAY(x5)), x6, x4, x7, x4, x5) -> f1393_0_main_Load(java.lang.Object(ARRAY(x4)), java.lang.Object(ARRAY(x5)), x8, x4, x7, x4, x5) :|: x6 < x5 && x5 > -1 && x4 <= x7 && x4 > -1 && x8 = x6 + 1 ---------------------------------------- (38) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f1393_0_main_Load(java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), i266:0, i4:0, i39:0, i4:0, i265:0) -> f1393_0_main_Load(java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), arith, i4:0, arith1, i4:0, i265:0) :|: i266:0 < i265:0 && i265:0 > -1 && i4:0 > -1 && i4:0 > i39:0 && i370:0 > -1 && i39:0 > 0 && arith = i266:0 + 1 && arith1 = i39:0 + 1 (2) f1393_0_main_Load(java.lang.Object(ARRAY(x4)), java.lang.Object(ARRAY(x5)), x6, x4, x7, x4, x5) -> f1393_0_main_Load(java.lang.Object(ARRAY(x4)), java.lang.Object(ARRAY(x5)), x8, x4, x7, x4, x5) :|: x6 < x5 && x5 > -1 && x4 <= x7 && x4 > -1 && x8 = x6 + 1 Arcs: (1) -> (1), (2) (2) -> (2) This digraph is fully evaluated! ---------------------------------------- (39) Complex Obligation (AND) ---------------------------------------- (40) Obligation: Termination digraph: Nodes: (1) f1393_0_main_Load(java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), i266:0, i4:0, i39:0, i4:0, i265:0) -> f1393_0_main_Load(java.lang.Object(ARRAY(i4:0)), java.lang.Object(ARRAY(i265:0)), arith, i4:0, arith1, i4:0, i265:0) :|: i266:0 < i265:0 && i265:0 > -1 && i4:0 > -1 && i4:0 > i39:0 && i370:0 > -1 && i39:0 > 0 && arith = i266:0 + 1 && arith1 = i39:0 + 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (41) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (42) Obligation: Rules: f1393_0_main_Load(java.lang.Object(ARRAY(i4:0:0)), java.lang.Object(ARRAY(i265:0:0)), i266:0:0, i4:0:0, i39:0:0, i4:0:0, i265:0:0) -> f1393_0_main_Load(java.lang.Object(ARRAY(i4:0:0)), java.lang.Object(ARRAY(i265:0:0)), i266:0:0 + 1, i4:0:0, i39:0:0 + 1, i4:0:0, i265:0:0) :|: i370:0:0 > -1 && i39:0:0 > 0 && i4:0:0 > i39:0:0 && i4:0:0 > -1 && i265:0:0 > -1 && i266:0:0 < i265:0:0 ---------------------------------------- (43) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f1393_0_main_Load(VARIABLE, VARIABLE, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER) java.lang.Object(VARIABLE) ARRAY(INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (44) Obligation: Rules: f1393_0_main_Load(c, c1, i266:0:0, i4:0:0, i39:0:0, i4:0:0, i265:0:0) -> f1393_0_main_Load(c2, c3, c4, i4:0:0, c5, i4:0:0, i265:0:0) :|: c5 = i39:0:0 + 1 && (c4 = i266:0:0 + 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0)))) && (i370:0:0 > -1 && i39:0:0 > 0 && i4:0:0 > i39:0:0 && i4:0:0 > -1 && i265:0:0 > -1 && i266:0:0 < i265:0:0) ---------------------------------------- (45) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f1393_0_main_Load ] = -1*f1393_0_main_Load_5 + f1393_0_main_Load_6 The following rules are decreasing: f1393_0_main_Load(c, c1, i266:0:0, i4:0:0, i39:0:0, i4:0:0, i265:0:0) -> f1393_0_main_Load(c2, c3, c4, i4:0:0, c5, i4:0:0, i265:0:0) :|: c5 = i39:0:0 + 1 && (c4 = i266:0:0 + 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0)))) && (i370:0:0 > -1 && i39:0:0 > 0 && i4:0:0 > i39:0:0 && i4:0:0 > -1 && i265:0:0 > -1 && i266:0:0 < i265:0:0) The following rules are bounded: f1393_0_main_Load(c, c1, i266:0:0, i4:0:0, i39:0:0, i4:0:0, i265:0:0) -> f1393_0_main_Load(c2, c3, c4, i4:0:0, c5, i4:0:0, i265:0:0) :|: c5 = i39:0:0 + 1 && (c4 = i266:0:0 + 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0)))) && (i370:0:0 > -1 && i39:0:0 > 0 && i4:0:0 > i39:0:0 && i4:0:0 > -1 && i265:0:0 > -1 && i266:0:0 < i265:0:0) ---------------------------------------- (46) YES ---------------------------------------- (47) Obligation: Termination digraph: Nodes: (1) f1393_0_main_Load(java.lang.Object(ARRAY(x4)), java.lang.Object(ARRAY(x5)), x6, x4, x7, x4, x5) -> f1393_0_main_Load(java.lang.Object(ARRAY(x4)), java.lang.Object(ARRAY(x5)), x8, x4, x7, x4, x5) :|: x6 < x5 && x5 > -1 && x4 <= x7 && x4 > -1 && x8 = x6 + 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (48) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (49) Obligation: Rules: f1393_0_main_Load(java.lang.Object(ARRAY(x4:0)), java.lang.Object(ARRAY(x5:0)), x6:0, x4:0, x7:0, x4:0, x5:0) -> f1393_0_main_Load(java.lang.Object(ARRAY(x4:0)), java.lang.Object(ARRAY(x5:0)), x6:0 + 1, x4:0, x7:0, x4:0, x5:0) :|: x7:0 >= x4:0 && x4:0 > -1 && x5:0 > -1 && x6:0 < x5:0 ---------------------------------------- (50) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f1393_0_main_Load(VARIABLE, VARIABLE, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER) java.lang.Object(VARIABLE) ARRAY(INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (51) Obligation: Rules: f1393_0_main_Load(c, c1, x6:0, x4:0, x7:0, x4:0, x5:0) -> f1393_0_main_Load(c2, c3, c4, x4:0, x7:0, x4:0, x5:0) :|: c4 = x6:0 + 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x7:0 >= x4:0 && x4:0 > -1 && x5:0 > -1 && x6:0 < x5:0) ---------------------------------------- (52) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f1393_0_main_Load(x, x1, x2, x3, x4, x5, x6)] = c*x + c1*x1 - x2 + x6 The following rules are decreasing: f1393_0_main_Load(c, c1, x6:0, x4:0, x7:0, x4:0, x5:0) -> f1393_0_main_Load(c2, c3, c4, x4:0, x7:0, x4:0, x5:0) :|: c4 = x6:0 + 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x7:0 >= x4:0 && x4:0 > -1 && x5:0 > -1 && x6:0 < x5:0) The following rules are bounded: f1393_0_main_Load(c, c1, x6:0, x4:0, x7:0, x4:0, x5:0) -> f1393_0_main_Load(c2, c3, c4, x4:0, x7:0, x4:0, x5:0) :|: c4 = x6:0 + 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x7:0 >= x4:0 && x4:0 > -1 && x5:0 > -1 && x6:0 < x5:0) ---------------------------------------- (53) YES