13.06/4.35 YES 13.06/4.36 proof of /export/starexec/sandbox2/benchmark/theBenchmark.jar 13.06/4.36 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 13.06/4.36 13.06/4.36 13.06/4.36 termination of the given Bare JBC problem could be proven: 13.06/4.36 13.06/4.36 (0) Bare JBC problem 13.06/4.36 (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] 13.06/4.36 (2) JBC problem 13.06/4.36 (3) JBCToGraph [EQUIVALENT, 1237 ms] 13.06/4.36 (4) JBCTerminationGraph 13.06/4.36 (5) TerminationGraphToSCCProof [SOUND, 0 ms] 13.06/4.36 (6) AND 13.06/4.36 (7) JBCTerminationSCC 13.06/4.36 (8) SCCToIRSProof [SOUND, 187 ms] 13.06/4.36 (9) IRSwT 13.06/4.36 (10) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 13.06/4.36 (11) IRSwT 13.06/4.36 (12) IRSwTTerminationDigraphProof [EQUIVALENT, 115 ms] 13.06/4.36 (13) IRSwT 13.06/4.36 (14) IntTRSCompressionProof [EQUIVALENT, 0 ms] 13.06/4.36 (15) IRSwT 13.06/4.36 (16) TempFilterProof [SOUND, 11 ms] 13.06/4.36 (17) IntTRS 13.06/4.36 (18) RankingReductionPairProof [EQUIVALENT, 0 ms] 13.06/4.36 (19) YES 13.06/4.36 (20) JBCTerminationSCC 13.06/4.36 (21) SCCToIRSProof [SOUND, 123 ms] 13.06/4.36 (22) IRSwT 13.06/4.36 (23) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 13.06/4.36 (24) IRSwT 13.06/4.36 (25) IRSwTTerminationDigraphProof [EQUIVALENT, 31 ms] 13.06/4.36 (26) IRSwT 13.06/4.36 (27) IntTRSCompressionProof [EQUIVALENT, 0 ms] 13.06/4.36 (28) IRSwT 13.06/4.36 (29) FilterProof [EQUIVALENT, 0 ms] 13.06/4.36 (30) IntTRS 13.06/4.36 (31) IntTRSCompressionProof [EQUIVALENT, 0 ms] 13.06/4.36 (32) IntTRS 13.06/4.36 (33) PolynomialOrderProcessor [EQUIVALENT, 0 ms] 13.06/4.36 (34) YES 13.06/4.36 (35) JBCTerminationSCC 13.06/4.36 (36) SCCToIRSProof [SOUND, 105 ms] 13.06/4.36 (37) IRSwT 13.06/4.36 (38) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 13.06/4.36 (39) IRSwT 13.06/4.36 (40) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] 13.06/4.36 (41) IRSwT 13.06/4.36 (42) IntTRSCompressionProof [EQUIVALENT, 0 ms] 13.06/4.36 (43) IRSwT 13.06/4.36 (44) TempFilterProof [SOUND, 24 ms] 13.06/4.36 (45) IntTRS 13.06/4.36 (46) RankingReductionPairProof [EQUIVALENT, 0 ms] 13.06/4.36 (47) YES 13.06/4.36 (48) JBCTerminationSCC 13.06/4.36 (49) SCCToIRSProof [SOUND, 75 ms] 13.06/4.36 (50) IRSwT 13.06/4.36 (51) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 13.06/4.36 (52) IRSwT 13.06/4.36 (53) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] 13.06/4.36 (54) IRSwT 13.06/4.36 (55) IntTRSCompressionProof [EQUIVALENT, 0 ms] 13.06/4.36 (56) IRSwT 13.06/4.36 (57) TempFilterProof [SOUND, 22 ms] 13.06/4.36 (58) IntTRS 13.06/4.36 (59) RankingReductionPairProof [EQUIVALENT, 11 ms] 13.06/4.36 (60) YES 13.06/4.36 (61) JBCTerminationSCC 13.06/4.36 (62) SCCToIRSProof [SOUND, 113 ms] 13.06/4.36 (63) IRSwT 13.06/4.36 (64) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 13.06/4.36 (65) IRSwT 13.06/4.36 (66) IRSwTTerminationDigraphProof [EQUIVALENT, 32 ms] 13.06/4.36 (67) AND 13.06/4.36 (68) IRSwT 13.06/4.36 (69) IntTRSCompressionProof [EQUIVALENT, 0 ms] 13.06/4.36 (70) IRSwT 13.06/4.36 (71) TempFilterProof [SOUND, 10 ms] 13.06/4.36 (72) IntTRS 13.06/4.36 (73) RankingReductionPairProof [EQUIVALENT, 0 ms] 13.06/4.36 (74) YES 13.06/4.36 (75) IRSwT 13.06/4.36 (76) IntTRSCompressionProof [EQUIVALENT, 0 ms] 13.06/4.36 (77) IRSwT 13.06/4.36 (78) TempFilterProof [SOUND, 8 ms] 13.06/4.36 (79) IntTRS 13.06/4.36 (80) RankingReductionPairProof [EQUIVALENT, 0 ms] 13.06/4.37 (81) YES 13.06/4.37 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (0) 13.06/4.37 Obligation: 13.06/4.37 need to prove termination of the following program: 13.06/4.37 public class TriTas { 13.06/4.37 static int N; 13.06/4.37 static int[] a; 13.06/4.37 static int nTas = 0; 13.06/4.37 13.06/4.37 static void Ajouter(int v) { 13.06/4.37 int i,j; 13.06/4.37 nTas++; 13.06/4.37 i = nTas - 1; 13.06/4.37 while (i > 0 && a[(i - 1)/2] <= v){ 13.06/4.37 a[i] = a[(i - 1)/2]; 13.06/4.37 j = (i - 1)/2; 13.06/4.37 if (j >= i) break; else i = j; 13.06/4.37 } 13.06/4.37 a[i] = v; 13.06/4.37 } 13.06/4.37 13.06/4.37 static int Maximum() { 13.06/4.37 return a[0]; 13.06/4.37 } 13.06/4.37 13.06/4.37 static void Supprimer() { 13.06/4.37 int i, j, v; 13.06/4.37 a[0] = a[nTas - 1]; 13.06/4.37 nTas--; 13.06/4.37 i = 0; v = a[0]; 13.06/4.37 while (2 * i + 1 < nTas) 13.06/4.37 { 13.06/4.37 j = 2*i + 1; 13.06/4.37 if (j + 1 < nTas) 13.06/4.37 if (a[j + 1] > a[j]) 13.06/4.37 j++; 13.06/4.37 if (v >= a[j]) break; 13.06/4.37 a[i] = a[j]; 13.06/4.37 i = j; 13.06/4.37 } 13.06/4.37 a[i] = v; 13.06/4.37 } 13.06/4.37 13.06/4.37 static void HeapSort(){ 13.06/4.37 int i, v; 13.06/4.37 nTas = 0; 13.06/4.37 for (i = 0; i < N; i++) 13.06/4.37 Ajouter(a[i]); 13.06/4.37 for (i = N - 1; i >= 0; i--) 13.06/4.37 { 13.06/4.37 v = Maximum(); 13.06/4.37 Supprimer(); 13.06/4.37 a[i]=v; 13.06/4.37 } 13.06/4.37 } 13.06/4.37 13.06/4.37 public static void main(String[] args){ 13.06/4.37 Random.args = args; 13.06/4.37 N = args.length; 13.06/4.37 a = new int[N]; 13.06/4.37 for (int i = 0; i < N; i++) 13.06/4.37 a[i] = Random.random(); 13.06/4.37 //for (int i = 0; i < N; i++) 13.06/4.37 // System.out.print(a[i]+" "); 13.06/4.37 //System.out.println(); 13.06/4.37 HeapSort(); 13.06/4.37 //for (int i = 0; i < N; i++) 13.06/4.37 // System.out.print(a[i]+" "); 13.06/4.37 //System.out.println(); 13.06/4.37 } 13.06/4.37 } 13.06/4.37 13.06/4.37 public class Random { 13.06/4.37 static String[] args; 13.06/4.37 static int index = 0; 13.06/4.37 13.06/4.37 public static int random() { 13.06/4.37 if (index >= args.length) 13.06/4.37 return 0; 13.06/4.37 13.06/4.37 String string = args[index]; 13.06/4.37 index++; 13.06/4.37 return string.length(); 13.06/4.37 } 13.06/4.37 } 13.06/4.37 13.06/4.37 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (1) BareJBCToJBCProof (EQUIVALENT) 13.06/4.37 initialized classpath 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (2) 13.06/4.37 Obligation: 13.06/4.37 need to prove termination of the following program: 13.06/4.37 public class TriTas { 13.06/4.37 static int N; 13.06/4.37 static int[] a; 13.06/4.37 static int nTas = 0; 13.06/4.37 13.06/4.37 static void Ajouter(int v) { 13.06/4.37 int i,j; 13.06/4.37 nTas++; 13.06/4.37 i = nTas - 1; 13.06/4.37 while (i > 0 && a[(i - 1)/2] <= v){ 13.06/4.37 a[i] = a[(i - 1)/2]; 13.06/4.37 j = (i - 1)/2; 13.06/4.37 if (j >= i) break; else i = j; 13.06/4.37 } 13.06/4.37 a[i] = v; 13.06/4.37 } 13.06/4.37 13.06/4.37 static int Maximum() { 13.06/4.37 return a[0]; 13.06/4.37 } 13.06/4.37 13.06/4.37 static void Supprimer() { 13.06/4.37 int i, j, v; 13.06/4.37 a[0] = a[nTas - 1]; 13.06/4.37 nTas--; 13.06/4.37 i = 0; v = a[0]; 13.06/4.37 while (2 * i + 1 < nTas) 13.06/4.37 { 13.06/4.37 j = 2*i + 1; 13.06/4.37 if (j + 1 < nTas) 13.06/4.37 if (a[j + 1] > a[j]) 13.06/4.37 j++; 13.06/4.37 if (v >= a[j]) break; 13.06/4.37 a[i] = a[j]; 13.06/4.37 i = j; 13.06/4.37 } 13.06/4.37 a[i] = v; 13.06/4.37 } 13.06/4.37 13.06/4.37 static void HeapSort(){ 13.06/4.37 int i, v; 13.06/4.37 nTas = 0; 13.06/4.37 for (i = 0; i < N; i++) 13.06/4.37 Ajouter(a[i]); 13.06/4.37 for (i = N - 1; i >= 0; i--) 13.06/4.37 { 13.06/4.37 v = Maximum(); 13.06/4.37 Supprimer(); 13.06/4.37 a[i]=v; 13.06/4.37 } 13.06/4.37 } 13.06/4.37 13.06/4.37 public static void main(String[] args){ 13.06/4.37 Random.args = args; 13.06/4.37 N = args.length; 13.06/4.37 a = new int[N]; 13.06/4.37 for (int i = 0; i < N; i++) 13.06/4.37 a[i] = Random.random(); 13.06/4.37 //for (int i = 0; i < N; i++) 13.06/4.37 // System.out.print(a[i]+" "); 13.06/4.37 //System.out.println(); 13.06/4.37 HeapSort(); 13.06/4.37 //for (int i = 0; i < N; i++) 13.06/4.37 // System.out.print(a[i]+" "); 13.06/4.37 //System.out.println(); 13.06/4.37 } 13.06/4.37 } 13.06/4.37 13.06/4.37 public class Random { 13.06/4.37 static String[] args; 13.06/4.37 static int index = 0; 13.06/4.37 13.06/4.37 public static int random() { 13.06/4.37 if (index >= args.length) 13.06/4.37 return 0; 13.06/4.37 13.06/4.37 String string = args[index]; 13.06/4.37 index++; 13.06/4.37 return string.length(); 13.06/4.37 } 13.06/4.37 } 13.06/4.37 13.06/4.37 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (3) JBCToGraph (EQUIVALENT) 13.06/4.37 Constructed TerminationGraph. 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (4) 13.06/4.37 Obligation: 13.06/4.37 Termination Graph based on JBC Program: 13.06/4.37 TriTas.main([Ljava/lang/String;)V: Graph of 204 nodes with 1 SCC. 13.06/4.37 13.06/4.37 13.06/4.37 13.06/4.37 TriTas.HeapSort()V: Graph of 127 nodes with 2 SCCs. 13.06/4.37 13.06/4.37 13.06/4.37 13.06/4.37 TriTas.Ajouter(I)V: Graph of 166 nodes with 1 SCC. 13.06/4.37 13.06/4.37 13.06/4.37 13.06/4.37 TriTas.Supprimer()V: Graph of 270 nodes with 1 SCC. 13.06/4.37 13.06/4.37 13.06/4.37 13.06/4.37 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (5) TerminationGraphToSCCProof (SOUND) 13.06/4.37 Splitted TerminationGraph to 5 SCCss. 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (6) 13.06/4.37 Complex Obligation (AND) 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (7) 13.06/4.37 Obligation: 13.06/4.37 SCC of termination graph based on JBC Program. 13.06/4.37 SCC contains nodes from the following methods: TriTas.Supprimer()V 13.06/4.37 SCC calls the following helper methods: 13.06/4.37 Performed SCC analyses: 13.06/4.37 *Used field analysis yielded the following read fields: 13.06/4.37 13.06/4.37 *Marker field analysis yielded the following relations that could be markers: 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (8) SCCToIRSProof (SOUND) 13.06/4.37 Transformed FIGraph SCCs to intTRSs. Log: 13.06/4.37 Generated rules. Obtained 64 IRulesP rules: 13.06/4.37 f5787_0_Supprimer_Load(EOS(STATIC_5787(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, matching1) -> f5788_0_Supprimer_IntArithmetic(EOS(STATIC_5788(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, 2, i1083) :|: TRUE && matching1 = 2 13.06/4.37 f5788_0_Supprimer_IntArithmetic(EOS(STATIC_5788(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, matching1, i1083) -> f5789_0_Supprimer_ConstantStackPush(EOS(STATIC_5789(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, 2 * i1083) :|: TRUE && matching1 = 2 13.06/4.37 f5789_0_Supprimer_ConstantStackPush(EOS(STATIC_5789(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, i1087) -> f5790_0_Supprimer_IntArithmetic(EOS(STATIC_5790(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, i1087, 1) :|: TRUE 13.06/4.37 f5790_0_Supprimer_IntArithmetic(EOS(STATIC_5790(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, i1087, matching1) -> f5791_0_Supprimer_FieldAccess(EOS(STATIC_5791(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, i1087 + 1) :|: i1087 >= 0 && matching1 = 1 13.06/4.37 f5791_0_Supprimer_FieldAccess(EOS(STATIC_5791(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, i1088) -> f5792_0_Supprimer_GE(EOS(STATIC_5792(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, i1088, i1082) :|: TRUE 13.06/4.37 f5792_0_Supprimer_GE(EOS(STATIC_5792(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, i1088, i1082) -> f5794_0_Supprimer_GE(EOS(STATIC_5794(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, i1088, i1082) :|: i1088 < i1082 13.06/4.37 f5794_0_Supprimer_GE(EOS(STATIC_5794(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, i1088, i1082) -> f5796_0_Supprimer_ConstantStackPush(EOS(STATIC_5796(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620) :|: i1088 < i1082 13.06/4.37 f5796_0_Supprimer_ConstantStackPush(EOS(STATIC_5796(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620) -> f5798_0_Supprimer_Load(EOS(STATIC_5798(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, 2) :|: TRUE 13.06/4.37 f5798_0_Supprimer_Load(EOS(STATIC_5798(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, matching1) -> f5800_0_Supprimer_IntArithmetic(EOS(STATIC_5800(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, 2, i1083) :|: TRUE && matching1 = 2 13.06/4.37 f5800_0_Supprimer_IntArithmetic(EOS(STATIC_5800(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, matching1, i1083) -> f5802_0_Supprimer_ConstantStackPush(EOS(STATIC_5802(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, 2 * i1083) :|: TRUE && matching1 = 2 13.06/4.37 f5802_0_Supprimer_ConstantStackPush(EOS(STATIC_5802(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, i1089) -> f5805_0_Supprimer_IntArithmetic(EOS(STATIC_5805(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, i1089, 1) :|: TRUE 13.06/4.37 f5805_0_Supprimer_IntArithmetic(EOS(STATIC_5805(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, i1089, matching1) -> f5808_0_Supprimer_Store(EOS(STATIC_5808(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, i1089 + 1) :|: i1089 >= 0 && matching1 = 1 13.06/4.37 f5808_0_Supprimer_Store(EOS(STATIC_5808(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, i1090) -> f5810_0_Supprimer_Load(EOS(STATIC_5810(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620) :|: TRUE 13.06/4.37 f5810_0_Supprimer_Load(EOS(STATIC_5810(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620) -> f5812_0_Supprimer_ConstantStackPush(EOS(STATIC_5812(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1090) :|: TRUE 13.06/4.37 f5812_0_Supprimer_ConstantStackPush(EOS(STATIC_5812(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1090) -> f5815_0_Supprimer_IntArithmetic(EOS(STATIC_5815(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1090, 1) :|: TRUE 13.06/4.37 f5815_0_Supprimer_IntArithmetic(EOS(STATIC_5815(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1090, matching1) -> f5816_0_Supprimer_FieldAccess(EOS(STATIC_5816(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1090 + 1) :|: i1090 > 0 && matching1 = 1 13.06/4.37 f5816_0_Supprimer_FieldAccess(EOS(STATIC_5816(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1103) -> f5818_0_Supprimer_GE(EOS(STATIC_5818(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1103, i1082) :|: TRUE 13.06/4.37 f5818_0_Supprimer_GE(EOS(STATIC_5818(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1103, i1082) -> f5820_0_Supprimer_GE(EOS(STATIC_5820(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1103, i1082) :|: i1103 >= i1082 13.06/4.37 f5818_0_Supprimer_GE(EOS(STATIC_5818(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1103, i1082) -> f5821_0_Supprimer_GE(EOS(STATIC_5821(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1103, i1082) :|: i1103 < i1082 13.06/4.37 f5820_0_Supprimer_GE(EOS(STATIC_5820(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1103, i1082) -> f5822_0_Supprimer_Load(EOS(STATIC_5822(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620) :|: i1103 >= i1082 13.06/4.37 f5822_0_Supprimer_Load(EOS(STATIC_5822(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620) -> f5825_0_Supprimer_FieldAccess(EOS(STATIC_5825(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620) :|: TRUE 13.06/4.37 f5825_0_Supprimer_FieldAccess(EOS(STATIC_5825(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620) -> f5828_0_Supprimer_Load(EOS(STATIC_5828(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620, java.lang.Object(ARRAY(i760))) :|: TRUE 13.06/4.37 f5828_0_Supprimer_Load(EOS(STATIC_5828(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620, java.lang.Object(ARRAY(i760))) -> f5830_0_Supprimer_ArrayAccess(EOS(STATIC_5830(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620, java.lang.Object(ARRAY(i760)), i1090) :|: TRUE 13.06/4.37 f5830_0_Supprimer_ArrayAccess(EOS(STATIC_5830(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620, java.lang.Object(ARRAY(i760)), i1090) -> f5833_0_Supprimer_ArrayAccess(EOS(STATIC_5833(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620, java.lang.Object(ARRAY(i760)), i1090) :|: TRUE 13.06/4.37 f5833_0_Supprimer_ArrayAccess(EOS(STATIC_5833(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620, java.lang.Object(ARRAY(i760)), i1090) -> f5837_0_Supprimer_LT(EOS(STATIC_5837(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620, i1111) :|: i1090 < i760 13.06/4.37 f5837_0_Supprimer_LT(EOS(STATIC_5837(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620, i1111) -> f5841_0_Supprimer_LT(EOS(STATIC_5841(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620, i1111) :|: i620 < i1111 13.06/4.37 f5841_0_Supprimer_LT(EOS(STATIC_5841(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620, i1111) -> f5846_0_Supprimer_FieldAccess(EOS(STATIC_5846(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620) :|: i620 < i1111 13.06/4.37 f5846_0_Supprimer_FieldAccess(EOS(STATIC_5846(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620) -> f5851_0_Supprimer_Load(EOS(STATIC_5851(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, java.lang.Object(ARRAY(i760))) :|: TRUE 13.06/4.37 f5851_0_Supprimer_Load(EOS(STATIC_5851(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, java.lang.Object(ARRAY(i760))) -> f5857_0_Supprimer_FieldAccess(EOS(STATIC_5857(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620, java.lang.Object(ARRAY(i760)), i1083) :|: TRUE 13.06/4.37 f5857_0_Supprimer_FieldAccess(EOS(STATIC_5857(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620, java.lang.Object(ARRAY(i760)), i1083) -> f5863_0_Supprimer_Load(EOS(STATIC_5863(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620, java.lang.Object(ARRAY(i760)), i1083, java.lang.Object(ARRAY(i760))) :|: TRUE 13.06/4.37 f5863_0_Supprimer_Load(EOS(STATIC_5863(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620, java.lang.Object(ARRAY(i760)), i1083, java.lang.Object(ARRAY(i760))) -> f5869_0_Supprimer_ArrayAccess(EOS(STATIC_5869(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620, java.lang.Object(ARRAY(i760)), i1083, java.lang.Object(ARRAY(i760)), i1090) :|: TRUE 13.06/4.37 f5869_0_Supprimer_ArrayAccess(EOS(STATIC_5869(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620, java.lang.Object(ARRAY(i760)), i1083, java.lang.Object(ARRAY(i760)), i1090) -> f5876_0_Supprimer_ArrayAccess(EOS(STATIC_5876(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620, java.lang.Object(ARRAY(i760)), i1083, java.lang.Object(ARRAY(i760)), i1090) :|: TRUE 13.06/4.37 f5876_0_Supprimer_ArrayAccess(EOS(STATIC_5876(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620, java.lang.Object(ARRAY(i760)), i1083, java.lang.Object(ARRAY(i760)), i1090) -> f5883_0_Supprimer_ArrayAccess(EOS(STATIC_5883(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620, java.lang.Object(ARRAY(i760)), i1083, i1134) :|: i1090 < i760 13.06/4.37 f5883_0_Supprimer_ArrayAccess(EOS(STATIC_5883(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620, java.lang.Object(ARRAY(i760)), i1083, i1134) -> f5890_0_Supprimer_ArrayAccess(EOS(STATIC_5890(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620, java.lang.Object(ARRAY(i760)), i1083, i1134) :|: TRUE 13.06/4.37 f5890_0_Supprimer_ArrayAccess(EOS(STATIC_5890(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620, java.lang.Object(ARRAY(i760)), i1083, i1134) -> f5897_0_Supprimer_Load(EOS(STATIC_5897(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620) :|: i1083 < i760 13.06/4.37 f5897_0_Supprimer_Load(EOS(STATIC_5897(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620) -> f5905_0_Supprimer_Store(EOS(STATIC_5905(java.lang.Object(ARRAY(i760)), i1082)), i620, i1090) :|: TRUE 13.06/4.37 f5905_0_Supprimer_Store(EOS(STATIC_5905(java.lang.Object(ARRAY(i760)), i1082)), i620, i1090) -> f5911_0_Supprimer_JMP(EOS(STATIC_5911(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620) :|: TRUE 13.06/4.37 f5911_0_Supprimer_JMP(EOS(STATIC_5911(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620) -> f5916_0_Supprimer_ConstantStackPush(EOS(STATIC_5916(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620) :|: TRUE 13.06/4.37 f5916_0_Supprimer_ConstantStackPush(EOS(STATIC_5916(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620) -> f5786_0_Supprimer_ConstantStackPush(EOS(STATIC_5786(java.lang.Object(ARRAY(i760)), i1082)), i1090, i620) :|: TRUE 13.06/4.37 f5786_0_Supprimer_ConstantStackPush(EOS(STATIC_5786(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620) -> f5787_0_Supprimer_Load(EOS(STATIC_5787(java.lang.Object(ARRAY(i760)), i1082)), i1083, i620, 2) :|: TRUE 13.06/4.37 f5821_0_Supprimer_GE(EOS(STATIC_5821(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1103, i1082) -> f5823_0_Supprimer_FieldAccess(EOS(STATIC_5823(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620) :|: i1103 < i1082 13.06/4.37 f5823_0_Supprimer_FieldAccess(EOS(STATIC_5823(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620) -> f5826_0_Supprimer_Load(EOS(STATIC_5826(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, java.lang.Object(ARRAY(i760))) :|: TRUE 13.06/4.37 f5826_0_Supprimer_Load(EOS(STATIC_5826(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, java.lang.Object(ARRAY(i760))) -> f5829_0_Supprimer_ConstantStackPush(EOS(STATIC_5829(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, java.lang.Object(ARRAY(i760)), i1090) :|: TRUE 13.06/4.37 f5829_0_Supprimer_ConstantStackPush(EOS(STATIC_5829(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, java.lang.Object(ARRAY(i760)), i1090) -> f5831_0_Supprimer_IntArithmetic(EOS(STATIC_5831(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, java.lang.Object(ARRAY(i760)), i1090, 1) :|: TRUE 13.06/4.37 f5831_0_Supprimer_IntArithmetic(EOS(STATIC_5831(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, java.lang.Object(ARRAY(i760)), i1090, matching1) -> f5835_0_Supprimer_ArrayAccess(EOS(STATIC_5835(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, java.lang.Object(ARRAY(i760)), i1090 + 1) :|: i1090 > 0 && matching1 = 1 13.06/4.37 f5835_0_Supprimer_ArrayAccess(EOS(STATIC_5835(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, java.lang.Object(ARRAY(i760)), i1110) -> f5839_0_Supprimer_ArrayAccess(EOS(STATIC_5839(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, java.lang.Object(ARRAY(i760)), i1110) :|: TRUE 13.06/4.37 f5839_0_Supprimer_ArrayAccess(EOS(STATIC_5839(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, java.lang.Object(ARRAY(i760)), i1110) -> f5843_0_Supprimer_FieldAccess(EOS(STATIC_5843(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1112) :|: i1110 < i760 13.06/4.37 f5843_0_Supprimer_FieldAccess(EOS(STATIC_5843(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1112) -> f5849_0_Supprimer_Load(EOS(STATIC_5849(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1112, java.lang.Object(ARRAY(i760))) :|: TRUE 13.06/4.37 f5849_0_Supprimer_Load(EOS(STATIC_5849(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1112, java.lang.Object(ARRAY(i760))) -> f5854_0_Supprimer_ArrayAccess(EOS(STATIC_5854(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1112, java.lang.Object(ARRAY(i760)), i1090) :|: TRUE 13.06/4.37 f5854_0_Supprimer_ArrayAccess(EOS(STATIC_5854(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1112, java.lang.Object(ARRAY(i760)), i1090) -> f5859_0_Supprimer_ArrayAccess(EOS(STATIC_5859(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1112, java.lang.Object(ARRAY(i760)), i1090) :|: TRUE 13.06/4.37 f5859_0_Supprimer_ArrayAccess(EOS(STATIC_5859(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1112, java.lang.Object(ARRAY(i760)), i1090) -> f5866_0_Supprimer_LE(EOS(STATIC_5866(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1112, i1124) :|: i1090 < i760 13.06/4.37 f5866_0_Supprimer_LE(EOS(STATIC_5866(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1112, i1124) -> f5872_0_Supprimer_LE(EOS(STATIC_5872(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1112, i1124) :|: i1112 <= i1124 13.06/4.37 f5866_0_Supprimer_LE(EOS(STATIC_5866(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1112, i1124) -> f5873_0_Supprimer_LE(EOS(STATIC_5873(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1112, i1124) :|: i1112 > i1124 13.06/4.37 f5872_0_Supprimer_LE(EOS(STATIC_5872(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1112, i1124) -> f5878_0_Supprimer_Load(EOS(STATIC_5878(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620) :|: i1112 <= i1124 13.06/4.37 f5878_0_Supprimer_Load(EOS(STATIC_5878(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620) -> f5886_0_Supprimer_FieldAccess(EOS(STATIC_5886(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620) :|: TRUE 13.06/4.37 f5886_0_Supprimer_FieldAccess(EOS(STATIC_5886(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620) -> f5893_0_Supprimer_Load(EOS(STATIC_5893(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620, java.lang.Object(ARRAY(i760))) :|: TRUE 13.06/4.37 f5893_0_Supprimer_Load(EOS(STATIC_5893(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620, java.lang.Object(ARRAY(i760))) -> f5900_0_Supprimer_ArrayAccess(EOS(STATIC_5900(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620, java.lang.Object(ARRAY(i760)), i1090) :|: TRUE 13.06/4.37 f5900_0_Supprimer_ArrayAccess(EOS(STATIC_5900(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620, java.lang.Object(ARRAY(i760)), i1090) -> f5830_0_Supprimer_ArrayAccess(EOS(STATIC_5830(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i620, java.lang.Object(ARRAY(i760)), i1090) :|: TRUE 13.06/4.37 f5873_0_Supprimer_LE(EOS(STATIC_5873(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620, i1112, i1124) -> f5879_0_Supprimer_Inc(EOS(STATIC_5879(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620) :|: i1112 > i1124 13.06/4.37 f5879_0_Supprimer_Inc(EOS(STATIC_5879(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090, i620) -> f5887_0_Supprimer_Load(EOS(STATIC_5887(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1090 + 1, i620) :|: TRUE 13.06/4.37 f5887_0_Supprimer_Load(EOS(STATIC_5887(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1136, i620) -> f5894_0_Supprimer_FieldAccess(EOS(STATIC_5894(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1136, i620, i620) :|: TRUE 13.06/4.37 f5894_0_Supprimer_FieldAccess(EOS(STATIC_5894(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1136, i620, i620) -> f5901_0_Supprimer_Load(EOS(STATIC_5901(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1136, i620, i620, java.lang.Object(ARRAY(i760))) :|: TRUE 13.06/4.37 f5901_0_Supprimer_Load(EOS(STATIC_5901(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1136, i620, i620, java.lang.Object(ARRAY(i760))) -> f5908_0_Supprimer_ArrayAccess(EOS(STATIC_5908(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1136, i620, i620, java.lang.Object(ARRAY(i760)), i1136) :|: TRUE 13.06/4.37 f5908_0_Supprimer_ArrayAccess(EOS(STATIC_5908(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1136, i620, i620, java.lang.Object(ARRAY(i760)), i1136) -> f5830_0_Supprimer_ArrayAccess(EOS(STATIC_5830(java.lang.Object(ARRAY(i760)), i1082)), i1083, i1136, i620, i620, java.lang.Object(ARRAY(i760)), i1136) :|: TRUE 13.06/4.37 Combined rules. Obtained 3 IRulesP rules: 13.06/4.37 f5787_0_Supprimer_Load(EOS(STATIC_5787(java.lang.Object(ARRAY(i760:0)), i1082:0)), i1083:0, i620:0, 2) -> f5787_0_Supprimer_Load(EOS(STATIC_5787(java.lang.Object(ARRAY(i760:0)), i1082:0)), 2 * i1083:0 + 1, i620:0, 2) :|: 2 * i1083:0 >= 0 && i1082:0 > 2 * i1083:0 + 1 && i1082:0 > 2 * i1083:0 + 2 && i760:0 > 2 * i1083:0 + 1 && i620:0 < i1111:0 && i760:0 > 2 * i1083:0 + 2 && i760:0 > i1083:0 && i1124:0 >= i1112:0 13.06/4.37 f5787_0_Supprimer_Load(EOS(STATIC_5787(java.lang.Object(ARRAY(i760:0)), i1082:0)), i1083:0, i620:0, 2) -> f5787_0_Supprimer_Load(EOS(STATIC_5787(java.lang.Object(ARRAY(i760:0)), i1082:0)), 2 * i1083:0 + 1, i620:0, 2) :|: 2 * i1083:0 >= 0 && i1082:0 > 2 * i1083:0 + 1 && i1082:0 <= 2 * i1083:0 + 2 && i760:0 > 2 * i1083:0 + 1 && i620:0 < i1111:0 && i760:0 > i1083:0 13.06/4.37 f5787_0_Supprimer_Load(EOS(STATIC_5787(java.lang.Object(ARRAY(i760:0)), i1082:0)), i1083:0, i620:0, 2) -> f5787_0_Supprimer_Load(EOS(STATIC_5787(java.lang.Object(ARRAY(i760:0)), i1082:0)), 2 * i1083:0 + 2, i620:0, 2) :|: 2 * i1083:0 >= 0 && i1082:0 > 2 * i1083:0 + 1 && i1082:0 > 2 * i1083:0 + 2 && i760:0 > 2 * i1083:0 + 2 && i620:0 < i1111:0 && i760:0 > 2 * i1083:0 + 1 && i760:0 > i1083:0 && i1124:0 < i1112:0 13.06/4.37 Filtered constant ground arguments: 13.06/4.37 f5787_0_Supprimer_Load(x1, x2, x3, x4) -> f5787_0_Supprimer_Load(x1, x2, x3) 13.06/4.37 Finished conversion. Obtained 3 rules.P rules: 13.06/4.37 f5787_0_Supprimer_Load(i1083:0, i620:0, i760:0, i1082:0) -> f5787_0_Supprimer_Load(2 * i1083:0 + 1, i620:0, i760:0, i1082:0) :|: i1082:0 > 2 * i1083:0 + 1 && 2 * i1083:0 >= 0 && i1082:0 > 2 * i1083:0 + 2 && i760:0 > 2 * i1083:0 + 1 && i620:0 < i1111:0 && i760:0 > 2 * i1083:0 + 2 && i1124:0 >= i1112:0 && i760:0 > i1083:0 13.06/4.37 f5787_0_Supprimer_Load(i1083:0, i620:0, i760:0, i1082:0) -> f5787_0_Supprimer_Load(2 * i1083:0 + 1, i620:0, i760:0, i1082:0) :|: i1082:0 > 2 * i1083:0 + 1 && 2 * i1083:0 >= 0 && i1082:0 <= 2 * i1083:0 + 2 && i760:0 > 2 * i1083:0 + 1 && i760:0 > i1083:0 && i620:0 < i1111:0 13.06/4.37 f5787_0_Supprimer_Load(i1083:0, i620:0, i760:0, i1082:0) -> f5787_0_Supprimer_Load(2 * i1083:0 + 2, i620:0, i760:0, i1082:0) :|: i1082:0 > 2 * i1083:0 + 1 && 2 * i1083:0 >= 0 && i1082:0 > 2 * i1083:0 + 2 && i760:0 > 2 * i1083:0 + 2 && i620:0 < i1111:0 && i760:0 > 2 * i1083:0 + 1 && i1124:0 < i1112:0 && i760:0 > i1083:0 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (9) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5787_0_Supprimer_Load(i1083:0, i620:0, i760:0, i1082:0) -> f5787_0_Supprimer_Load(2 * i1083:0 + 1, i620:0, i760:0, i1082:0) :|: i1082:0 > 2 * i1083:0 + 1 && 2 * i1083:0 >= 0 && i1082:0 > 2 * i1083:0 + 2 && i760:0 > 2 * i1083:0 + 1 && i620:0 < i1111:0 && i760:0 > 2 * i1083:0 + 2 && i1124:0 >= i1112:0 && i760:0 > i1083:0 13.06/4.37 f5787_0_Supprimer_Load(x, x1, x2, x3) -> f5787_0_Supprimer_Load(2 * x + 1, x1, x2, x3) :|: x3 > 2 * x + 1 && 2 * x >= 0 && x3 <= 2 * x + 2 && x2 > 2 * x + 1 && x2 > x && x1 < x4 13.06/4.37 f5787_0_Supprimer_Load(x5, x6, x7, x8) -> f5787_0_Supprimer_Load(2 * x5 + 2, x6, x7, x8) :|: x8 > 2 * x5 + 1 && 2 * x5 >= 0 && x8 > 2 * x5 + 2 && x7 > 2 * x5 + 2 && x6 < x9 && x7 > 2 * x5 + 1 && x10 < x11 && x7 > x5 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (10) IRSFormatTransformerProof (EQUIVALENT) 13.06/4.37 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (11) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5787_0_Supprimer_Load(i1083:0, i620:0, i760:0, i1082:0) -> f5787_0_Supprimer_Load(arith, i620:0, i760:0, i1082:0) :|: i1082:0 > 2 * i1083:0 + 1 && 2 * i1083:0 >= 0 && i1082:0 > 2 * i1083:0 + 2 && i760:0 > 2 * i1083:0 + 1 && i620:0 < i1111:0 && i760:0 > 2 * i1083:0 + 2 && i1124:0 >= i1112:0 && i760:0 > i1083:0 && arith = 2 * i1083:0 + 1 13.06/4.37 f5787_0_Supprimer_Load(x12, x13, x14, x15) -> f5787_0_Supprimer_Load(x16, x13, x14, x15) :|: x15 > 2 * x12 + 1 && 2 * x12 >= 0 && x15 <= 2 * x12 + 2 && x14 > 2 * x12 + 1 && x14 > x12 && x13 < x17 && x16 = 2 * x12 + 1 13.06/4.37 f5787_0_Supprimer_Load(x18, x19, x20, x21) -> f5787_0_Supprimer_Load(x22, x19, x20, x21) :|: x21 > 2 * x18 + 1 && 2 * x18 >= 0 && x21 > 2 * x18 + 2 && x20 > 2 * x18 + 2 && x19 < x23 && x20 > 2 * x18 + 1 && x24 < x25 && x20 > x18 && x22 = 2 * x18 + 2 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (12) IRSwTTerminationDigraphProof (EQUIVALENT) 13.06/4.37 Constructed termination digraph! 13.06/4.37 Nodes: 13.06/4.37 (1) f5787_0_Supprimer_Load(i1083:0, i620:0, i760:0, i1082:0) -> f5787_0_Supprimer_Load(arith, i620:0, i760:0, i1082:0) :|: i1082:0 > 2 * i1083:0 + 1 && 2 * i1083:0 >= 0 && i1082:0 > 2 * i1083:0 + 2 && i760:0 > 2 * i1083:0 + 1 && i620:0 < i1111:0 && i760:0 > 2 * i1083:0 + 2 && i1124:0 >= i1112:0 && i760:0 > i1083:0 && arith = 2 * i1083:0 + 1 13.06/4.37 (2) f5787_0_Supprimer_Load(x12, x13, x14, x15) -> f5787_0_Supprimer_Load(x16, x13, x14, x15) :|: x15 > 2 * x12 + 1 && 2 * x12 >= 0 && x15 <= 2 * x12 + 2 && x14 > 2 * x12 + 1 && x14 > x12 && x13 < x17 && x16 = 2 * x12 + 1 13.06/4.37 (3) f5787_0_Supprimer_Load(x18, x19, x20, x21) -> f5787_0_Supprimer_Load(x22, x19, x20, x21) :|: x21 > 2 * x18 + 1 && 2 * x18 >= 0 && x21 > 2 * x18 + 2 && x20 > 2 * x18 + 2 && x19 < x23 && x20 > 2 * x18 + 1 && x24 < x25 && x20 > x18 && x22 = 2 * x18 + 2 13.06/4.37 13.06/4.37 Arcs: 13.06/4.37 (1) -> (1), (2), (3) 13.06/4.37 (3) -> (1), (2), (3) 13.06/4.37 13.06/4.37 This digraph is fully evaluated! 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (13) 13.06/4.37 Obligation: 13.06/4.37 13.06/4.37 Termination digraph: 13.06/4.37 Nodes: 13.06/4.37 (1) f5787_0_Supprimer_Load(i1083:0, i620:0, i760:0, i1082:0) -> f5787_0_Supprimer_Load(arith, i620:0, i760:0, i1082:0) :|: i1082:0 > 2 * i1083:0 + 1 && 2 * i1083:0 >= 0 && i1082:0 > 2 * i1083:0 + 2 && i760:0 > 2 * i1083:0 + 1 && i620:0 < i1111:0 && i760:0 > 2 * i1083:0 + 2 && i1124:0 >= i1112:0 && i760:0 > i1083:0 && arith = 2 * i1083:0 + 1 13.06/4.37 (2) f5787_0_Supprimer_Load(x18, x19, x20, x21) -> f5787_0_Supprimer_Load(x22, x19, x20, x21) :|: x21 > 2 * x18 + 1 && 2 * x18 >= 0 && x21 > 2 * x18 + 2 && x20 > 2 * x18 + 2 && x19 < x23 && x20 > 2 * x18 + 1 && x24 < x25 && x20 > x18 && x22 = 2 * x18 + 2 13.06/4.37 13.06/4.37 Arcs: 13.06/4.37 (1) -> (1), (2) 13.06/4.37 (2) -> (1), (2) 13.06/4.37 13.06/4.37 This digraph is fully evaluated! 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (14) IntTRSCompressionProof (EQUIVALENT) 13.06/4.37 Compressed rules. 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (15) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5787_0_Supprimer_Load(x18:0, x19:0, x20:0, x21:0) -> f5787_0_Supprimer_Load(2 * x18:0 + 2, x19:0, x20:0, x21:0) :|: x25:0 > x24:0 && x20:0 > x18:0 && x20:0 > 2 * x18:0 + 1 && x23:0 > x19:0 && x20:0 > 2 * x18:0 + 2 && x21:0 > 2 * x18:0 + 2 && 2 * x18:0 >= 0 && x21:0 > 2 * x18:0 + 1 13.06/4.37 f5787_0_Supprimer_Load(i1083:0:0, i620:0:0, i760:0:0, i1082:0:0) -> f5787_0_Supprimer_Load(2 * i1083:0:0 + 1, i620:0:0, i760:0:0, i1082:0:0) :|: i1124:0:0 >= i1112:0:0 && i760:0:0 > i1083:0:0 && i760:0:0 > 2 * i1083:0:0 + 2 && i620:0:0 < i1111:0:0 && i760:0:0 > 2 * i1083:0:0 + 1 && i1082:0:0 > 2 * i1083:0:0 + 2 && 2 * i1083:0:0 >= 0 && i1082:0:0 > 2 * i1083:0:0 + 1 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (16) TempFilterProof (SOUND) 13.06/4.37 Used the following sort dictionary for filtering: 13.06/4.37 f5787_0_Supprimer_Load(INTEGER, INTEGER, INTEGER, INTEGER) 13.06/4.37 Replaced non-predefined constructor symbols by 0. 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (17) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5787_0_Supprimer_Load(x18:0, x19:0, x20:0, x21:0) -> f5787_0_Supprimer_Load(c, x19:0, x20:0, x21:0) :|: c = 2 * x18:0 + 2 && (x25:0 > x24:0 && x20:0 > x18:0 && x20:0 > 2 * x18:0 + 1 && x23:0 > x19:0 && x20:0 > 2 * x18:0 + 2 && x21:0 > 2 * x18:0 + 2 && 2 * x18:0 >= 0 && x21:0 > 2 * x18:0 + 1) 13.06/4.37 f5787_0_Supprimer_Load(i1083:0:0, i620:0:0, i760:0:0, i1082:0:0) -> f5787_0_Supprimer_Load(c1, i620:0:0, i760:0:0, i1082:0:0) :|: c1 = 2 * i1083:0:0 + 1 && (i1124:0:0 >= i1112:0:0 && i760:0:0 > i1083:0:0 && i760:0:0 > 2 * i1083:0:0 + 2 && i620:0:0 < i1111:0:0 && i760:0:0 > 2 * i1083:0:0 + 1 && i1082:0:0 > 2 * i1083:0:0 + 2 && 2 * i1083:0:0 >= 0 && i1082:0:0 > 2 * i1083:0:0 + 1) 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (18) RankingReductionPairProof (EQUIVALENT) 13.06/4.37 Interpretation: 13.06/4.37 [ f5787_0_Supprimer_Load ] = -1*f5787_0_Supprimer_Load_1 + 1/2*f5787_0_Supprimer_Load_4 13.06/4.37 13.06/4.37 The following rules are decreasing: 13.06/4.37 f5787_0_Supprimer_Load(x18:0, x19:0, x20:0, x21:0) -> f5787_0_Supprimer_Load(c, x19:0, x20:0, x21:0) :|: c = 2 * x18:0 + 2 && (x25:0 > x24:0 && x20:0 > x18:0 && x20:0 > 2 * x18:0 + 1 && x23:0 > x19:0 && x20:0 > 2 * x18:0 + 2 && x21:0 > 2 * x18:0 + 2 && 2 * x18:0 >= 0 && x21:0 > 2 * x18:0 + 1) 13.06/4.37 f5787_0_Supprimer_Load(i1083:0:0, i620:0:0, i760:0:0, i1082:0:0) -> f5787_0_Supprimer_Load(c1, i620:0:0, i760:0:0, i1082:0:0) :|: c1 = 2 * i1083:0:0 + 1 && (i1124:0:0 >= i1112:0:0 && i760:0:0 > i1083:0:0 && i760:0:0 > 2 * i1083:0:0 + 2 && i620:0:0 < i1111:0:0 && i760:0:0 > 2 * i1083:0:0 + 1 && i1082:0:0 > 2 * i1083:0:0 + 2 && 2 * i1083:0:0 >= 0 && i1082:0:0 > 2 * i1083:0:0 + 1) 13.06/4.37 13.06/4.37 The following rules are bounded: 13.06/4.37 f5787_0_Supprimer_Load(x18:0, x19:0, x20:0, x21:0) -> f5787_0_Supprimer_Load(c, x19:0, x20:0, x21:0) :|: c = 2 * x18:0 + 2 && (x25:0 > x24:0 && x20:0 > x18:0 && x20:0 > 2 * x18:0 + 1 && x23:0 > x19:0 && x20:0 > 2 * x18:0 + 2 && x21:0 > 2 * x18:0 + 2 && 2 * x18:0 >= 0 && x21:0 > 2 * x18:0 + 1) 13.06/4.37 f5787_0_Supprimer_Load(i1083:0:0, i620:0:0, i760:0:0, i1082:0:0) -> f5787_0_Supprimer_Load(c1, i620:0:0, i760:0:0, i1082:0:0) :|: c1 = 2 * i1083:0:0 + 1 && (i1124:0:0 >= i1112:0:0 && i760:0:0 > i1083:0:0 && i760:0:0 > 2 * i1083:0:0 + 2 && i620:0:0 < i1111:0:0 && i760:0:0 > 2 * i1083:0:0 + 1 && i1082:0:0 > 2 * i1083:0:0 + 2 && 2 * i1083:0:0 >= 0 && i1082:0:0 > 2 * i1083:0:0 + 1) 13.06/4.37 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (19) 13.06/4.37 YES 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (20) 13.06/4.37 Obligation: 13.06/4.37 SCC of termination graph based on JBC Program. 13.06/4.37 SCC contains nodes from the following methods: TriTas.Ajouter(I)V 13.06/4.37 SCC calls the following helper methods: 13.06/4.37 Performed SCC analyses: 13.06/4.37 *Used field analysis yielded the following read fields: 13.06/4.37 13.06/4.37 *Marker field analysis yielded the following relations that could be markers: 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (21) SCCToIRSProof (SOUND) 13.06/4.37 Transformed FIGraph SCCs to intTRSs. Log: 13.06/4.37 Generated rules. Obtained 40 IRulesP rules: 13.06/4.37 f5212_0_Ajouter_LE(EOS(STATIC_5212(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i684) -> f5219_0_Ajouter_LE(EOS(STATIC_5219(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i684) :|: TRUE 13.06/4.37 f5219_0_Ajouter_LE(EOS(STATIC_5219(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i684) -> f5226_0_Ajouter_FieldAccess(EOS(STATIC_5226(java.lang.Object(ARRAY(i498)))), i500, i500, i684) :|: i684 > 0 13.06/4.37 f5226_0_Ajouter_FieldAccess(EOS(STATIC_5226(java.lang.Object(ARRAY(i498)))), i500, i500, i684) -> f5233_0_Ajouter_Load(EOS(STATIC_5233(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498))) :|: TRUE 13.06/4.37 f5233_0_Ajouter_Load(EOS(STATIC_5233(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498))) -> f5239_0_Ajouter_ConstantStackPush(EOS(STATIC_5239(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684) :|: TRUE 13.06/4.37 f5239_0_Ajouter_ConstantStackPush(EOS(STATIC_5239(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684) -> f5245_0_Ajouter_IntArithmetic(EOS(STATIC_5245(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, 1) :|: TRUE 13.06/4.37 f5245_0_Ajouter_IntArithmetic(EOS(STATIC_5245(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, matching1) -> f5252_0_Ajouter_ConstantStackPush(EOS(STATIC_5252(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684 - 1) :|: i684 > 0 && matching1 = 1 13.06/4.37 f5252_0_Ajouter_ConstantStackPush(EOS(STATIC_5252(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i709) -> f5259_0_Ajouter_IntArithmetic(EOS(STATIC_5259(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i709, 2) :|: TRUE 13.06/4.37 f5259_0_Ajouter_IntArithmetic(EOS(STATIC_5259(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i709, matching1) -> f5266_0_Ajouter_ArrayAccess(EOS(STATIC_5266(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i716) :|: i716 = i709 / 2 && i716 <= i709 && matching1 = 2 13.06/4.37 f5266_0_Ajouter_ArrayAccess(EOS(STATIC_5266(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i716) -> f5273_0_Ajouter_ArrayAccess(EOS(STATIC_5273(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i716) :|: TRUE 13.06/4.37 f5273_0_Ajouter_ArrayAccess(EOS(STATIC_5273(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i716) -> f5282_0_Ajouter_Load(EOS(STATIC_5282(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i731) :|: i716 < i498 13.06/4.37 f5282_0_Ajouter_Load(EOS(STATIC_5282(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i731) -> f5289_0_Ajouter_GT(EOS(STATIC_5289(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i731, i500) :|: TRUE 13.06/4.37 f5289_0_Ajouter_GT(EOS(STATIC_5289(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i731, i500) -> f5298_0_Ajouter_GT(EOS(STATIC_5298(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i731, i500) :|: i731 <= i500 13.06/4.37 f5298_0_Ajouter_GT(EOS(STATIC_5298(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i731, i500) -> f5308_0_Ajouter_FieldAccess(EOS(STATIC_5308(java.lang.Object(ARRAY(i498)))), i500, i500, i684) :|: i731 <= i500 13.06/4.37 f5308_0_Ajouter_FieldAccess(EOS(STATIC_5308(java.lang.Object(ARRAY(i498)))), i500, i500, i684) -> f5317_0_Ajouter_Load(EOS(STATIC_5317(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498))) :|: TRUE 13.06/4.37 f5317_0_Ajouter_Load(EOS(STATIC_5317(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498))) -> f5326_0_Ajouter_FieldAccess(EOS(STATIC_5326(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684) :|: TRUE 13.06/4.37 f5326_0_Ajouter_FieldAccess(EOS(STATIC_5326(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684) -> f5335_0_Ajouter_Load(EOS(STATIC_5335(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, java.lang.Object(ARRAY(i498))) :|: TRUE 13.06/4.37 f5335_0_Ajouter_Load(EOS(STATIC_5335(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, java.lang.Object(ARRAY(i498))) -> f5346_0_Ajouter_ConstantStackPush(EOS(STATIC_5346(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, java.lang.Object(ARRAY(i498)), i684) :|: TRUE 13.06/4.37 f5346_0_Ajouter_ConstantStackPush(EOS(STATIC_5346(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, java.lang.Object(ARRAY(i498)), i684) -> f5354_0_Ajouter_IntArithmetic(EOS(STATIC_5354(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, java.lang.Object(ARRAY(i498)), i684, 1) :|: TRUE 13.06/4.37 f5354_0_Ajouter_IntArithmetic(EOS(STATIC_5354(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, java.lang.Object(ARRAY(i498)), i684, matching1) -> f5359_0_Ajouter_ConstantStackPush(EOS(STATIC_5359(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, java.lang.Object(ARRAY(i498)), i684 - 1) :|: i684 > 0 && matching1 = 1 13.06/4.37 f5359_0_Ajouter_ConstantStackPush(EOS(STATIC_5359(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, java.lang.Object(ARRAY(i498)), i768) -> f5364_0_Ajouter_IntArithmetic(EOS(STATIC_5364(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, java.lang.Object(ARRAY(i498)), i768, 2) :|: TRUE 13.06/4.37 f5364_0_Ajouter_IntArithmetic(EOS(STATIC_5364(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, java.lang.Object(ARRAY(i498)), i768, matching1) -> f5368_0_Ajouter_ArrayAccess(EOS(STATIC_5368(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, java.lang.Object(ARRAY(i498)), i770) :|: i770 = i768 / 2 && i770 <= i768 && matching1 = 2 13.06/4.37 f5368_0_Ajouter_ArrayAccess(EOS(STATIC_5368(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, java.lang.Object(ARRAY(i498)), i770) -> f5374_0_Ajouter_ArrayAccess(EOS(STATIC_5374(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, java.lang.Object(ARRAY(i498)), i770) :|: TRUE 13.06/4.37 f5374_0_Ajouter_ArrayAccess(EOS(STATIC_5374(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, java.lang.Object(ARRAY(i498)), i770) -> f5381_0_Ajouter_ArrayAccess(EOS(STATIC_5381(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, i772) :|: i770 < i498 13.06/4.37 f5381_0_Ajouter_ArrayAccess(EOS(STATIC_5381(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, i772) -> f5386_0_Ajouter_ArrayAccess(EOS(STATIC_5386(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, i772) :|: TRUE 13.06/4.37 f5386_0_Ajouter_ArrayAccess(EOS(STATIC_5386(java.lang.Object(ARRAY(i498)))), i500, i500, i684, java.lang.Object(ARRAY(i498)), i684, i772) -> f5394_0_Ajouter_Load(EOS(STATIC_5394(java.lang.Object(ARRAY(i498)))), i500, i500, i684) :|: i684 < i498 13.06/4.37 f5394_0_Ajouter_Load(EOS(STATIC_5394(java.lang.Object(ARRAY(i498)))), i500, i500, i684) -> f5402_0_Ajouter_ConstantStackPush(EOS(STATIC_5402(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i684) :|: TRUE 13.06/4.37 f5402_0_Ajouter_ConstantStackPush(EOS(STATIC_5402(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i684) -> f5408_0_Ajouter_IntArithmetic(EOS(STATIC_5408(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i684, 1) :|: TRUE 13.06/4.37 f5408_0_Ajouter_IntArithmetic(EOS(STATIC_5408(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i684, matching1) -> f5415_0_Ajouter_ConstantStackPush(EOS(STATIC_5415(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i684 - 1) :|: i684 > 0 && matching1 = 1 13.06/4.37 f5415_0_Ajouter_ConstantStackPush(EOS(STATIC_5415(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i782) -> f5423_0_Ajouter_IntArithmetic(EOS(STATIC_5423(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i782, 2) :|: TRUE 13.06/4.37 f5423_0_Ajouter_IntArithmetic(EOS(STATIC_5423(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i782, matching1) -> f5430_0_Ajouter_Store(EOS(STATIC_5430(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i784) :|: i784 = i782 / 2 && i784 <= i782 && matching1 = 2 13.06/4.37 f5430_0_Ajouter_Store(EOS(STATIC_5430(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i784) -> f5438_0_Ajouter_Load(EOS(STATIC_5438(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i784) :|: TRUE 13.06/4.37 f5438_0_Ajouter_Load(EOS(STATIC_5438(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i784) -> f5446_0_Ajouter_Load(EOS(STATIC_5446(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i784, i784) :|: TRUE 13.06/4.37 f5446_0_Ajouter_Load(EOS(STATIC_5446(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i784, i784) -> f5452_0_Ajouter_LT(EOS(STATIC_5452(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i784, i784, i684) :|: TRUE 13.06/4.37 f5452_0_Ajouter_LT(EOS(STATIC_5452(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i784, i784, i684) -> f5460_0_Ajouter_LT(EOS(STATIC_5460(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i784, i784, i684) :|: i784 < i684 13.06/4.37 f5460_0_Ajouter_LT(EOS(STATIC_5460(java.lang.Object(ARRAY(i498)))), i500, i500, i684, i784, i784, i684) -> f5467_0_Ajouter_Load(EOS(STATIC_5467(java.lang.Object(ARRAY(i498)))), i500, i500, i784) :|: i784 < i684 13.06/4.37 f5467_0_Ajouter_Load(EOS(STATIC_5467(java.lang.Object(ARRAY(i498)))), i500, i500, i784) -> f5476_0_Ajouter_Store(EOS(STATIC_5476(java.lang.Object(ARRAY(i498)))), i500, i500, i784) :|: TRUE 13.06/4.37 f5476_0_Ajouter_Store(EOS(STATIC_5476(java.lang.Object(ARRAY(i498)))), i500, i500, i784) -> f5485_0_Ajouter_JMP(EOS(STATIC_5485(java.lang.Object(ARRAY(i498)))), i500, i500, i784) :|: TRUE 13.06/4.37 f5485_0_Ajouter_JMP(EOS(STATIC_5485(java.lang.Object(ARRAY(i498)))), i500, i500, i784) -> f5493_0_Ajouter_Load(EOS(STATIC_5493(java.lang.Object(ARRAY(i498)))), i500, i500, i784) :|: TRUE 13.06/4.37 f5493_0_Ajouter_Load(EOS(STATIC_5493(java.lang.Object(ARRAY(i498)))), i500, i500, i784) -> f5208_0_Ajouter_Load(EOS(STATIC_5208(java.lang.Object(ARRAY(i498)))), i500, i500, i784) :|: TRUE 13.06/4.37 f5208_0_Ajouter_Load(EOS(STATIC_5208(java.lang.Object(ARRAY(i498)))), i500, i500, i670) -> f5212_0_Ajouter_LE(EOS(STATIC_5212(java.lang.Object(ARRAY(i498)))), i500, i500, i670, i670) :|: TRUE 13.06/4.37 Combined rules. Obtained 2 IRulesP rules: 13.06/4.37 f5212_0_Ajouter_LE(EOS(STATIC_5212(java.lang.Object(ARRAY(i498:0)))), i500:0, i500:0, i684:0, i684:0) -> f5212_0_Ajouter_LE'(EOS(STATIC_5212(java.lang.Object(ARRAY(i498:0)))), i500:0, i500:0, i684:0, i684:0) :|: i684:0 > 0 && i684:0 - 1 >= div && i498:0 > div && i731:0 <= i500:0 && i684:0 - 1 >= div1 && i498:0 > div1 && i684:0 < i498:0 && i684:0 - 1 >= div2 && i684:0 > div2 13.06/4.37 f5212_0_Ajouter_LE'(EOS(STATIC_5212(java.lang.Object(ARRAY(i498:0)))), i500:0, i500:0, i684:0, i684:0) -> f5212_0_Ajouter_LE(EOS(STATIC_5212(java.lang.Object(ARRAY(i498:0)))), i500:0, i500:0, div2, div2) :|: i684:0 > 0 && i684:0 - 1 >= div && i498:0 > div && i731:0 <= i500:0 && i684:0 - 1 >= div1 && i498:0 > div1 && i684:0 < i498:0 && i684:0 - 1 >= div2 && i684:0 > div2 && i684:0 - 1 - 2 * div > -2 && i684:0 - 1 - 2 * div < 2 && i684:0 - 1 - 2 * div1 > -2 && i684:0 - 1 - 2 * div1 < 2 && i684:0 - 1 - 2 * div2 < 2 && i684:0 - 1 - 2 * div2 > -2 13.06/4.37 Filtered duplicate arguments: 13.06/4.37 f5212_0_Ajouter_LE(x1, x2, x3, x4, x5) -> f5212_0_Ajouter_LE(x1, x3, x5) 13.06/4.37 f5212_0_Ajouter_LE'(x1, x2, x3, x4, x5) -> f5212_0_Ajouter_LE'(x1, x3, x5) 13.06/4.37 Finished conversion. Obtained 2 rules.P rules: 13.06/4.37 f5212_0_Ajouter_LE(i500:0, i684:0, i498:0) -> f5212_0_Ajouter_LE'(i500:0, i684:0, i498:0) :|: i684:0 - 1 >= div && i684:0 > 0 && i498:0 > div && i731:0 <= i500:0 && i684:0 - 1 >= div1 && i498:0 > div1 && i684:0 < i498:0 && i684:0 > div2 && i684:0 - 1 >= div2 13.06/4.37 f5212_0_Ajouter_LE'(i500:0, i684:0, i498:0) -> f5212_0_Ajouter_LE(i500:0, div2, i498:0) :|: i684:0 - 1 >= div && i684:0 > 0 && i498:0 > div && i731:0 <= i500:0 && i684:0 - 1 >= div1 && i498:0 > div1 && i684:0 < i498:0 && i684:0 - 1 >= div2 && i684:0 > div2 && i684:0 - 1 - 2 * div > -2 && i684:0 - 1 - 2 * div < 2 && i684:0 - 1 - 2 * div1 > -2 && i684:0 - 1 - 2 * div1 < 2 && i684:0 - 1 - 2 * div2 > -2 && i684:0 - 1 - 2 * div2 < 2 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (22) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5212_0_Ajouter_LE(x, x1, x2) -> f5212_0_Ajouter_LE'(x, x1, x2) :|: x1 - 1 >= x3 && x1 > 0 && x2 > x3 && x4 <= x && x1 - 1 >= x5 && x2 > x5 && x1 < x2 && x1 > x6 && x1 - 1 >= x6 13.06/4.37 f5212_0_Ajouter_LE'(x7, x8, x9) -> f5212_0_Ajouter_LE(x7, x10, x9) :|: x8 - 1 >= x11 && x8 > 0 && x9 > x11 && x12 <= x7 && x8 - 1 >= x13 && x9 > x13 && x8 < x9 && x8 - 1 >= x10 && x8 > x10 && x8 - 1 - 2 * x11 > -2 && x8 - 1 - 2 * x11 < 2 && x8 - 1 - 2 * x13 > -2 && x8 - 1 - 2 * x13 < 2 && x8 - 1 - 2 * x10 > -2 && x8 - 1 - 2 * x10 < 2 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (23) IRSFormatTransformerProof (EQUIVALENT) 13.06/4.37 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (24) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5212_0_Ajouter_LE(x, x1, x2) -> f5212_0_Ajouter_LE'(x, x1, x2) :|: x1 - 1 >= x3 && x1 > 0 && x2 > x3 && x4 <= x && x1 - 1 >= x5 && x2 > x5 && x1 < x2 && x1 > x6 && x1 - 1 >= x6 13.06/4.37 f5212_0_Ajouter_LE'(x7, x8, x9) -> f5212_0_Ajouter_LE(x7, x10, x9) :|: x8 - 1 >= x11 && x8 > 0 && x9 > x11 && x12 <= x7 && x8 - 1 >= x13 && x9 > x13 && x8 < x9 && x8 - 1 >= x10 && x8 > x10 && x8 - 1 - 2 * x11 > -2 && x8 - 1 - 2 * x11 < 2 && x8 - 1 - 2 * x13 > -2 && x8 - 1 - 2 * x13 < 2 && x8 - 1 - 2 * x10 > -2 && x8 - 1 - 2 * x10 < 2 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (25) IRSwTTerminationDigraphProof (EQUIVALENT) 13.06/4.37 Constructed termination digraph! 13.06/4.37 Nodes: 13.06/4.37 (1) f5212_0_Ajouter_LE(x, x1, x2) -> f5212_0_Ajouter_LE'(x, x1, x2) :|: x1 - 1 >= x3 && x1 > 0 && x2 > x3 && x4 <= x && x1 - 1 >= x5 && x2 > x5 && x1 < x2 && x1 > x6 && x1 - 1 >= x6 13.06/4.37 (2) f5212_0_Ajouter_LE'(x7, x8, x9) -> f5212_0_Ajouter_LE(x7, x10, x9) :|: x8 - 1 >= x11 && x8 > 0 && x9 > x11 && x12 <= x7 && x8 - 1 >= x13 && x9 > x13 && x8 < x9 && x8 - 1 >= x10 && x8 > x10 && x8 - 1 - 2 * x11 > -2 && x8 - 1 - 2 * x11 < 2 && x8 - 1 - 2 * x13 > -2 && x8 - 1 - 2 * x13 < 2 && x8 - 1 - 2 * x10 > -2 && x8 - 1 - 2 * x10 < 2 13.06/4.37 13.06/4.37 Arcs: 13.06/4.37 (1) -> (2) 13.06/4.37 (2) -> (1) 13.06/4.37 13.06/4.37 This digraph is fully evaluated! 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (26) 13.06/4.37 Obligation: 13.06/4.37 13.06/4.37 Termination digraph: 13.06/4.37 Nodes: 13.06/4.37 (1) f5212_0_Ajouter_LE(x, x1, x2) -> f5212_0_Ajouter_LE'(x, x1, x2) :|: x1 - 1 >= x3 && x1 > 0 && x2 > x3 && x4 <= x && x1 - 1 >= x5 && x2 > x5 && x1 < x2 && x1 > x6 && x1 - 1 >= x6 13.06/4.37 (2) f5212_0_Ajouter_LE'(x7, x8, x9) -> f5212_0_Ajouter_LE(x7, x10, x9) :|: x8 - 1 >= x11 && x8 > 0 && x9 > x11 && x12 <= x7 && x8 - 1 >= x13 && x9 > x13 && x8 < x9 && x8 - 1 >= x10 && x8 > x10 && x8 - 1 - 2 * x11 > -2 && x8 - 1 - 2 * x11 < 2 && x8 - 1 - 2 * x13 > -2 && x8 - 1 - 2 * x13 < 2 && x8 - 1 - 2 * x10 > -2 && x8 - 1 - 2 * x10 < 2 13.06/4.37 13.06/4.37 Arcs: 13.06/4.37 (1) -> (2) 13.06/4.37 (2) -> (1) 13.06/4.37 13.06/4.37 This digraph is fully evaluated! 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (27) IntTRSCompressionProof (EQUIVALENT) 13.06/4.37 Compressed rules. 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (28) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5212_0_Ajouter_LE(x:0, x1:0, x2:0) -> f5212_0_Ajouter_LE(x:0, x10:0, x2:0) :|: x1:0 - 1 - 2 * x10:0 < 2 && x6:0 <= x1:0 - 1 && x6:0 < x1:0 && x1:0 - 1 - 2 * x10:0 > -2 && x1:0 - 1 - 2 * x13:0 < 2 && x5:0 < x2:0 && x1:0 - 1 - 2 * x13:0 > -2 && x5:0 <= x1:0 - 1 && x1:0 - 1 - 2 * x11:0 < 2 && x:0 >= x4:0 && x1:0 - 1 - 2 * x11:0 > -2 && x3:0 < x2:0 && x1:0 > x10:0 && x3:0 <= x1:0 - 1 && x1:0 - 1 >= x10:0 && x2:0 > x1:0 && x2:0 > x13:0 && x1:0 - 1 >= x13:0 && x:0 >= x12:0 && x2:0 > x11:0 && x1:0 > 0 && x1:0 - 1 >= x11:0 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (29) FilterProof (EQUIVALENT) 13.06/4.37 Used the following sort dictionary for filtering: 13.06/4.37 f5212_0_Ajouter_LE(INTEGER, INTEGER, INTEGER) 13.06/4.37 Replaced non-predefined constructor symbols by 0. 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (30) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5212_0_Ajouter_LE(x:0, x1:0, x2:0) -> f5212_0_Ajouter_LE(x:0, x10:0, x2:0) :|: x1:0 - 1 - 2 * x10:0 < 2 && x6:0 <= x1:0 - 1 && x6:0 < x1:0 && x1:0 - 1 - 2 * x10:0 > -2 && x1:0 - 1 - 2 * x13:0 < 2 && x5:0 < x2:0 && x1:0 - 1 - 2 * x13:0 > -2 && x5:0 <= x1:0 - 1 && x1:0 - 1 - 2 * x11:0 < 2 && x:0 >= x4:0 && x1:0 - 1 - 2 * x11:0 > -2 && x3:0 < x2:0 && x1:0 > x10:0 && x3:0 <= x1:0 - 1 && x1:0 - 1 >= x10:0 && x2:0 > x1:0 && x2:0 > x13:0 && x1:0 - 1 >= x13:0 && x:0 >= x12:0 && x2:0 > x11:0 && x1:0 > 0 && x1:0 - 1 >= x11:0 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (31) IntTRSCompressionProof (EQUIVALENT) 13.06/4.37 Compressed rules. 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (32) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5212_0_Ajouter_LE(x:0:0, x1:0:0, x2:0:0) -> f5212_0_Ajouter_LE(x:0:0, x10:0:0, x2:0:0) :|: x1:0:0 > 0 && x1:0:0 - 1 >= x11:0:0 && x2:0:0 > x11:0:0 && x:0:0 >= x12:0:0 && x1:0:0 - 1 >= x13:0:0 && x2:0:0 > x13:0:0 && x2:0:0 > x1:0:0 && x1:0:0 - 1 >= x10:0:0 && x3:0:0 <= x1:0:0 - 1 && x1:0:0 > x10:0:0 && x3:0:0 < x2:0:0 && x1:0:0 - 1 - 2 * x11:0:0 > -2 && x:0:0 >= x4:0:0 && x1:0:0 - 1 - 2 * x11:0:0 < 2 && x5:0:0 <= x1:0:0 - 1 && x1:0:0 - 1 - 2 * x13:0:0 > -2 && x5:0:0 < x2:0:0 && x1:0:0 - 1 - 2 * x13:0:0 < 2 && x1:0:0 - 1 - 2 * x10:0:0 > -2 && x6:0:0 < x1:0:0 && x6:0:0 <= x1:0:0 - 1 && x1:0:0 - 1 - 2 * x10:0:0 < 2 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (33) PolynomialOrderProcessor (EQUIVALENT) 13.06/4.37 Found the following polynomial interpretation: 13.06/4.37 [f5212_0_Ajouter_LE(x, x1, x2)] = x1 13.06/4.37 13.06/4.37 The following rules are decreasing: 13.06/4.37 f5212_0_Ajouter_LE(x:0:0, x1:0:0, x2:0:0) -> f5212_0_Ajouter_LE(x:0:0, x10:0:0, x2:0:0) :|: x1:0:0 > 0 && x1:0:0 - 1 >= x11:0:0 && x2:0:0 > x11:0:0 && x:0:0 >= x12:0:0 && x1:0:0 - 1 >= x13:0:0 && x2:0:0 > x13:0:0 && x2:0:0 > x1:0:0 && x1:0:0 - 1 >= x10:0:0 && x3:0:0 <= x1:0:0 - 1 && x1:0:0 > x10:0:0 && x3:0:0 < x2:0:0 && x1:0:0 - 1 - 2 * x11:0:0 > -2 && x:0:0 >= x4:0:0 && x1:0:0 - 1 - 2 * x11:0:0 < 2 && x5:0:0 <= x1:0:0 - 1 && x1:0:0 - 1 - 2 * x13:0:0 > -2 && x5:0:0 < x2:0:0 && x1:0:0 - 1 - 2 * x13:0:0 < 2 && x1:0:0 - 1 - 2 * x10:0:0 > -2 && x6:0:0 < x1:0:0 && x6:0:0 <= x1:0:0 - 1 && x1:0:0 - 1 - 2 * x10:0:0 < 2 13.06/4.37 The following rules are bounded: 13.06/4.37 f5212_0_Ajouter_LE(x:0:0, x1:0:0, x2:0:0) -> f5212_0_Ajouter_LE(x:0:0, x10:0:0, x2:0:0) :|: x1:0:0 > 0 && x1:0:0 - 1 >= x11:0:0 && x2:0:0 > x11:0:0 && x:0:0 >= x12:0:0 && x1:0:0 - 1 >= x13:0:0 && x2:0:0 > x13:0:0 && x2:0:0 > x1:0:0 && x1:0:0 - 1 >= x10:0:0 && x3:0:0 <= x1:0:0 - 1 && x1:0:0 > x10:0:0 && x3:0:0 < x2:0:0 && x1:0:0 - 1 - 2 * x11:0:0 > -2 && x:0:0 >= x4:0:0 && x1:0:0 - 1 - 2 * x11:0:0 < 2 && x5:0:0 <= x1:0:0 - 1 && x1:0:0 - 1 - 2 * x13:0:0 > -2 && x5:0:0 < x2:0:0 && x1:0:0 - 1 - 2 * x13:0:0 < 2 && x1:0:0 - 1 - 2 * x10:0:0 > -2 && x6:0:0 < x1:0:0 && x6:0:0 <= x1:0:0 - 1 && x1:0:0 - 1 - 2 * x10:0:0 < 2 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (34) 13.06/4.37 YES 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (35) 13.06/4.37 Obligation: 13.06/4.37 SCC of termination graph based on JBC Program. 13.06/4.37 SCC contains nodes from the following methods: TriTas.HeapSort()V 13.06/4.37 SCC calls the following helper methods: TriTas.Supprimer()V 13.06/4.37 Performed SCC analyses: 13.06/4.37 *Used field analysis yielded the following read fields: 13.06/4.37 13.06/4.37 *Marker field analysis yielded the following relations that could be markers: 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (36) SCCToIRSProof (SOUND) 13.06/4.37 Transformed FIGraph SCCs to intTRSs. Log: 13.06/4.37 Generated rules. Obtained 23 IRulesP rules: 13.06/4.37 f3617_0_HeapSort_LT(EOS(STATIC_3617(java.lang.Object(ARRAY(i477)))), i476, i476) -> f3631_0_HeapSort_LT(EOS(STATIC_3631(java.lang.Object(ARRAY(i477)))), i476, i476) :|: TRUE 13.06/4.37 f3631_0_HeapSort_LT(EOS(STATIC_3631(java.lang.Object(ARRAY(i477)))), i476, i476) -> f3653_0_HeapSort_InvokeMethod(EOS(STATIC_3653(java.lang.Object(ARRAY(i477)))), i476) :|: i476 >= 0 13.06/4.37 f3653_0_HeapSort_InvokeMethod(EOS(STATIC_3653(java.lang.Object(ARRAY(i477)))), i476) -> f3718_0_Maximum_FieldAccess(EOS(STATIC_3718(java.lang.Object(ARRAY(i477)))), i476) :|: TRUE 13.06/4.37 f3718_0_Maximum_FieldAccess(EOS(STATIC_3718(java.lang.Object(ARRAY(i477)))), i476) -> f3854_0_Maximum_ConstantStackPush(EOS(STATIC_3854(java.lang.Object(ARRAY(i477)))), i476, java.lang.Object(ARRAY(i477))) :|: TRUE 13.06/4.37 f3854_0_Maximum_ConstantStackPush(EOS(STATIC_3854(java.lang.Object(ARRAY(i477)))), i476, java.lang.Object(ARRAY(i477))) -> f3910_0_Maximum_ArrayAccess(EOS(STATIC_3910(java.lang.Object(ARRAY(i477)))), i476, java.lang.Object(ARRAY(i477)), 0) :|: TRUE 13.06/4.37 f3910_0_Maximum_ArrayAccess(EOS(STATIC_3910(java.lang.Object(ARRAY(i477)))), i476, java.lang.Object(ARRAY(i477)), matching1) -> f3986_0_Maximum_Return(EOS(STATIC_3986(java.lang.Object(ARRAY(i477)))), i476, i518) :|: 0 < i477 && matching1 = 0 13.06/4.37 f3986_0_Maximum_Return(EOS(STATIC_3986(java.lang.Object(ARRAY(i477)))), i476, i518) -> f4062_0_HeapSort_Store(EOS(STATIC_4062(java.lang.Object(ARRAY(i477)))), i476, i518) :|: TRUE 13.06/4.37 f4062_0_HeapSort_Store(EOS(STATIC_4062(java.lang.Object(ARRAY(i477)))), i476, i518) -> f4137_0_HeapSort_InvokeMethod(EOS(STATIC_4137(java.lang.Object(ARRAY(i477)))), i476, i518) :|: TRUE 13.06/4.37 f4137_0_HeapSort_InvokeMethod(EOS(STATIC_4137(java.lang.Object(ARRAY(i477)))), i476, i518) -> f4174_0_Supprimer_FieldAccess(EOS(STATIC_4174(java.lang.Object(ARRAY(i477))))) :|: i477 >= 1 && i477 > i476 13.06/4.37 f4137_0_HeapSort_InvokeMethod(EOS(STATIC_4137(java.lang.Object(ARRAY(i477)))), i476, i518) -> f4174_1_Supprimer_FieldAccess(EOS(STATIC_4174(java.lang.Object(ARRAY(i477)))), i476, i518) :|: i477 >= 1 && i477 > i476 13.06/4.37 f4174_0_Supprimer_FieldAccess(EOS(STATIC_4174(java.lang.Object(ARRAY(i477))))) -> f6250_0_Supprimer_FieldAccess(EOS(STATIC_6250(java.lang.Object(ARRAY(i477))))) :|: TRUE 13.06/4.37 f5813_0_Supprimer_Return(EOS(STATIC_5813(java.lang.Object(ARRAY(i1097)))), i476, i518) -> f5456_0_Supprimer_Return(EOS(STATIC_5456(java.lang.Object(ARRAY(i1097)))), i476, i518) :|: TRUE 13.06/4.37 f5456_0_Supprimer_Return(EOS(STATIC_5456(java.lang.Object(ARRAY(i800)))), i476, i518) -> f5465_0_HeapSort_FieldAccess(EOS(STATIC_5465(java.lang.Object(ARRAY(i800)))), i476, i518) :|: TRUE 13.06/4.37 f5465_0_HeapSort_FieldAccess(EOS(STATIC_5465(java.lang.Object(ARRAY(i800)))), i476, i518) -> f5471_0_HeapSort_Load(EOS(STATIC_5471(java.lang.Object(ARRAY(i800)))), i476, i518, java.lang.Object(ARRAY(i800))) :|: TRUE 13.06/4.37 f5471_0_HeapSort_Load(EOS(STATIC_5471(java.lang.Object(ARRAY(i800)))), i476, i518, java.lang.Object(ARRAY(i800))) -> f5480_0_HeapSort_Load(EOS(STATIC_5480(java.lang.Object(ARRAY(i800)))), i476, i518, java.lang.Object(ARRAY(i800)), i476) :|: TRUE 13.06/4.37 f5480_0_HeapSort_Load(EOS(STATIC_5480(java.lang.Object(ARRAY(i800)))), i476, i518, java.lang.Object(ARRAY(i800)), i476) -> f5489_0_HeapSort_ArrayAccess(EOS(STATIC_5489(java.lang.Object(ARRAY(i800)))), i476, java.lang.Object(ARRAY(i800)), i476, i518) :|: TRUE 13.06/4.37 f5489_0_HeapSort_ArrayAccess(EOS(STATIC_5489(java.lang.Object(ARRAY(i800)))), i476, java.lang.Object(ARRAY(i800)), i476, i518) -> f5495_0_HeapSort_ArrayAccess(EOS(STATIC_5495(java.lang.Object(ARRAY(i800)))), i476, java.lang.Object(ARRAY(i800)), i476, i518) :|: TRUE 13.06/4.37 f5495_0_HeapSort_ArrayAccess(EOS(STATIC_5495(java.lang.Object(ARRAY(i800)))), i476, java.lang.Object(ARRAY(i800)), i476, i518) -> f5503_0_HeapSort_Inc(EOS(STATIC_5503(java.lang.Object(ARRAY(i800)))), i476) :|: i476 < i800 13.06/4.37 f5503_0_HeapSort_Inc(EOS(STATIC_5503(java.lang.Object(ARRAY(i800)))), i476) -> f5512_0_HeapSort_JMP(EOS(STATIC_5512(java.lang.Object(ARRAY(i800)))), i476 + -1) :|: TRUE 13.06/4.37 f5512_0_HeapSort_JMP(EOS(STATIC_5512(java.lang.Object(ARRAY(i800)))), i858) -> f5517_0_HeapSort_Load(EOS(STATIC_5517(java.lang.Object(ARRAY(i800)))), i858) :|: TRUE 13.06/4.37 f5517_0_HeapSort_Load(EOS(STATIC_5517(java.lang.Object(ARRAY(i800)))), i858) -> f3558_0_HeapSort_Load(EOS(STATIC_3558(java.lang.Object(ARRAY(i800)))), i858) :|: TRUE 13.06/4.37 f3558_0_HeapSort_Load(EOS(STATIC_3558(java.lang.Object(ARRAY(i418)))), i467) -> f3617_0_HeapSort_LT(EOS(STATIC_3617(java.lang.Object(ARRAY(i418)))), i467, i467) :|: TRUE 13.06/4.37 f4174_1_Supprimer_FieldAccess(EOS(STATIC_4174(java.lang.Object(ARRAY(i477)))), i476, i518) -> f5813_0_Supprimer_Return(EOS(STATIC_5813(java.lang.Object(ARRAY(i1097)))), i476, i518) :|: TRUE 13.06/4.37 Combined rules. Obtained 2 IRulesP rules: 13.06/4.37 f5813_0_Supprimer_Return(EOS(STATIC_5813(java.lang.Object(ARRAY(i1097:0)))), i476:0, i518:0) -> f5813_0_Supprimer_Return(EOS(STATIC_5813(java.lang.Object(ARRAY(i1097:1)))), i476:0 - 1, i518:1) :|: i476:0 > 0 && i1097:0 > 0 && i476:0 < i1097:0 && i476:0 - 1 < i1097:0 13.06/4.37 Removed following non-SCC rules: 13.06/4.37 f5813_0_Supprimer_Return(EOS(STATIC_5813(java.lang.Object(ARRAY(i1097:0)))), i476:0, i518:0) -> f6250_0_Supprimer_FieldAccess(EOS(STATIC_6250(java.lang.Object(ARRAY(i1097:0))))) :|: i476:0 > 0 && i1097:0 > 0 && i476:0 < i1097:0 && i476:0 - 1 < i1097:0 13.06/4.37 Filtered unneeded arguments: 13.06/4.37 f5813_0_Supprimer_Return(x1, x2, x3) -> f5813_0_Supprimer_Return(x1, x2) 13.06/4.37 Finished conversion. Obtained 1 rules.P rules: 13.06/4.37 f5813_0_Supprimer_Return(i476:0, i1097:0) -> f5813_0_Supprimer_Return(i476:0 - 1, i1097:1) :|: i1097:0 > 0 && i476:0 > 0 && i476:0 - 1 < i1097:0 && i476:0 < i1097:0 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (37) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5813_0_Supprimer_Return(i476:0, i1097:0) -> f5813_0_Supprimer_Return(i476:0 - 1, i1097:1) :|: i1097:0 > 0 && i476:0 > 0 && i476:0 - 1 < i1097:0 && i476:0 < i1097:0 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (38) IRSFormatTransformerProof (EQUIVALENT) 13.06/4.37 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (39) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5813_0_Supprimer_Return(i476:0, i1097:0) -> f5813_0_Supprimer_Return(arith, i1097:1) :|: i1097:0 > 0 && i476:0 > 0 && i476:0 - 1 < i1097:0 && i476:0 < i1097:0 && arith = i476:0 - 1 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (40) IRSwTTerminationDigraphProof (EQUIVALENT) 13.06/4.37 Constructed termination digraph! 13.06/4.37 Nodes: 13.06/4.37 (1) f5813_0_Supprimer_Return(i476:0, i1097:0) -> f5813_0_Supprimer_Return(arith, i1097:1) :|: i1097:0 > 0 && i476:0 > 0 && i476:0 - 1 < i1097:0 && i476:0 < i1097:0 && arith = i476:0 - 1 13.06/4.37 13.06/4.37 Arcs: 13.06/4.37 (1) -> (1) 13.06/4.37 13.06/4.37 This digraph is fully evaluated! 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (41) 13.06/4.37 Obligation: 13.06/4.37 13.06/4.37 Termination digraph: 13.06/4.37 Nodes: 13.06/4.37 (1) f5813_0_Supprimer_Return(i476:0, i1097:0) -> f5813_0_Supprimer_Return(arith, i1097:1) :|: i1097:0 > 0 && i476:0 > 0 && i476:0 - 1 < i1097:0 && i476:0 < i1097:0 && arith = i476:0 - 1 13.06/4.37 13.06/4.37 Arcs: 13.06/4.37 (1) -> (1) 13.06/4.37 13.06/4.37 This digraph is fully evaluated! 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (42) IntTRSCompressionProof (EQUIVALENT) 13.06/4.37 Compressed rules. 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (43) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5813_0_Supprimer_Return(i476:0:0, i1097:0:0) -> f5813_0_Supprimer_Return(i476:0:0 - 1, i1097:1:0) :|: i476:0:0 - 1 < i1097:0:0 && i476:0:0 < i1097:0:0 && i476:0:0 > 0 && i1097:0:0 > 0 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (44) TempFilterProof (SOUND) 13.06/4.37 Used the following sort dictionary for filtering: 13.06/4.37 f5813_0_Supprimer_Return(INTEGER, VARIABLE) 13.06/4.37 Replaced non-predefined constructor symbols by 0. 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (45) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5813_0_Supprimer_Return(i476:0:0, i1097:0:0) -> f5813_0_Supprimer_Return(c, i1097:1:0) :|: c = i476:0:0 - 1 && (i476:0:0 - 1 < i1097:0:0 && i476:0:0 < i1097:0:0 && i476:0:0 > 0 && i1097:0:0 > 0) 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (46) RankingReductionPairProof (EQUIVALENT) 13.06/4.37 Interpretation: 13.06/4.37 [ f5813_0_Supprimer_Return ] = f5813_0_Supprimer_Return_1 13.06/4.37 13.06/4.37 The following rules are decreasing: 13.06/4.37 f5813_0_Supprimer_Return(i476:0:0, i1097:0:0) -> f5813_0_Supprimer_Return(c, i1097:1:0) :|: c = i476:0:0 - 1 && (i476:0:0 - 1 < i1097:0:0 && i476:0:0 < i1097:0:0 && i476:0:0 > 0 && i1097:0:0 > 0) 13.06/4.37 13.06/4.37 The following rules are bounded: 13.06/4.37 f5813_0_Supprimer_Return(i476:0:0, i1097:0:0) -> f5813_0_Supprimer_Return(c, i1097:1:0) :|: c = i476:0:0 - 1 && (i476:0:0 - 1 < i1097:0:0 && i476:0:0 < i1097:0:0 && i476:0:0 > 0 && i1097:0:0 > 0) 13.06/4.37 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (47) 13.06/4.37 YES 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (48) 13.06/4.37 Obligation: 13.06/4.37 SCC of termination graph based on JBC Program. 13.06/4.37 SCC contains nodes from the following methods: TriTas.HeapSort()V 13.06/4.37 SCC calls the following helper methods: TriTas.Ajouter(I)V 13.06/4.37 Performed SCC analyses: 13.06/4.37 *Used field analysis yielded the following read fields: 13.06/4.37 13.06/4.37 *Marker field analysis yielded the following relations that could be markers: 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (49) SCCToIRSProof (SOUND) 13.06/4.37 Transformed FIGraph SCCs to intTRSs. Log: 13.06/4.37 Generated rules. Obtained 17 IRulesP rules: 13.06/4.37 f3297_0_HeapSort_FieldAccess(EOS(STATIC_3297(i418, java.lang.Object(ARRAY(i418)))), i420, i420) -> f3324_0_HeapSort_GE(EOS(STATIC_3324(i418, java.lang.Object(ARRAY(i418)))), i420, i420, i418) :|: TRUE 13.06/4.37 f3324_0_HeapSort_GE(EOS(STATIC_3324(i418, java.lang.Object(ARRAY(i418)))), i420, i420, i418) -> f3404_0_HeapSort_GE(EOS(STATIC_3404(i418, java.lang.Object(ARRAY(i418)))), i420, i420, i418) :|: i420 < i418 13.06/4.37 f3404_0_HeapSort_GE(EOS(STATIC_3404(i418, java.lang.Object(ARRAY(i418)))), i420, i420, i418) -> f3435_0_HeapSort_FieldAccess(EOS(STATIC_3435(i418, java.lang.Object(ARRAY(i418)))), i420) :|: i420 < i418 13.06/4.37 f3435_0_HeapSort_FieldAccess(EOS(STATIC_3435(i418, java.lang.Object(ARRAY(i418)))), i420) -> f3460_0_HeapSort_Load(EOS(STATIC_3460(i418, java.lang.Object(ARRAY(i418)))), i420, java.lang.Object(ARRAY(i418))) :|: TRUE 13.06/4.37 f3460_0_HeapSort_Load(EOS(STATIC_3460(i418, java.lang.Object(ARRAY(i418)))), i420, java.lang.Object(ARRAY(i418))) -> f3518_0_HeapSort_ArrayAccess(EOS(STATIC_3518(i418, java.lang.Object(ARRAY(i418)))), i420, java.lang.Object(ARRAY(i418)), i420) :|: TRUE 13.06/4.37 f3518_0_HeapSort_ArrayAccess(EOS(STATIC_3518(i418, java.lang.Object(ARRAY(i418)))), i420, java.lang.Object(ARRAY(i418)), i420) -> f3539_0_HeapSort_ArrayAccess(EOS(STATIC_3539(i418, java.lang.Object(ARRAY(i418)))), i420, java.lang.Object(ARRAY(i418)), i420) :|: TRUE 13.06/4.37 f3539_0_HeapSort_ArrayAccess(EOS(STATIC_3539(i418, java.lang.Object(ARRAY(i418)))), i420, java.lang.Object(ARRAY(i418)), i420) -> f3559_0_HeapSort_InvokeMethod(EOS(STATIC_3559(i418, java.lang.Object(ARRAY(i418)))), i420, i471) :|: i420 < i418 13.06/4.37 f3559_0_HeapSort_InvokeMethod(EOS(STATIC_3559(i418, java.lang.Object(ARRAY(i418)))), i420, i471) -> f3619_0_Ajouter_FieldAccess(EOS(STATIC_3619(i418, java.lang.Object(ARRAY(i418)))), i471, i471) :|: i418 >= 1 && i420 < i418 13.06/4.37 f3559_0_HeapSort_InvokeMethod(EOS(STATIC_3559(i418, java.lang.Object(ARRAY(i418)))), i420, i471) -> f3619_1_Ajouter_FieldAccess(EOS(STATIC_3619(i418, java.lang.Object(ARRAY(i418)))), i420, i471) :|: i418 >= 1 && i420 < i418 13.06/4.37 f3619_0_Ajouter_FieldAccess(EOS(STATIC_3619(i418, java.lang.Object(ARRAY(i418)))), i471, i471) -> f6846_0_Ajouter_FieldAccess(EOS(STATIC_6846(i418, java.lang.Object(ARRAY(i418)))), i471, i471) :|: TRUE 13.06/4.37 f5281_0_Ajouter_Return(EOS(STATIC_5281(i724, java.lang.Object(ARRAY(i724)))), i420) -> f4673_0_Ajouter_Return(EOS(STATIC_4673(i724, java.lang.Object(ARRAY(i724)))), i420) :|: TRUE 13.06/4.37 f4673_0_Ajouter_Return(EOS(STATIC_4673(i589, java.lang.Object(ARRAY(i589)))), i420) -> f4683_0_HeapSort_Inc(EOS(STATIC_4683(i589, java.lang.Object(ARRAY(i589)))), i420) :|: TRUE 13.06/4.37 f4683_0_HeapSort_Inc(EOS(STATIC_4683(i589, java.lang.Object(ARRAY(i589)))), i420) -> f4710_0_HeapSort_JMP(EOS(STATIC_4710(i589, java.lang.Object(ARRAY(i589)))), i420 + 1) :|: TRUE 13.06/4.37 f4710_0_HeapSort_JMP(EOS(STATIC_4710(i589, java.lang.Object(ARRAY(i589)))), i595) -> f4770_0_HeapSort_Load(EOS(STATIC_4770(i589, java.lang.Object(ARRAY(i589)))), i595) :|: TRUE 13.06/4.37 f4770_0_HeapSort_Load(EOS(STATIC_4770(i589, java.lang.Object(ARRAY(i589)))), i595) -> f3255_0_HeapSort_Load(EOS(STATIC_3255(i589, java.lang.Object(ARRAY(i589)))), i595) :|: TRUE 13.06/4.37 f3255_0_HeapSort_Load(EOS(STATIC_3255(i418, java.lang.Object(ARRAY(i418)))), i420) -> f3297_0_HeapSort_FieldAccess(EOS(STATIC_3297(i418, java.lang.Object(ARRAY(i418)))), i420, i420) :|: TRUE 13.06/4.37 f3619_1_Ajouter_FieldAccess(EOS(STATIC_3619(i724, java.lang.Object(ARRAY(i418)))), i420, i471) -> f5281_0_Ajouter_Return(EOS(STATIC_5281(i724, java.lang.Object(ARRAY(i724)))), i420) :|: TRUE 13.06/4.37 Combined rules. Obtained 2 IRulesP rules: 13.06/4.37 f5281_0_Ajouter_Return(EOS(STATIC_5281(i724:0, java.lang.Object(ARRAY(i724:0)))), i420:0) -> f5281_0_Ajouter_Return(EOS(STATIC_5281(i724:0, java.lang.Object(ARRAY(i724:0)))), i420:0 + 1) :|: i724:0 > i420:0 + 1 && i724:0 > 0 13.06/4.37 Removed following non-SCC rules: 13.06/4.37 f5281_0_Ajouter_Return(EOS(STATIC_5281(i724:0, java.lang.Object(ARRAY(i724:0)))), i420:0) -> f6846_0_Ajouter_FieldAccess(EOS(STATIC_6846(i724:0, java.lang.Object(ARRAY(i724:0)))), i471:0, i471:0) :|: i724:0 > i420:0 + 1 && i724:0 > 0 13.06/4.37 Finished conversion. Obtained 1 rules.P rules: 13.06/4.37 f5281_0_Ajouter_Return(i420:0, i724:0, i724:0) -> f5281_0_Ajouter_Return(i420:0 + 1, i724:0, i724:0) :|: i724:0 > i420:0 + 1 && i724:0 > 0 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (50) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5281_0_Ajouter_Return(i420:0, i724:0, i724:0) -> f5281_0_Ajouter_Return(i420:0 + 1, i724:0, i724:0) :|: i724:0 > i420:0 + 1 && i724:0 > 0 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (51) IRSFormatTransformerProof (EQUIVALENT) 13.06/4.37 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (52) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5281_0_Ajouter_Return(i420:0, i724:0, i724:0) -> f5281_0_Ajouter_Return(arith, i724:0, i724:0) :|: i724:0 > i420:0 + 1 && i724:0 > 0 && arith = i420:0 + 1 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (53) IRSwTTerminationDigraphProof (EQUIVALENT) 13.06/4.37 Constructed termination digraph! 13.06/4.37 Nodes: 13.06/4.37 (1) f5281_0_Ajouter_Return(i420:0, i724:0, i724:0) -> f5281_0_Ajouter_Return(arith, i724:0, i724:0) :|: i724:0 > i420:0 + 1 && i724:0 > 0 && arith = i420:0 + 1 13.06/4.37 13.06/4.37 Arcs: 13.06/4.37 (1) -> (1) 13.06/4.37 13.06/4.37 This digraph is fully evaluated! 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (54) 13.06/4.37 Obligation: 13.06/4.37 13.06/4.37 Termination digraph: 13.06/4.37 Nodes: 13.06/4.37 (1) f5281_0_Ajouter_Return(i420:0, i724:0, i724:0) -> f5281_0_Ajouter_Return(arith, i724:0, i724:0) :|: i724:0 > i420:0 + 1 && i724:0 > 0 && arith = i420:0 + 1 13.06/4.37 13.06/4.37 Arcs: 13.06/4.37 (1) -> (1) 13.06/4.37 13.06/4.37 This digraph is fully evaluated! 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (55) IntTRSCompressionProof (EQUIVALENT) 13.06/4.37 Compressed rules. 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (56) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5281_0_Ajouter_Return(i420:0:0, i724:0:0, i724:0:0) -> f5281_0_Ajouter_Return(i420:0:0 + 1, i724:0:0, i724:0:0) :|: i724:0:0 > i420:0:0 + 1 && i724:0:0 > 0 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (57) TempFilterProof (SOUND) 13.06/4.37 Used the following sort dictionary for filtering: 13.06/4.37 f5281_0_Ajouter_Return(INTEGER, INTEGER, INTEGER) 13.06/4.37 Replaced non-predefined constructor symbols by 0. 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (58) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f5281_0_Ajouter_Return(i420:0:0, i724:0:0, i724:0:0) -> f5281_0_Ajouter_Return(c, i724:0:0, i724:0:0) :|: c = i420:0:0 + 1 && (i724:0:0 > i420:0:0 + 1 && i724:0:0 > 0) 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (59) RankingReductionPairProof (EQUIVALENT) 13.06/4.37 Interpretation: 13.06/4.37 [ f5281_0_Ajouter_Return ] = f5281_0_Ajouter_Return_3 + -1*f5281_0_Ajouter_Return_1 13.06/4.37 13.06/4.37 The following rules are decreasing: 13.06/4.37 f5281_0_Ajouter_Return(i420:0:0, i724:0:0, i724:0:0) -> f5281_0_Ajouter_Return(c, i724:0:0, i724:0:0) :|: c = i420:0:0 + 1 && (i724:0:0 > i420:0:0 + 1 && i724:0:0 > 0) 13.06/4.37 13.06/4.37 The following rules are bounded: 13.06/4.37 f5281_0_Ajouter_Return(i420:0:0, i724:0:0, i724:0:0) -> f5281_0_Ajouter_Return(c, i724:0:0, i724:0:0) :|: c = i420:0:0 + 1 && (i724:0:0 > i420:0:0 + 1 && i724:0:0 > 0) 13.06/4.37 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (60) 13.06/4.37 YES 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (61) 13.06/4.37 Obligation: 13.06/4.37 SCC of termination graph based on JBC Program. 13.06/4.37 SCC contains nodes from the following methods: TriTas.main([Ljava/lang/String;)V 13.06/4.37 SCC calls the following helper methods: 13.06/4.37 Performed SCC analyses: 13.06/4.37 *Used field analysis yielded the following read fields: 13.06/4.37 *java.lang.String: [count] 13.06/4.37 *Marker field analysis yielded the following relations that could be markers: 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (62) SCCToIRSProof (SOUND) 13.06/4.37 Transformed FIGraph SCCs to intTRSs. Log: 13.06/4.37 Generated rules. Obtained 45 IRulesP rules: 13.06/4.37 f1928_0_main_FieldAccess(EOS(STATIC_1928(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, i245) -> f1941_0_main_GE(EOS(STATIC_1941(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, i245, i243) :|: TRUE 13.06/4.37 f1941_0_main_GE(EOS(STATIC_1941(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, i245, i243) -> f1972_0_main_GE(EOS(STATIC_1972(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, i245, i243) :|: i245 < i243 13.06/4.37 f1972_0_main_GE(EOS(STATIC_1972(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, i245, i243) -> f2042_0_main_FieldAccess(EOS(STATIC_2042(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245) :|: i245 < i243 13.06/4.37 f2042_0_main_FieldAccess(EOS(STATIC_2042(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245) -> f2053_0_main_Load(EOS(STATIC_2053(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243))) :|: TRUE 13.06/4.37 f2053_0_main_Load(EOS(STATIC_2053(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243))) -> f2069_0_main_InvokeMethod(EOS(STATIC_2069(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245) :|: TRUE 13.06/4.37 f2069_0_main_InvokeMethod(EOS(STATIC_2069(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245) -> f2118_0_random_FieldAccess(EOS(STATIC_2118(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245) :|: TRUE 13.06/4.37 f2118_0_random_FieldAccess(EOS(STATIC_2118(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245) -> f2184_0_random_FieldAccess(EOS(STATIC_2184(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i244) :|: TRUE 13.06/4.37 f2184_0_random_FieldAccess(EOS(STATIC_2184(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i244) -> f2308_0_random_ArrayLength(EOS(STATIC_2308(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i244, java.lang.Object(ARRAY(i243))) :|: TRUE 13.06/4.37 f2308_0_random_ArrayLength(EOS(STATIC_2308(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i244, java.lang.Object(ARRAY(i243))) -> f2321_0_random_LT(EOS(STATIC_2321(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i244, i243) :|: i243 >= 0 13.06/4.37 f2321_0_random_LT(EOS(STATIC_2321(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i244, i243) -> f2346_0_random_LT(EOS(STATIC_2346(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i244, i243) :|: i244 < i243 13.06/4.37 f2321_0_random_LT(EOS(STATIC_2321(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i244, i243) -> f2347_0_random_LT(EOS(STATIC_2347(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i244, i243) :|: i244 >= i243 13.06/4.37 f2346_0_random_LT(EOS(STATIC_2346(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i244, i243) -> f2362_0_random_FieldAccess(EOS(STATIC_2362(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245) :|: i244 < i243 13.06/4.37 f2362_0_random_FieldAccess(EOS(STATIC_2362(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245) -> f2390_0_random_FieldAccess(EOS(STATIC_2390(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243))) :|: TRUE 13.06/4.37 f2390_0_random_FieldAccess(EOS(STATIC_2390(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243))) -> f2409_0_random_ArrayAccess(EOS(STATIC_2409(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i244) :|: TRUE 13.06/4.37 f2409_0_random_ArrayAccess(EOS(STATIC_2409(java.lang.Object(ARRAY(i243)), i306, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i306) -> f2420_0_random_ArrayAccess(EOS(STATIC_2420(java.lang.Object(ARRAY(i243)), i306, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i306) :|: TRUE 13.06/4.37 f2420_0_random_ArrayAccess(EOS(STATIC_2420(java.lang.Object(ARRAY(i243)), i306, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i306) -> f2468_0_random_ArrayAccess(EOS(STATIC_2468(java.lang.Object(ARRAY(i243)), i306, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i306) :|: TRUE 13.06/4.37 f2468_0_random_ArrayAccess(EOS(STATIC_2468(java.lang.Object(ARRAY(i243)), i306, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i306) -> f2492_0_random_Store(EOS(STATIC_2492(java.lang.Object(ARRAY(i243)), i306, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, o144) :|: TRUE 13.06/4.37 f2492_0_random_Store(EOS(STATIC_2492(java.lang.Object(ARRAY(i243)), i306, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, o144) -> f2523_0_random_FieldAccess(EOS(STATIC_2523(java.lang.Object(ARRAY(i243)), i306, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, o144) :|: TRUE 13.06/4.37 f2523_0_random_FieldAccess(EOS(STATIC_2523(java.lang.Object(ARRAY(i243)), i306, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, o144) -> f2551_0_random_ConstantStackPush(EOS(STATIC_2551(java.lang.Object(ARRAY(i243)), i306, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, o144, i306) :|: TRUE 13.06/4.37 f2551_0_random_ConstantStackPush(EOS(STATIC_2551(java.lang.Object(ARRAY(i243)), i306, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, o144, i306) -> f2573_0_random_IntArithmetic(EOS(STATIC_2573(java.lang.Object(ARRAY(i243)), i306, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, o144, i306, 1) :|: TRUE 13.06/4.37 f2573_0_random_IntArithmetic(EOS(STATIC_2573(java.lang.Object(ARRAY(i243)), i306, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, o144, i306, matching1) -> f2584_0_random_FieldAccess(EOS(STATIC_2584(java.lang.Object(ARRAY(i243)), i306, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, o144, i306 + 1) :|: i306 >= 0 && matching1 = 1 13.06/4.37 f2584_0_random_FieldAccess(EOS(STATIC_2584(java.lang.Object(ARRAY(i243)), i306, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, o144, i337) -> f2601_0_random_Load(EOS(STATIC_2601(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, o144) :|: TRUE 13.06/4.37 f2601_0_random_Load(EOS(STATIC_2601(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, o144) -> f2615_0_random_InvokeMethod(EOS(STATIC_2615(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, o144) :|: TRUE 13.06/4.37 f2615_0_random_InvokeMethod(EOS(STATIC_2615(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(o146sub)) -> f2621_0_random_InvokeMethod(EOS(STATIC_2621(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(o146sub)) :|: TRUE 13.06/4.37 f2621_0_random_InvokeMethod(EOS(STATIC_2621(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(o147sub)) -> f2633_0_random_InvokeMethod(EOS(STATIC_2633(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(o147sub)) :|: TRUE 13.06/4.37 f2633_0_random_InvokeMethod(EOS(STATIC_2633(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(o147sub)) -> f2642_0_length_Load(EOS(STATIC_2642(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(o147sub)) :|: TRUE 13.06/4.37 f2642_0_length_Load(EOS(STATIC_2642(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(o147sub)) -> f2656_0_length_FieldAccess(EOS(STATIC_2656(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(o147sub)) :|: TRUE 13.06/4.37 f2656_0_length_FieldAccess(EOS(STATIC_2656(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(java.lang.String(EOC, i353))) -> f2669_0_length_FieldAccess(EOS(STATIC_2669(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(java.lang.String(EOC, i353))) :|: i353 >= 0 13.06/4.37 f2669_0_length_FieldAccess(EOS(STATIC_2669(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, java.lang.Object(java.lang.String(EOC, i353))) -> f2676_0_length_Return(EOS(STATIC_2676(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i353) :|: TRUE 13.06/4.37 f2676_0_length_Return(EOS(STATIC_2676(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i353) -> f2718_0_random_Return(EOS(STATIC_2718(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i353) :|: TRUE 13.06/4.37 f2718_0_random_Return(EOS(STATIC_2718(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i353) -> f2922_0_main_ArrayAccess(EOS(STATIC_2922(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i353) :|: TRUE 13.06/4.37 f2922_0_main_ArrayAccess(EOS(STATIC_2922(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i353) -> f2974_0_main_ArrayAccess(EOS(STATIC_2974(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i353) :|: TRUE 13.06/4.37 f2974_0_main_ArrayAccess(EOS(STATIC_2974(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i353) -> f3062_0_main_Inc(EOS(STATIC_3062(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245) :|: i245 < i243 13.06/4.37 f3062_0_main_Inc(EOS(STATIC_3062(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245) -> f3116_0_main_JMP(EOS(STATIC_3116(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245 + 1) :|: TRUE 13.06/4.37 f3116_0_main_JMP(EOS(STATIC_3116(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i398) -> f3167_0_main_Load(EOS(STATIC_3167(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i398) :|: TRUE 13.06/4.37 f3167_0_main_Load(EOS(STATIC_3167(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i398) -> f1913_0_main_Load(EOS(STATIC_1913(java.lang.Object(ARRAY(i243)), i337, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i398) :|: TRUE 13.06/4.37 f1913_0_main_Load(EOS(STATIC_1913(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245) -> f1928_0_main_FieldAccess(EOS(STATIC_1928(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, i245) :|: TRUE 13.06/4.37 f2347_0_random_LT(EOS(STATIC_2347(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, i244, i243) -> f2366_0_random_ConstantStackPush(EOS(STATIC_2366(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245) :|: i244 >= i243 13.06/4.37 f2366_0_random_ConstantStackPush(EOS(STATIC_2366(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245) -> f2392_0_random_Return(EOS(STATIC_2392(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, 0) :|: TRUE 13.06/4.37 f2392_0_random_Return(EOS(STATIC_2392(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, matching1) -> f2410_0_main_ArrayAccess(EOS(STATIC_2410(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, 0) :|: TRUE && matching1 = 0 13.06/4.37 f2410_0_main_ArrayAccess(EOS(STATIC_2410(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, matching1) -> f2424_0_main_ArrayAccess(EOS(STATIC_2424(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, 0) :|: TRUE && matching1 = 0 13.06/4.37 f2424_0_main_ArrayAccess(EOS(STATIC_2424(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245, java.lang.Object(ARRAY(i243)), i245, matching1) -> f2472_0_main_Inc(EOS(STATIC_2472(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245) :|: i245 < i243 && matching1 = 0 13.06/4.37 f2472_0_main_Inc(EOS(STATIC_2472(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245) -> f2497_0_main_JMP(EOS(STATIC_2497(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i245 + 1) :|: TRUE 13.06/4.37 f2497_0_main_JMP(EOS(STATIC_2497(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i328) -> f2542_0_main_Load(EOS(STATIC_2542(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i328) :|: TRUE 13.06/4.37 f2542_0_main_Load(EOS(STATIC_2542(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i328) -> f1913_0_main_Load(EOS(STATIC_1913(java.lang.Object(ARRAY(i243)), i244, i243, java.lang.Object(ARRAY(i243)))), java.lang.Object(ARRAY(i243)), i328) :|: TRUE 13.06/4.37 Combined rules. Obtained 2 IRulesP rules: 13.06/4.37 f1928_0_main_FieldAccess(EOS(STATIC_1928(java.lang.Object(ARRAY(i243:0)), i244:0, i243:0, java.lang.Object(ARRAY(i243:0)))), java.lang.Object(ARRAY(i243:0)), i245:0, i245:0) -> f1928_0_main_FieldAccess(EOS(STATIC_1928(java.lang.Object(ARRAY(i243:0)), i244:0, i243:0, java.lang.Object(ARRAY(i243:0)))), java.lang.Object(ARRAY(i243:0)), i245:0 + 1, i245:0 + 1) :|: i245:0 < i243:0 && i243:0 > -1 && i244:0 >= i243:0 13.06/4.37 f1928_0_main_FieldAccess(EOS(STATIC_1928(java.lang.Object(ARRAY(i243:0)), i244:0, i243:0, java.lang.Object(ARRAY(i243:0)))), java.lang.Object(ARRAY(i243:0)), i245:0, i245:0) -> f1928_0_main_FieldAccess(EOS(STATIC_1928(java.lang.Object(ARRAY(i243:0)), i244:0 + 1, i243:0, java.lang.Object(ARRAY(i243:0)))), java.lang.Object(ARRAY(i243:0)), i245:0 + 1, i245:0 + 1) :|: i245:0 < i243:0 && i243:0 > -1 && i244:0 < i243:0 && i244:0 > -1 && i353:0 > -1 13.06/4.37 Filtered duplicate arguments: 13.06/4.37 f1928_0_main_FieldAccess(x1, x2, x3, x4) -> f1928_0_main_FieldAccess(x1, x2, x4) 13.06/4.37 STATIC_1928(x1, x2, x3, x4) -> STATIC_1928(x2, x3, x4) 13.06/4.37 Finished conversion. Obtained 2 rules.P rules: 13.06/4.37 f1928_0_main_FieldAccess(java.lang.Object(ARRAY(i243:0)), i245:0, i244:0, i243:0, i243:0, i243:0) -> f1928_0_main_FieldAccess(java.lang.Object(ARRAY(i243:0)), i245:0 + 1, i244:0, i243:0, i243:0, i243:0) :|: i243:0 > -1 && i244:0 >= i243:0 && i245:0 < i243:0 13.06/4.37 f1928_0_main_FieldAccess(java.lang.Object(ARRAY(i243:0)), i245:0, i244:0, i243:0, i243:0, i243:0) -> f1928_0_main_FieldAccess(java.lang.Object(ARRAY(i243:0)), i245:0 + 1, i244:0 + 1, i243:0, i243:0, i243:0) :|: i243:0 > -1 && i245:0 < i243:0 && i244:0 < i243:0 && i353:0 > -1 && i244:0 > -1 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (63) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f1928_0_main_FieldAccess(java.lang.Object(ARRAY(i243:0)), i245:0, i244:0, i243:0, i243:0, i243:0) -> f1928_0_main_FieldAccess(java.lang.Object(ARRAY(i243:0)), i245:0 + 1, i244:0, i243:0, i243:0, i243:0) :|: i243:0 > -1 && i244:0 >= i243:0 && i245:0 < i243:0 13.06/4.37 f1928_0_main_FieldAccess(java.lang.Object(ARRAY(x)), x1, x2, x, x, x) -> f1928_0_main_FieldAccess(java.lang.Object(ARRAY(x)), x1 + 1, x2 + 1, x, x, x) :|: x > -1 && x1 < x && x2 < x && x3 > -1 && x2 > -1 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (64) IRSFormatTransformerProof (EQUIVALENT) 13.06/4.37 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (65) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f1928_0_main_FieldAccess(java.lang.Object(ARRAY(i243:0)), i245:0, i244:0, i243:0, i243:0, i243:0) -> f1928_0_main_FieldAccess(java.lang.Object(ARRAY(i243:0)), arith, i244:0, i243:0, i243:0, i243:0) :|: i243:0 > -1 && i244:0 >= i243:0 && i245:0 < i243:0 && arith = i245:0 + 1 13.06/4.37 f1928_0_main_FieldAccess(java.lang.Object(ARRAY(x4)), x5, x6, x4, x4, x4) -> f1928_0_main_FieldAccess(java.lang.Object(ARRAY(x4)), x7, x8, x4, x4, x4) :|: x4 > -1 && x5 < x4 && x6 < x4 && x9 > -1 && x6 > -1 && x7 = x5 + 1 && x8 = x6 + 1 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (66) IRSwTTerminationDigraphProof (EQUIVALENT) 13.06/4.37 Constructed termination digraph! 13.06/4.37 Nodes: 13.06/4.37 (1) f1928_0_main_FieldAccess(java.lang.Object(ARRAY(i243:0)), i245:0, i244:0, i243:0, i243:0, i243:0) -> f1928_0_main_FieldAccess(java.lang.Object(ARRAY(i243:0)), arith, i244:0, i243:0, i243:0, i243:0) :|: i243:0 > -1 && i244:0 >= i243:0 && i245:0 < i243:0 && arith = i245:0 + 1 13.06/4.37 (2) f1928_0_main_FieldAccess(java.lang.Object(ARRAY(x4)), x5, x6, x4, x4, x4) -> f1928_0_main_FieldAccess(java.lang.Object(ARRAY(x4)), x7, x8, x4, x4, x4) :|: x4 > -1 && x5 < x4 && x6 < x4 && x9 > -1 && x6 > -1 && x7 = x5 + 1 && x8 = x6 + 1 13.06/4.37 13.06/4.37 Arcs: 13.06/4.37 (1) -> (1) 13.06/4.37 (2) -> (1), (2) 13.06/4.37 13.06/4.37 This digraph is fully evaluated! 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (67) 13.06/4.37 Complex Obligation (AND) 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (68) 13.06/4.37 Obligation: 13.06/4.37 13.06/4.37 Termination digraph: 13.06/4.37 Nodes: 13.06/4.37 (1) f1928_0_main_FieldAccess(java.lang.Object(ARRAY(x4)), x5, x6, x4, x4, x4) -> f1928_0_main_FieldAccess(java.lang.Object(ARRAY(x4)), x7, x8, x4, x4, x4) :|: x4 > -1 && x5 < x4 && x6 < x4 && x9 > -1 && x6 > -1 && x7 = x5 + 1 && x8 = x6 + 1 13.06/4.37 13.06/4.37 Arcs: 13.06/4.37 (1) -> (1) 13.06/4.37 13.06/4.37 This digraph is fully evaluated! 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (69) IntTRSCompressionProof (EQUIVALENT) 13.06/4.37 Compressed rules. 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (70) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f1928_0_main_FieldAccess(java.lang.Object(ARRAY(x4:0)), x5:0, x6:0, x4:0, x4:0, x4:0) -> f1928_0_main_FieldAccess(java.lang.Object(ARRAY(x4:0)), x5:0 + 1, x6:0 + 1, x4:0, x4:0, x4:0) :|: x9:0 > -1 && x6:0 > -1 && x6:0 < x4:0 && x5:0 < x4:0 && x4:0 > -1 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (71) TempFilterProof (SOUND) 13.06/4.37 Used the following sort dictionary for filtering: 13.06/4.37 f1928_0_main_FieldAccess(VARIABLE, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER) 13.06/4.37 java.lang.Object(VARIABLE) 13.06/4.37 ARRAY(INTEGER) 13.06/4.37 Replaced non-predefined constructor symbols by 0. 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (72) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f1928_0_main_FieldAccess(c, x5:0, x6:0, x4:0, x4:0, x4:0) -> f1928_0_main_FieldAccess(c1, c2, c3, x4:0, x4:0, x4:0) :|: c3 = x6:0 + 1 && (c2 = x5:0 + 1 && (c1 = 0 && c = 0)) && (x9:0 > -1 && x6:0 > -1 && x6:0 < x4:0 && x5:0 < x4:0 && x4:0 > -1) 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (73) RankingReductionPairProof (EQUIVALENT) 13.06/4.37 Interpretation: 13.06/4.37 [ f1928_0_main_FieldAccess ] = f1928_0_main_FieldAccess_6 + -1*f1928_0_main_FieldAccess_2 13.06/4.37 13.06/4.37 The following rules are decreasing: 13.06/4.37 f1928_0_main_FieldAccess(c, x5:0, x6:0, x4:0, x4:0, x4:0) -> f1928_0_main_FieldAccess(c1, c2, c3, x4:0, x4:0, x4:0) :|: c3 = x6:0 + 1 && (c2 = x5:0 + 1 && (c1 = 0 && c = 0)) && (x9:0 > -1 && x6:0 > -1 && x6:0 < x4:0 && x5:0 < x4:0 && x4:0 > -1) 13.06/4.37 13.06/4.37 The following rules are bounded: 13.06/4.37 f1928_0_main_FieldAccess(c, x5:0, x6:0, x4:0, x4:0, x4:0) -> f1928_0_main_FieldAccess(c1, c2, c3, x4:0, x4:0, x4:0) :|: c3 = x6:0 + 1 && (c2 = x5:0 + 1 && (c1 = 0 && c = 0)) && (x9:0 > -1 && x6:0 > -1 && x6:0 < x4:0 && x5:0 < x4:0 && x4:0 > -1) 13.06/4.37 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (74) 13.06/4.37 YES 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (75) 13.06/4.37 Obligation: 13.06/4.37 13.06/4.37 Termination digraph: 13.06/4.37 Nodes: 13.06/4.37 (1) f1928_0_main_FieldAccess(java.lang.Object(ARRAY(i243:0)), i245:0, i244:0, i243:0, i243:0, i243:0) -> f1928_0_main_FieldAccess(java.lang.Object(ARRAY(i243:0)), arith, i244:0, i243:0, i243:0, i243:0) :|: i243:0 > -1 && i244:0 >= i243:0 && i245:0 < i243:0 && arith = i245:0 + 1 13.06/4.37 13.06/4.37 Arcs: 13.06/4.37 (1) -> (1) 13.06/4.37 13.06/4.37 This digraph is fully evaluated! 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (76) IntTRSCompressionProof (EQUIVALENT) 13.06/4.37 Compressed rules. 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (77) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f1928_0_main_FieldAccess(java.lang.Object(ARRAY(i243:0:0)), i245:0:0, i244:0:0, i243:0:0, i243:0:0, i243:0:0) -> f1928_0_main_FieldAccess(java.lang.Object(ARRAY(i243:0:0)), i245:0:0 + 1, i244:0:0, i243:0:0, i243:0:0, i243:0:0) :|: i243:0:0 > -1 && i244:0:0 >= i243:0:0 && i245:0:0 < i243:0:0 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (78) TempFilterProof (SOUND) 13.06/4.37 Used the following sort dictionary for filtering: 13.06/4.37 f1928_0_main_FieldAccess(VARIABLE, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER) 13.06/4.37 java.lang.Object(VARIABLE) 13.06/4.37 ARRAY(INTEGER) 13.06/4.37 Replaced non-predefined constructor symbols by 0. 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (79) 13.06/4.37 Obligation: 13.06/4.37 Rules: 13.06/4.37 f1928_0_main_FieldAccess(c, i245:0:0, i244:0:0, i243:0:0, i243:0:0, i243:0:0) -> f1928_0_main_FieldAccess(c1, c2, i244:0:0, i243:0:0, i243:0:0, i243:0:0) :|: c2 = i245:0:0 + 1 && (c1 = 0 && c = 0) && (i243:0:0 > -1 && i244:0:0 >= i243:0:0 && i245:0:0 < i243:0:0) 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (80) RankingReductionPairProof (EQUIVALENT) 13.06/4.37 Interpretation: 13.06/4.37 [ f1928_0_main_FieldAccess ] = f1928_0_main_FieldAccess_6 + -1*f1928_0_main_FieldAccess_2 13.06/4.37 13.06/4.37 The following rules are decreasing: 13.06/4.37 f1928_0_main_FieldAccess(c, i245:0:0, i244:0:0, i243:0:0, i243:0:0, i243:0:0) -> f1928_0_main_FieldAccess(c1, c2, i244:0:0, i243:0:0, i243:0:0, i243:0:0) :|: c2 = i245:0:0 + 1 && (c1 = 0 && c = 0) && (i243:0:0 > -1 && i244:0:0 >= i243:0:0 && i245:0:0 < i243:0:0) 13.06/4.37 13.06/4.37 The following rules are bounded: 13.06/4.37 f1928_0_main_FieldAccess(c, i245:0:0, i244:0:0, i243:0:0, i243:0:0, i243:0:0) -> f1928_0_main_FieldAccess(c1, c2, i244:0:0, i243:0:0, i243:0:0, i243:0:0) :|: c2 = i245:0:0 + 1 && (c1 = 0 && c = 0) && (i243:0:0 > -1 && i244:0:0 >= i243:0:0 && i245:0:0 < i243:0:0) 13.06/4.37 13.06/4.37 13.06/4.37 ---------------------------------------- 13.06/4.37 13.06/4.37 (81) 13.06/4.37 YES 13.29/4.42 EOF