(0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_20 (Apple Inc.) Main-Class: TriTas
public class TriTas {
static int N;
static int[] a;
static int nTas = 0;

static void Ajouter(int v) {
int i,j;
nTas++;
i = nTas - 1;
while (i > 0 && a[(i - 1)/2] <= v){
a[i] = a[(i - 1)/2];
j = (i - 1)/2;
if (j >= i) break; else i = j;
}
a[i] = v;
}

static int Maximum() {
return a[0];
}

static void Supprimer() {
int i, j, v;
a[0] = a[nTas - 1];
nTas--;
i = 0; v = a[0];
while (2 * i + 1 < nTas)
{
j = 2*i + 1;
if (j + 1 < nTas)
if (a[j + 1] > a[j])
j++;
if (v >= a[j]) break;
a[i] = a[j];
i = j;
}
a[i] = v;
}

static void HeapSort(){
int i, v;
nTas = 0;
for (i = 0; i < N; i++)
Ajouter(a[i]);
for (i = N - 1; i >= 0; i--)
{
v = Maximum();
Supprimer();
a[i]=v;
}
}

public static void main(String[] args){
Random.args = args;
N = args.length;
a = new int[N];
for (int i = 0; i < N; i++)
a[i] = Random.random();
//for (int i = 0; i < N; i++)
// System.out.print(a[i]+" ");
//System.out.println();
HeapSort();
//for (int i = 0; i < N; i++)
// System.out.print(a[i]+" ");
//System.out.println();
}
}

public class Random {
static String[] args;
static int index = 0;

public static int random() {
if (index >= args.length)
return 0;

String string = args[index];
index++;
return string.length();
}
}


(1) JBCToGraph (SOUND transformation)

Constructed TerminationGraph.

(2) Obligation:

Termination Graph based on JBC Program:
TriTas.main([Ljava/lang/String;)V: Graph of 261 nodes with 1 SCC.

TriTas.HeapSort()V: Graph of 161 nodes with 2 SCCs.

TriTas.Ajouter(I)V: Graph of 213 nodes with 1 SCC.

TriTas.Supprimer()V: Graph of 286 nodes with 1 SCC.


(3) TerminationGraphToSCCProof (SOUND transformation)

Splitted TerminationGraph to 5 SCCss.

(4) Complex Obligation (AND)

(5) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: TriTas.Supprimer()V
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

(6) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 61 rules for P and 0 rules for R.


P rules:
5312_0_Supprimer_Load(EOS(STATIC_5312(i1198)), i1775, i1132, matching1) → 5313_0_Supprimer_IntArithmetic(EOS(STATIC_5313(i1198)), i1775, i1132, 2, i1775) | =(matching1, 2)
5313_0_Supprimer_IntArithmetic(EOS(STATIC_5313(i1198)), i1775, i1132, matching1, i1775) → 5314_0_Supprimer_ConstantStackPush(EOS(STATIC_5314(i1198)), i1775, i1132, *(2, i1775)) | =(matching1, 2)
5314_0_Supprimer_ConstantStackPush(EOS(STATIC_5314(i1198)), i1775, i1132, i1777) → 5316_0_Supprimer_IntArithmetic(EOS(STATIC_5316(i1198)), i1775, i1132, i1777, 1)
5316_0_Supprimer_IntArithmetic(EOS(STATIC_5316(i1198)), i1775, i1132, i1777, matching1) → 5317_0_Supprimer_FieldAccess(EOS(STATIC_5317(i1198)), i1775, i1132, +(i1777, 1)) | &&(>=(i1777, 0), =(matching1, 1))
5317_0_Supprimer_FieldAccess(EOS(STATIC_5317(i1198)), i1775, i1132, i1778) → 5318_0_Supprimer_GE(EOS(STATIC_5318(i1198)), i1775, i1132, i1778, i1198)
5318_0_Supprimer_GE(EOS(STATIC_5318(i1198)), i1775, i1132, i1778, i1198) → 5320_0_Supprimer_GE(EOS(STATIC_5320(i1198)), i1775, i1132, i1778, i1198)
5320_0_Supprimer_GE(EOS(STATIC_5320(i1198)), i1775, i1132, i1778, i1198) → 5323_0_Supprimer_ConstantStackPush(EOS(STATIC_5323(i1198)), i1775, i1132) | <(i1778, i1198)
5323_0_Supprimer_ConstantStackPush(EOS(STATIC_5323(i1198)), i1775, i1132) → 5325_0_Supprimer_Load(EOS(STATIC_5325(i1198)), i1775, i1132, 2)
5325_0_Supprimer_Load(EOS(STATIC_5325(i1198)), i1775, i1132, matching1) → 5328_0_Supprimer_IntArithmetic(EOS(STATIC_5328(i1198)), i1775, i1132, 2, i1775) | =(matching1, 2)
5328_0_Supprimer_IntArithmetic(EOS(STATIC_5328(i1198)), i1775, i1132, matching1, i1775) → 5330_0_Supprimer_ConstantStackPush(EOS(STATIC_5330(i1198)), i1775, i1132, *(2, i1775)) | =(matching1, 2)
5330_0_Supprimer_ConstantStackPush(EOS(STATIC_5330(i1198)), i1775, i1132, i1779) → 5334_0_Supprimer_IntArithmetic(EOS(STATIC_5334(i1198)), i1775, i1132, i1779, 1)
5334_0_Supprimer_IntArithmetic(EOS(STATIC_5334(i1198)), i1775, i1132, i1779, matching1) → 5338_0_Supprimer_Store(EOS(STATIC_5338(i1198)), i1775, i1132, +(i1779, 1)) | &&(>=(i1779, 0), =(matching1, 1))
5338_0_Supprimer_Store(EOS(STATIC_5338(i1198)), i1775, i1132, i1780) → 5340_0_Supprimer_Load(EOS(STATIC_5340(i1198)), i1775, i1780, i1132)
5340_0_Supprimer_Load(EOS(STATIC_5340(i1198)), i1775, i1780, i1132) → 5345_0_Supprimer_ConstantStackPush(EOS(STATIC_5345(i1198)), i1775, i1780, i1132, i1780)
5345_0_Supprimer_ConstantStackPush(EOS(STATIC_5345(i1198)), i1775, i1780, i1132, i1780) → 5349_0_Supprimer_IntArithmetic(EOS(STATIC_5349(i1198)), i1775, i1780, i1132, i1780, 1)
5349_0_Supprimer_IntArithmetic(EOS(STATIC_5349(i1198)), i1775, i1780, i1132, i1780, matching1) → 5350_0_Supprimer_FieldAccess(EOS(STATIC_5350(i1198)), i1775, i1780, i1132, +(i1780, 1)) | &&(>(i1780, 0), =(matching1, 1))
5350_0_Supprimer_FieldAccess(EOS(STATIC_5350(i1198)), i1775, i1780, i1132, i1791) → 5353_0_Supprimer_GE(EOS(STATIC_5353(i1198)), i1775, i1780, i1132, i1791, i1198)
5353_0_Supprimer_GE(EOS(STATIC_5353(i1198)), i1775, i1780, i1132, i1791, i1198) → 5355_0_Supprimer_GE(EOS(STATIC_5355(i1198)), i1775, i1780, i1132, i1791, i1198)
5353_0_Supprimer_GE(EOS(STATIC_5353(i1198)), i1775, i1780, i1132, i1791, i1198) → 5356_0_Supprimer_GE(EOS(STATIC_5356(i1198)), i1775, i1780, i1132, i1791, i1198)
5355_0_Supprimer_GE(EOS(STATIC_5355(i1198)), i1775, i1780, i1132, i1791, i1198) → 5358_0_Supprimer_Load(EOS(STATIC_5358(i1198)), i1775, i1780, i1132) | >=(i1791, i1198)
5358_0_Supprimer_Load(EOS(STATIC_5358(i1198)), i1775, i1780, i1132) → 5431_0_Supprimer_Load(EOS(STATIC_5431(i1198)), i1775, i1780, i1132)
5431_0_Supprimer_Load(EOS(STATIC_5431(i1198)), i1775, i1780, i1132) → 5440_0_Supprimer_FieldAccess(EOS(STATIC_5440(i1198)), i1775, i1780, i1132, i1132)
5440_0_Supprimer_FieldAccess(EOS(STATIC_5440(i1198)), i1775, i1780, i1132, i1132) → 5446_0_Supprimer_Load(EOS(STATIC_5446(i1198)), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)))
5446_0_Supprimer_Load(EOS(STATIC_5446(i1198)), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197))) → 5454_0_Supprimer_ArrayAccess(EOS(STATIC_5454(i1198)), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5454_0_Supprimer_ArrayAccess(EOS(STATIC_5454(i1198)), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5462_0_Supprimer_ArrayAccess(EOS(STATIC_5462(i1198)), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5462_0_Supprimer_ArrayAccess(EOS(STATIC_5462(i1198)), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5468_0_Supprimer_LT(EOS(STATIC_5468(i1198)), i1775, i1780, i1132, i1132, i1857) | <(i1780, i1197)
5468_0_Supprimer_LT(EOS(STATIC_5468(i1198)), i1775, i1780, i1132, i1132, i1857) → 5474_0_Supprimer_LT(EOS(STATIC_5474(i1198)), i1775, i1780, i1132, i1132, i1857)
5474_0_Supprimer_LT(EOS(STATIC_5474(i1198)), i1775, i1780, i1132, i1132, i1857) → 5481_0_Supprimer_FieldAccess(EOS(STATIC_5481(i1198)), i1775, i1780, i1132) | <(i1132, i1857)
5481_0_Supprimer_FieldAccess(EOS(STATIC_5481(i1198)), i1775, i1780, i1132) → 5487_0_Supprimer_Load(EOS(STATIC_5487(i1198)), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)))
5487_0_Supprimer_Load(EOS(STATIC_5487(i1198)), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197))) → 5494_0_Supprimer_FieldAccess(EOS(STATIC_5494(i1198)), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5494_0_Supprimer_FieldAccess(EOS(STATIC_5494(i1198)), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5500_0_Supprimer_Load(EOS(STATIC_5500(i1198)), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)))
5500_0_Supprimer_Load(EOS(STATIC_5500(i1198)), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197))) → 5508_0_Supprimer_ArrayAccess(EOS(STATIC_5508(i1198)), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5508_0_Supprimer_ArrayAccess(EOS(STATIC_5508(i1198)), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5514_0_Supprimer_ArrayAccess(EOS(STATIC_5514(i1198)), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5514_0_Supprimer_ArrayAccess(EOS(STATIC_5514(i1198)), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5523_0_Supprimer_ArrayAccess(EOS(STATIC_5523(i1198)), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) | <(i1780, i1197)
5523_0_Supprimer_ArrayAccess(EOS(STATIC_5523(i1198)), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5535_0_Supprimer_ArrayAccess(EOS(STATIC_5535(i1198)), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5535_0_Supprimer_ArrayAccess(EOS(STATIC_5535(i1198)), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5544_0_Supprimer_Load(EOS(STATIC_5544(i1198)), i1780, i1132) | <(i1775, i1197)
5544_0_Supprimer_Load(EOS(STATIC_5544(i1198)), i1780, i1132) → 5556_0_Supprimer_Store(EOS(STATIC_5556(i1198)), i1132, i1780)
5556_0_Supprimer_Store(EOS(STATIC_5556(i1198)), i1132, i1780) → 5569_0_Supprimer_JMP(EOS(STATIC_5569(i1198)), i1780, i1132)
5569_0_Supprimer_JMP(EOS(STATIC_5569(i1198)), i1780, i1132) → 5579_0_Supprimer_ConstantStackPush(EOS(STATIC_5579(i1198)), i1780, i1132)
5579_0_Supprimer_ConstantStackPush(EOS(STATIC_5579(i1198)), i1780, i1132) → 5308_0_Supprimer_ConstantStackPush(EOS(STATIC_5308(i1198)), i1780, i1132)
5308_0_Supprimer_ConstantStackPush(EOS(STATIC_5308(i1198)), i1775, i1132) → 5312_0_Supprimer_Load(EOS(STATIC_5312(i1198)), i1775, i1132, 2)
5356_0_Supprimer_GE(EOS(STATIC_5356(i1198)), i1775, i1780, i1132, i1791, i1198) → 5359_0_Supprimer_FieldAccess(EOS(STATIC_5359(i1198)), i1775, i1780, i1132) | <(i1791, i1198)
5359_0_Supprimer_FieldAccess(EOS(STATIC_5359(i1198)), i1775, i1780, i1132) → 5363_0_Supprimer_Load(EOS(STATIC_5363(i1198)), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)))
5363_0_Supprimer_Load(EOS(STATIC_5363(i1198)), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197))) → 5368_0_Supprimer_ConstantStackPush(EOS(STATIC_5368(i1198)), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5368_0_Supprimer_ConstantStackPush(EOS(STATIC_5368(i1198)), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5371_0_Supprimer_IntArithmetic(EOS(STATIC_5371(i1198)), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1780, 1)
5371_0_Supprimer_IntArithmetic(EOS(STATIC_5371(i1198)), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1780, matching1) → 5376_0_Supprimer_ArrayAccess(EOS(STATIC_5376(i1198)), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), +(i1780, 1)) | &&(>(i1780, 0), =(matching1, 1))
5376_0_Supprimer_ArrayAccess(EOS(STATIC_5376(i1198)), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5381_0_Supprimer_ArrayAccess(EOS(STATIC_5381(i1198)), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5381_0_Supprimer_ArrayAccess(EOS(STATIC_5381(i1198)), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5386_0_Supprimer_FieldAccess(EOS(STATIC_5386(i1198)), i1775, i1780, i1132, i1807) | <(i1804, i1197)
5386_0_Supprimer_FieldAccess(EOS(STATIC_5386(i1198)), i1775, i1780, i1132, i1807) → 5394_0_Supprimer_Load(EOS(STATIC_5394(i1198)), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)))
5394_0_Supprimer_Load(EOS(STATIC_5394(i1198)), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197))) → 5402_0_Supprimer_ArrayAccess(EOS(STATIC_5402(i1198)), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5402_0_Supprimer_ArrayAccess(EOS(STATIC_5402(i1198)), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5408_0_Supprimer_ArrayAccess(EOS(STATIC_5408(i1198)), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5408_0_Supprimer_ArrayAccess(EOS(STATIC_5408(i1198)), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5415_0_Supprimer_LE(EOS(STATIC_5415(i1198)), i1775, i1780, i1132, i1807, i1828) | <(i1780, i1197)
5415_0_Supprimer_LE(EOS(STATIC_5415(i1198)), i1775, i1780, i1132, i1807, i1828) → 5422_0_Supprimer_LE(EOS(STATIC_5422(i1198)), i1775, i1780, i1132, i1807, i1828)
5415_0_Supprimer_LE(EOS(STATIC_5415(i1198)), i1775, i1780, i1132, i1807, i1828) → 5423_0_Supprimer_LE(EOS(STATIC_5423(i1198)), i1775, i1780, i1132, i1807, i1828)
5422_0_Supprimer_LE(EOS(STATIC_5422(i1198)), i1775, i1780, i1132, i1807, i1828) → 5431_0_Supprimer_Load(EOS(STATIC_5431(i1198)), i1775, i1780, i1132) | <=(i1807, i1828)
5423_0_Supprimer_LE(EOS(STATIC_5423(i1198)), i1775, i1780, i1132, i1807, i1828) → 5433_0_Supprimer_Inc(EOS(STATIC_5433(i1198)), i1775, i1780, i1132) | >(i1807, i1828)
5433_0_Supprimer_Inc(EOS(STATIC_5433(i1198)), i1775, i1780, i1132) → 5442_0_Supprimer_Load(EOS(STATIC_5442(i1198)), i1775, +(i1780, 1), i1132) | >(i1780, 0)
5442_0_Supprimer_Load(EOS(STATIC_5442(i1198)), i1775, i1837, i1132) → 5447_0_Supprimer_FieldAccess(EOS(STATIC_5447(i1198)), i1775, i1837, i1132, i1132)
5447_0_Supprimer_FieldAccess(EOS(STATIC_5447(i1198)), i1775, i1837, i1132, i1132) → 5455_0_Supprimer_Load(EOS(STATIC_5455(i1198)), i1775, i1837, i1132, i1132, java.lang.Object(ARRAY(i1197)))
5455_0_Supprimer_Load(EOS(STATIC_5455(i1198)), i1775, i1837, i1132, i1132, java.lang.Object(ARRAY(i1197))) → 5465_0_Supprimer_ArrayAccess(EOS(STATIC_5465(i1198)), i1775, i1837, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1837)
5465_0_Supprimer_ArrayAccess(EOS(STATIC_5465(i1198)), i1775, i1837, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1837) → 5454_0_Supprimer_ArrayAccess(EOS(STATIC_5454(i1198)), i1775, i1837, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1837)
R rules:

Combined rules. Obtained 3 conditional rules for P and 0 conditional rules for R.


P rules:
5312_0_Supprimer_Load(EOS(STATIC_5312(x0)), x1, x2, 2) → 5312_0_Supprimer_Load(EOS(STATIC_5312(x0)), +(*(2, x1), 1), x2, 2) | &&(&&(>(x0, +(*(2, x1), 1)), <=(x0, +(*(2, x1), 2))), <=(0, *(2, x1)))
5312_0_Supprimer_Load(EOS(STATIC_5312(x0)), x1, x2, 2) → 5312_0_Supprimer_Load(EOS(STATIC_5312(x0)), +(*(2, x1), 1), x2, 2) | &&(&&(>(x0, +(*(2, x1), 2)), >(x0, +(*(2, x1), 1))), <=(0, *(2, x1)))
5312_0_Supprimer_Load(EOS(STATIC_5312(x0)), x1, x2, 2) → 5312_0_Supprimer_Load(EOS(STATIC_5312(x0)), +(*(2, x1), 2), x2, 2) | &&(&&(>(x0, +(*(2, x1), 2)), >(x0, +(*(2, x1), 1))), <=(0, *(2, x1)))
R rules:

Filtered ground terms:



5312_0_Supprimer_Load(x1, x2, x3, x4) → 5312_0_Supprimer_Load(x1, x2, x3)
Cond_5312_0_Supprimer_Load2(x1, x2, x3, x4, x5) → Cond_5312_0_Supprimer_Load2(x1, x2, x3, x4)
Cond_5312_0_Supprimer_Load1(x1, x2, x3, x4, x5) → Cond_5312_0_Supprimer_Load1(x1, x2, x3, x4)
Cond_5312_0_Supprimer_Load(x1, x2, x3, x4, x5) → Cond_5312_0_Supprimer_Load(x1, x2, x3, x4)

Filtered unneeded arguments:



Cond_5312_0_Supprimer_Load(x1, x2, x3, x4) → Cond_5312_0_Supprimer_Load(x1, x2, x3)
Cond_5312_0_Supprimer_Load1(x1, x2, x3, x4) → Cond_5312_0_Supprimer_Load1(x1, x2, x3)
Cond_5312_0_Supprimer_Load2(x1, x2, x3, x4) → Cond_5312_0_Supprimer_Load2(x1, x2, x3)
5312_0_Supprimer_Load(x1, x2, x3) → 5312_0_Supprimer_Load(x1, x2)

Combined rules. Obtained 3 conditional rules for P and 0 conditional rules for R.


P rules:
5312_0_Supprimer_Load(EOS(STATIC_5312(x0)), x1) → 5312_0_Supprimer_Load(EOS(STATIC_5312(x0)), +(*(2, x1), 1)) | &&(&&(>(x0, +(*(2, x1), 1)), <=(x0, +(*(2, x1), 2))), <=(0, *(2, x1)))
5312_0_Supprimer_Load(EOS(STATIC_5312(x0)), x1) → 5312_0_Supprimer_Load(EOS(STATIC_5312(x0)), +(*(2, x1), 1)) | &&(&&(>(x0, +(*(2, x1), 2)), >(x0, +(*(2, x1), 1))), <=(0, *(2, x1)))
5312_0_Supprimer_Load(EOS(STATIC_5312(x0)), x1) → 5312_0_Supprimer_Load(EOS(STATIC_5312(x0)), +(*(2, x1), 2)) | &&(&&(>(x0, +(*(2, x1), 2)), >(x0, +(*(2, x1), 1))), <=(0, *(2, x1)))
R rules:

Performed bisimulation on rules. Used the following equivalence classes: {[Cond_5312_0_Supprimer_Load1_3, Cond_5312_0_Supprimer_Load2_3]=Cond_5312_0_Supprimer_Load1_3}


Finished conversion. Obtained 5 rules for P and 0 rules for R. System has predefined symbols.


P rules:
5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0)), x1) → COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0, +(*(2, x1), 1)), <=(x0, +(*(2, x1), 2))), <=(0, *(2, x1))), EOS(STATIC_5312(x0)), x1)
COND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0)), x1) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0)), +(*(2, x1), 1))
5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0)), x1) → COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0, +(*(2, x1), 2)), >(x0, +(*(2, x1), 1))), <=(0, *(2, x1))), EOS(STATIC_5312(x0)), x1)
COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0)), x1) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0)), +(*(2, x1), 1))
COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0)), x1) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0)), +(*(2, x1), 2))
R rules:

(7) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), x1[0]) → COND_5312_0_SUPPRIMER_LOAD(x0[0] > 2 * x1[0] + 1 && x0[0] <= 2 * x1[0] + 2 && 0 <= 2 * x1[0], EOS(STATIC_5312(x0[0])), x1[0])
(1): COND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0[1])), x1[1]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), 2 * x1[1] + 1)
(2): 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2]) → COND_5312_0_SUPPRIMER_LOAD1(x0[2] > 2 * x1[2] + 2 && x0[2] > 2 * x1[2] + 1 && 0 <= 2 * x1[2], EOS(STATIC_5312(x0[2])), x1[2])
(3): COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[3])), x1[3]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), 2 * x1[3] + 1)
(4): COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[4])), x1[4]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), 2 * x1[4] + 2)

(0) -> (1), if (x0[0] > 2 * x1[0] + 1 && x0[0] <= 2 * x1[0] + 2 && 0 <= 2 * x1[0]EOS(STATIC_5312(x0[0])) →* EOS(STATIC_5312(x0[1]))∧x1[0]* x1[1])


(1) -> (0), if (EOS(STATIC_5312(x0[1])) →* EOS(STATIC_5312(x0[0]))∧2 * x1[1] + 1* x1[0])


(1) -> (2), if (EOS(STATIC_5312(x0[1])) →* EOS(STATIC_5312(x0[2]))∧2 * x1[1] + 1* x1[2])


(2) -> (3), if (x0[2] > 2 * x1[2] + 2 && x0[2] > 2 * x1[2] + 1 && 0 <= 2 * x1[2]EOS(STATIC_5312(x0[2])) →* EOS(STATIC_5312(x0[3]))∧x1[2]* x1[3])


(2) -> (4), if (x0[2] > 2 * x1[2] + 2 && x0[2] > 2 * x1[2] + 1 && 0 <= 2 * x1[2]EOS(STATIC_5312(x0[2])) →* EOS(STATIC_5312(x0[4]))∧x1[2]* x1[4])


(3) -> (0), if (EOS(STATIC_5312(x0[3])) →* EOS(STATIC_5312(x0[0]))∧2 * x1[3] + 1* x1[0])


(3) -> (2), if (EOS(STATIC_5312(x0[3])) →* EOS(STATIC_5312(x0[2]))∧2 * x1[3] + 1* x1[2])


(4) -> (0), if (EOS(STATIC_5312(x0[4])) →* EOS(STATIC_5312(x0[0]))∧2 * x1[4] + 2* x1[0])


(4) -> (2), if (EOS(STATIC_5312(x0[4])) →* EOS(STATIC_5312(x0[2]))∧2 * x1[4] + 2* x1[2])



The set Q is empty.

(8) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: false Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@505ac45e Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0)), x1) → COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0, +(*(2, x1), 1)), <=(x0, +(*(2, x1), 2))), <=(0, *(2, x1))), EOS(STATIC_5312(x0)), x1) the following chains were created:
  • We consider the chain 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), x1[0]) → COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0]), COND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0[1])), x1[1]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1)) which results in the following constraint:

    (1)    (&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0])))=TRUEEOS(STATIC_5312(x0[0]))=EOS(STATIC_5312(x0[1]))∧x1[0]=x1[1]5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), x1[0])≥NonInfC∧5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), x1[0])≥COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0])∧(UIncreasing(COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0])), ≥))



    We simplified constraint (1) using rules (I), (II), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (2)    (<=(0, *(2, x1[0]))=TRUE>(x0[0], +(*(2, x1[0]), 1))=TRUE<=(x0[0], +(*(2, x1[0]), 2))=TRUE5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), x1[0])≥NonInfC∧5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), x1[0])≥COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0])∧(UIncreasing(COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    ([2]x1[0] ≥ 0∧x0[0] + [-2] + [-2]x1[0] ≥ 0∧[2]x1[0] + [2] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0])), ≥)∧[bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x1[0] + [bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    ([2]x1[0] ≥ 0∧x0[0] + [-2] + [-2]x1[0] ≥ 0∧[2]x1[0] + [2] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0])), ≥)∧[bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x1[0] + [bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    ([2]x1[0] ≥ 0∧x0[0] + [-2] + [-2]x1[0] ≥ 0∧[2]x1[0] + [2] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0])), ≥)∧[bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x1[0] + [bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    ([2]x1[0] ≥ 0∧x0[0] ≥ 0∧[-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0])), ≥)∧[(3)bni_21 + (-1)Bound*bni_21] + [bni_21]x1[0] + [bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)



    We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (7)    ([2]x1[0] ≥ 0∧0 ≥ 0∧0 ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0])), ≥)∧[(3)bni_21 + (-1)Bound*bni_21] + [bni_21]x1[0] ≥ 0∧[(-1)bso_22] ≥ 0)



    We simplified constraint (7) using rule (IDP_POLY_GCD) which results in the following new constraint:

    (8)    (0 ≥ 0∧0 ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0])), ≥)∧[(3)bni_21 + (-1)Bound*bni_21] + [bni_21]x1[0] ≥ 0∧[(-1)bso_22] ≥ 0)







For Pair COND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0)), x1) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0)), +(*(2, x1), 1)) the following chains were created:
  • We consider the chain 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), x1[0]) → COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0]), COND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0[1])), x1[1]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1)), 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), x1[0]) → COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0]) which results in the following constraint:

    (9)    (&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0])))=TRUEEOS(STATIC_5312(x0[0]))=EOS(STATIC_5312(x0[1]))∧x1[0]=x1[1]EOS(STATIC_5312(x0[1]))=EOS(STATIC_5312(x0[0]1))∧+(*(2, x1[1]), 1)=x1[0]1COND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0[1])), x1[1])≥NonInfC∧COND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0[1])), x1[1])≥5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))∧(UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥))



    We simplified constraint (9) using rules (I), (II), (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (10)    (<=(0, *(2, x1[0]))=TRUE>(x0[0], +(*(2, x1[0]), 1))=TRUE<=(x0[0], +(*(2, x1[0]), 2))=TRUECOND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0[0])), x1[0])≥NonInfC∧COND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0[0])), x1[0])≥5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), +(*(2, x1[0]), 1))∧(UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥))



    We simplified constraint (10) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (11)    ([2]x1[0] ≥ 0∧x0[0] + [-2] + [-2]x1[0] ≥ 0∧[2]x1[0] + [2] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥)∧[bni_23 + (-1)Bound*bni_23] + [(-1)bni_23]x1[0] + [bni_23]x0[0] ≥ 0∧[1 + (-1)bso_24] + x1[0] ≥ 0)



    We simplified constraint (11) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (12)    ([2]x1[0] ≥ 0∧x0[0] + [-2] + [-2]x1[0] ≥ 0∧[2]x1[0] + [2] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥)∧[bni_23 + (-1)Bound*bni_23] + [(-1)bni_23]x1[0] + [bni_23]x0[0] ≥ 0∧[1 + (-1)bso_24] + x1[0] ≥ 0)



    We simplified constraint (12) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (13)    ([2]x1[0] ≥ 0∧x0[0] + [-2] + [-2]x1[0] ≥ 0∧[2]x1[0] + [2] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥)∧[bni_23 + (-1)Bound*bni_23] + [(-1)bni_23]x1[0] + [bni_23]x0[0] ≥ 0∧[1 + (-1)bso_24] + x1[0] ≥ 0)



    We simplified constraint (13) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (14)    ([2]x1[0] ≥ 0∧x0[0] ≥ 0∧[-1]x0[0] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥)∧[(3)bni_23 + (-1)Bound*bni_23] + [bni_23]x1[0] + [bni_23]x0[0] ≥ 0∧[1 + (-1)bso_24] + x1[0] ≥ 0)



    We simplified constraint (14) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (15)    ([2]x1[0] ≥ 0∧0 ≥ 0∧0 ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥)∧[(3)bni_23 + (-1)Bound*bni_23] + [bni_23]x1[0] ≥ 0∧[1 + (-1)bso_24] + x1[0] ≥ 0)



    We simplified constraint (15) using rule (IDP_POLY_GCD) which results in the following new constraint:

    (16)    (0 ≥ 0∧0 ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥)∧[(3)bni_23 + (-1)Bound*bni_23] + [bni_23]x1[0] ≥ 0∧[1 + (-1)bso_24] + x1[0] ≥ 0)



  • We consider the chain 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), x1[0]) → COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0]), COND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0[1])), x1[1]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1)), 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2]) → COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2]) which results in the following constraint:

    (17)    (&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0])))=TRUEEOS(STATIC_5312(x0[0]))=EOS(STATIC_5312(x0[1]))∧x1[0]=x1[1]EOS(STATIC_5312(x0[1]))=EOS(STATIC_5312(x0[2]))∧+(*(2, x1[1]), 1)=x1[2]COND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0[1])), x1[1])≥NonInfC∧COND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0[1])), x1[1])≥5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))∧(UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥))



    We simplified constraint (17) using rules (I), (II), (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (18)    (<=(0, *(2, x1[0]))=TRUE>(x0[0], +(*(2, x1[0]), 1))=TRUE<=(x0[0], +(*(2, x1[0]), 2))=TRUECOND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0[0])), x1[0])≥NonInfC∧COND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0[0])), x1[0])≥5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), +(*(2, x1[0]), 1))∧(UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥))



    We simplified constraint (18) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (19)    ([2]x1[0] ≥ 0∧x0[0] + [-2] + [-2]x1[0] ≥ 0∧[2]x1[0] + [2] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥)∧[bni_23 + (-1)Bound*bni_23] + [(-1)bni_23]x1[0] + [bni_23]x0[0] ≥ 0∧[1 + (-1)bso_24] + x1[0] ≥ 0)



    We simplified constraint (19) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (20)    ([2]x1[0] ≥ 0∧x0[0] + [-2] + [-2]x1[0] ≥ 0∧[2]x1[0] + [2] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥)∧[bni_23 + (-1)Bound*bni_23] + [(-1)bni_23]x1[0] + [bni_23]x0[0] ≥ 0∧[1 + (-1)bso_24] + x1[0] ≥ 0)



    We simplified constraint (20) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (21)    ([2]x1[0] ≥ 0∧x0[0] + [-2] + [-2]x1[0] ≥ 0∧[2]x1[0] + [2] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥)∧[bni_23 + (-1)Bound*bni_23] + [(-1)bni_23]x1[0] + [bni_23]x0[0] ≥ 0∧[1 + (-1)bso_24] + x1[0] ≥ 0)



    We simplified constraint (21) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (22)    ([2]x1[0] ≥ 0∧x0[0] ≥ 0∧[-1]x0[0] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥)∧[(3)bni_23 + (-1)Bound*bni_23] + [bni_23]x1[0] + [bni_23]x0[0] ≥ 0∧[1 + (-1)bso_24] + x1[0] ≥ 0)



    We simplified constraint (22) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (23)    ([2]x1[0] ≥ 0∧0 ≥ 0∧0 ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥)∧[(3)bni_23 + (-1)Bound*bni_23] + [bni_23]x1[0] ≥ 0∧[1 + (-1)bso_24] + x1[0] ≥ 0)



    We simplified constraint (23) using rule (IDP_POLY_GCD) which results in the following new constraint:

    (24)    (0 ≥ 0∧0 ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥)∧[(3)bni_23 + (-1)Bound*bni_23] + [bni_23]x1[0] ≥ 0∧[1 + (-1)bso_24] + x1[0] ≥ 0)







For Pair 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0)), x1) → COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0, +(*(2, x1), 2)), >(x0, +(*(2, x1), 1))), <=(0, *(2, x1))), EOS(STATIC_5312(x0)), x1) the following chains were created:
  • We consider the chain 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2]) → COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2]), COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[3])), x1[3]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1)) which results in the following constraint:

    (25)    (&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2])))=TRUEEOS(STATIC_5312(x0[2]))=EOS(STATIC_5312(x0[3]))∧x1[2]=x1[3]5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2])≥NonInfC∧5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2])≥COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])∧(UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥))



    We simplified constraint (25) using rules (I), (II), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (26)    (<=(0, *(2, x1[2]))=TRUE>(x0[2], +(*(2, x1[2]), 2))=TRUE>(x0[2], +(*(2, x1[2]), 1))=TRUE5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2])≥NonInfC∧5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2])≥COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])∧(UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥))



    We simplified constraint (26) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (27)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥)∧[bni_25 + (-1)Bound*bni_25] + [(-1)bni_25]x1[2] + [bni_25]x0[2] ≥ 0∧[(-1)bso_26] ≥ 0)



    We simplified constraint (27) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (28)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥)∧[bni_25 + (-1)Bound*bni_25] + [(-1)bni_25]x1[2] + [bni_25]x0[2] ≥ 0∧[(-1)bso_26] ≥ 0)



    We simplified constraint (28) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (29)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥)∧[bni_25 + (-1)Bound*bni_25] + [(-1)bni_25]x1[2] + [bni_25]x0[2] ≥ 0∧[(-1)bso_26] ≥ 0)



    We simplified constraint (29) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (30)    ([2]x1[2] ≥ 0∧x0[2] ≥ 0∧[1] + x0[2] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥)∧[(4)bni_25 + (-1)Bound*bni_25] + [bni_25]x1[2] + [bni_25]x0[2] ≥ 0∧[(-1)bso_26] ≥ 0)



    We simplified constraint (30) using rule (IDP_POLY_GCD) which results in the following new constraint:

    (31)    (x0[2] ≥ 0∧[1] + x0[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥)∧[(4)bni_25 + (-1)Bound*bni_25] + [bni_25]x1[2] + [bni_25]x0[2] ≥ 0∧[(-1)bso_26] ≥ 0)



  • We consider the chain 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2]) → COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2]), COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[4])), x1[4]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2)) which results in the following constraint:

    (32)    (&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2])))=TRUEEOS(STATIC_5312(x0[2]))=EOS(STATIC_5312(x0[4]))∧x1[2]=x1[4]5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2])≥NonInfC∧5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2])≥COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])∧(UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥))



    We simplified constraint (32) using rules (I), (II), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (33)    (<=(0, *(2, x1[2]))=TRUE>(x0[2], +(*(2, x1[2]), 2))=TRUE>(x0[2], +(*(2, x1[2]), 1))=TRUE5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2])≥NonInfC∧5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2])≥COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])∧(UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥))



    We simplified constraint (33) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (34)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥)∧[bni_25 + (-1)Bound*bni_25] + [(-1)bni_25]x1[2] + [bni_25]x0[2] ≥ 0∧[(-1)bso_26] ≥ 0)



    We simplified constraint (34) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (35)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥)∧[bni_25 + (-1)Bound*bni_25] + [(-1)bni_25]x1[2] + [bni_25]x0[2] ≥ 0∧[(-1)bso_26] ≥ 0)



    We simplified constraint (35) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (36)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥)∧[bni_25 + (-1)Bound*bni_25] + [(-1)bni_25]x1[2] + [bni_25]x0[2] ≥ 0∧[(-1)bso_26] ≥ 0)



    We simplified constraint (36) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (37)    ([2]x1[2] ≥ 0∧x0[2] ≥ 0∧[1] + x0[2] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥)∧[(4)bni_25 + (-1)Bound*bni_25] + [bni_25]x1[2] + [bni_25]x0[2] ≥ 0∧[(-1)bso_26] ≥ 0)



    We simplified constraint (37) using rule (IDP_POLY_GCD) which results in the following new constraint:

    (38)    (x0[2] ≥ 0∧[1] + x0[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥)∧[(4)bni_25 + (-1)Bound*bni_25] + [bni_25]x1[2] + [bni_25]x0[2] ≥ 0∧[(-1)bso_26] ≥ 0)







For Pair COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0)), x1) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0)), +(*(2, x1), 1)) the following chains were created:
  • We consider the chain 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2]) → COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2]), COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[3])), x1[3]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1)), 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), x1[0]) → COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0]) which results in the following constraint:

    (39)    (&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2])))=TRUEEOS(STATIC_5312(x0[2]))=EOS(STATIC_5312(x0[3]))∧x1[2]=x1[3]EOS(STATIC_5312(x0[3]))=EOS(STATIC_5312(x0[0]))∧+(*(2, x1[3]), 1)=x1[0]COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[3])), x1[3])≥NonInfC∧COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[3])), x1[3])≥5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))∧(UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥))



    We simplified constraint (39) using rules (I), (II), (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (40)    (<=(0, *(2, x1[2]))=TRUE>(x0[2], +(*(2, x1[2]), 2))=TRUE>(x0[2], +(*(2, x1[2]), 1))=TRUECOND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[2])), x1[2])≥NonInfC∧COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[2])), x1[2])≥5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), +(*(2, x1[2]), 1))∧(UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥))



    We simplified constraint (40) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (41)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥)∧[bni_27 + (-1)Bound*bni_27] + [(-1)bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[1 + (-1)bso_28] + x1[2] ≥ 0)



    We simplified constraint (41) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (42)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥)∧[bni_27 + (-1)Bound*bni_27] + [(-1)bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[1 + (-1)bso_28] + x1[2] ≥ 0)



    We simplified constraint (42) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (43)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥)∧[bni_27 + (-1)Bound*bni_27] + [(-1)bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[1 + (-1)bso_28] + x1[2] ≥ 0)



    We simplified constraint (43) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (44)    ([2]x1[2] ≥ 0∧x0[2] ≥ 0∧[1] + x0[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥)∧[(4)bni_27 + (-1)Bound*bni_27] + [bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[1 + (-1)bso_28] + x1[2] ≥ 0)



    We simplified constraint (44) using rule (IDP_POLY_GCD) which results in the following new constraint:

    (45)    (x0[2] ≥ 0∧[1] + x0[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥)∧[(4)bni_27 + (-1)Bound*bni_27] + [bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[1 + (-1)bso_28] + x1[2] ≥ 0)



  • We consider the chain 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2]) → COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2]), COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[3])), x1[3]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1)), 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2]) → COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2]) which results in the following constraint:

    (46)    (&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2])))=TRUEEOS(STATIC_5312(x0[2]))=EOS(STATIC_5312(x0[3]))∧x1[2]=x1[3]EOS(STATIC_5312(x0[3]))=EOS(STATIC_5312(x0[2]1))∧+(*(2, x1[3]), 1)=x1[2]1COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[3])), x1[3])≥NonInfC∧COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[3])), x1[3])≥5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))∧(UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥))



    We simplified constraint (46) using rules (I), (II), (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (47)    (<=(0, *(2, x1[2]))=TRUE>(x0[2], +(*(2, x1[2]), 2))=TRUE>(x0[2], +(*(2, x1[2]), 1))=TRUECOND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[2])), x1[2])≥NonInfC∧COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[2])), x1[2])≥5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), +(*(2, x1[2]), 1))∧(UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥))



    We simplified constraint (47) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (48)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥)∧[bni_27 + (-1)Bound*bni_27] + [(-1)bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[1 + (-1)bso_28] + x1[2] ≥ 0)



    We simplified constraint (48) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (49)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥)∧[bni_27 + (-1)Bound*bni_27] + [(-1)bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[1 + (-1)bso_28] + x1[2] ≥ 0)



    We simplified constraint (49) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (50)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥)∧[bni_27 + (-1)Bound*bni_27] + [(-1)bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[1 + (-1)bso_28] + x1[2] ≥ 0)



    We simplified constraint (50) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (51)    ([2]x1[2] ≥ 0∧x0[2] ≥ 0∧[1] + x0[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥)∧[(4)bni_27 + (-1)Bound*bni_27] + [bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[1 + (-1)bso_28] + x1[2] ≥ 0)



    We simplified constraint (51) using rule (IDP_POLY_GCD) which results in the following new constraint:

    (52)    (x0[2] ≥ 0∧[1] + x0[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥)∧[(4)bni_27 + (-1)Bound*bni_27] + [bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[1 + (-1)bso_28] + x1[2] ≥ 0)







For Pair COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0)), x1) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0)), +(*(2, x1), 2)) the following chains were created:
  • We consider the chain 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2]) → COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2]), COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[4])), x1[4]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2)), 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), x1[0]) → COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0]) which results in the following constraint:

    (53)    (&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2])))=TRUEEOS(STATIC_5312(x0[2]))=EOS(STATIC_5312(x0[4]))∧x1[2]=x1[4]EOS(STATIC_5312(x0[4]))=EOS(STATIC_5312(x0[0]))∧+(*(2, x1[4]), 2)=x1[0]COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[4])), x1[4])≥NonInfC∧COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[4])), x1[4])≥5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))∧(UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥))



    We simplified constraint (53) using rules (I), (II), (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (54)    (<=(0, *(2, x1[2]))=TRUE>(x0[2], +(*(2, x1[2]), 2))=TRUE>(x0[2], +(*(2, x1[2]), 1))=TRUECOND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[2])), x1[2])≥NonInfC∧COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[2])), x1[2])≥5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), +(*(2, x1[2]), 2))∧(UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥))



    We simplified constraint (54) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (55)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥)∧[bni_29 + (-1)Bound*bni_29] + [(-1)bni_29]x1[2] + [bni_29]x0[2] ≥ 0∧[2 + (-1)bso_30] + x1[2] ≥ 0)



    We simplified constraint (55) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (56)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥)∧[bni_29 + (-1)Bound*bni_29] + [(-1)bni_29]x1[2] + [bni_29]x0[2] ≥ 0∧[2 + (-1)bso_30] + x1[2] ≥ 0)



    We simplified constraint (56) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (57)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥)∧[bni_29 + (-1)Bound*bni_29] + [(-1)bni_29]x1[2] + [bni_29]x0[2] ≥ 0∧[2 + (-1)bso_30] + x1[2] ≥ 0)



    We simplified constraint (57) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (58)    ([2]x1[2] ≥ 0∧x0[2] ≥ 0∧[1] + x0[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥)∧[(4)bni_29 + (-1)Bound*bni_29] + [bni_29]x1[2] + [bni_29]x0[2] ≥ 0∧[2 + (-1)bso_30] + x1[2] ≥ 0)



    We simplified constraint (58) using rule (IDP_POLY_GCD) which results in the following new constraint:

    (59)    (x0[2] ≥ 0∧[1] + x0[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥)∧[(4)bni_29 + (-1)Bound*bni_29] + [bni_29]x1[2] + [bni_29]x0[2] ≥ 0∧[2 + (-1)bso_30] + x1[2] ≥ 0)



  • We consider the chain 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2]) → COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2]), COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[4])), x1[4]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2)), 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2]) → COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2]) which results in the following constraint:

    (60)    (&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2])))=TRUEEOS(STATIC_5312(x0[2]))=EOS(STATIC_5312(x0[4]))∧x1[2]=x1[4]EOS(STATIC_5312(x0[4]))=EOS(STATIC_5312(x0[2]1))∧+(*(2, x1[4]), 2)=x1[2]1COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[4])), x1[4])≥NonInfC∧COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[4])), x1[4])≥5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))∧(UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥))



    We simplified constraint (60) using rules (I), (II), (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (61)    (<=(0, *(2, x1[2]))=TRUE>(x0[2], +(*(2, x1[2]), 2))=TRUE>(x0[2], +(*(2, x1[2]), 1))=TRUECOND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[2])), x1[2])≥NonInfC∧COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[2])), x1[2])≥5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), +(*(2, x1[2]), 2))∧(UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥))



    We simplified constraint (61) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (62)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥)∧[bni_29 + (-1)Bound*bni_29] + [(-1)bni_29]x1[2] + [bni_29]x0[2] ≥ 0∧[2 + (-1)bso_30] + x1[2] ≥ 0)



    We simplified constraint (62) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (63)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥)∧[bni_29 + (-1)Bound*bni_29] + [(-1)bni_29]x1[2] + [bni_29]x0[2] ≥ 0∧[2 + (-1)bso_30] + x1[2] ≥ 0)



    We simplified constraint (63) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (64)    ([2]x1[2] ≥ 0∧x0[2] + [-3] + [-2]x1[2] ≥ 0∧x0[2] + [-2] + [-2]x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥)∧[bni_29 + (-1)Bound*bni_29] + [(-1)bni_29]x1[2] + [bni_29]x0[2] ≥ 0∧[2 + (-1)bso_30] + x1[2] ≥ 0)



    We simplified constraint (64) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (65)    ([2]x1[2] ≥ 0∧x0[2] ≥ 0∧[1] + x0[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥)∧[(4)bni_29 + (-1)Bound*bni_29] + [bni_29]x1[2] + [bni_29]x0[2] ≥ 0∧[2 + (-1)bso_30] + x1[2] ≥ 0)



    We simplified constraint (65) using rule (IDP_POLY_GCD) which results in the following new constraint:

    (66)    (x0[2] ≥ 0∧[1] + x0[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥)∧[(4)bni_29 + (-1)Bound*bni_29] + [bni_29]x1[2] + [bni_29]x0[2] ≥ 0∧[2 + (-1)bso_30] + x1[2] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0)), x1) → COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0, +(*(2, x1), 1)), <=(x0, +(*(2, x1), 2))), <=(0, *(2, x1))), EOS(STATIC_5312(x0)), x1)
    • (0 ≥ 0∧0 ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0])), ≥)∧[(3)bni_21 + (-1)Bound*bni_21] + [bni_21]x1[0] ≥ 0∧[(-1)bso_22] ≥ 0)

  • COND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0)), x1) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0)), +(*(2, x1), 1))
    • (0 ≥ 0∧0 ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥)∧[(3)bni_23 + (-1)Bound*bni_23] + [bni_23]x1[0] ≥ 0∧[1 + (-1)bso_24] + x1[0] ≥ 0)
    • (0 ≥ 0∧0 ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))), ≥)∧[(3)bni_23 + (-1)Bound*bni_23] + [bni_23]x1[0] ≥ 0∧[1 + (-1)bso_24] + x1[0] ≥ 0)

  • 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0)), x1) → COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0, +(*(2, x1), 2)), >(x0, +(*(2, x1), 1))), <=(0, *(2, x1))), EOS(STATIC_5312(x0)), x1)
    • (x0[2] ≥ 0∧[1] + x0[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥)∧[(4)bni_25 + (-1)Bound*bni_25] + [bni_25]x1[2] + [bni_25]x0[2] ≥ 0∧[(-1)bso_26] ≥ 0)
    • (x0[2] ≥ 0∧[1] + x0[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])), ≥)∧[(4)bni_25 + (-1)Bound*bni_25] + [bni_25]x1[2] + [bni_25]x0[2] ≥ 0∧[(-1)bso_26] ≥ 0)

  • COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0)), x1) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0)), +(*(2, x1), 1))
    • (x0[2] ≥ 0∧[1] + x0[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥)∧[(4)bni_27 + (-1)Bound*bni_27] + [bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[1 + (-1)bso_28] + x1[2] ≥ 0)
    • (x0[2] ≥ 0∧[1] + x0[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))), ≥)∧[(4)bni_27 + (-1)Bound*bni_27] + [bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[1 + (-1)bso_28] + x1[2] ≥ 0)

  • COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0)), x1) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0)), +(*(2, x1), 2))
    • (x0[2] ≥ 0∧[1] + x0[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥)∧[(4)bni_29 + (-1)Bound*bni_29] + [bni_29]x1[2] + [bni_29]x0[2] ≥ 0∧[2 + (-1)bso_30] + x1[2] ≥ 0)
    • (x0[2] ≥ 0∧[1] + x0[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))), ≥)∧[(4)bni_29 + (-1)Bound*bni_29] + [bni_29]x1[2] + [bni_29]x0[2] ≥ 0∧[2 + (-1)bso_30] + x1[2] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = [1]   
POL(5312_0_SUPPRIMER_LOAD(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(EOS(x1)) = [-1] + x1   
POL(STATIC_5312(x1)) = [-1] + [-1]x1   
POL(COND_5312_0_SUPPRIMER_LOAD(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(+(x1, x2)) = x1 + x2   
POL(*(x1, x2)) = x1·x2   
POL(2) = [2]   
POL(1) = [1]   
POL(<=(x1, x2)) = [-1]   
POL(0) = 0   
POL(COND_5312_0_SUPPRIMER_LOAD1(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   

The following pairs are in P>:

COND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0[1])), x1[1]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))
COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[3])), x1[3]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))
COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[4])), x1[4]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))

The following pairs are in Pbound:

5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), x1[0]) → COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0])
COND_5312_0_SUPPRIMER_LOAD(TRUE, EOS(STATIC_5312(x0[1])), x1[1]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[1])), +(*(2, x1[1]), 1))
5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2]) → COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])
COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[3])), x1[3]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[3])), +(*(2, x1[3]), 1))
COND_5312_0_SUPPRIMER_LOAD1(TRUE, EOS(STATIC_5312(x0[4])), x1[4]) → 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[4])), +(*(2, x1[4]), 2))

The following pairs are in P:

5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), x1[0]) → COND_5312_0_SUPPRIMER_LOAD(&&(&&(>(x0[0], +(*(2, x1[0]), 1)), <=(x0[0], +(*(2, x1[0]), 2))), <=(0, *(2, x1[0]))), EOS(STATIC_5312(x0[0])), x1[0])
5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2]) → COND_5312_0_SUPPRIMER_LOAD1(&&(&&(>(x0[2], +(*(2, x1[2]), 2)), >(x0[2], +(*(2, x1[2]), 1))), <=(0, *(2, x1[2]))), EOS(STATIC_5312(x0[2])), x1[2])

At least the following rules have been oriented under context sensitive arithmetic replacement:

TRUE1&&(TRUE, TRUE)1
FALSE1&&(TRUE, FALSE)1
FALSE1&&(FALSE, TRUE)1
FALSE1&&(FALSE, FALSE)1

(9) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[0])), x1[0]) → COND_5312_0_SUPPRIMER_LOAD(x0[0] > 2 * x1[0] + 1 && x0[0] <= 2 * x1[0] + 2 && 0 <= 2 * x1[0], EOS(STATIC_5312(x0[0])), x1[0])
(2): 5312_0_SUPPRIMER_LOAD(EOS(STATIC_5312(x0[2])), x1[2]) → COND_5312_0_SUPPRIMER_LOAD1(x0[2] > 2 * x1[2] + 2 && x0[2] > 2 * x1[2] + 1 && 0 <= 2 * x1[2], EOS(STATIC_5312(x0[2])), x1[2])


The set Q is empty.

(10) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(11) TRUE

(12) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: TriTas.Ajouter(I)V
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

(13) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 40 rules for P and 0 rules for R.


P rules:
2661_0_Ajouter_LE(EOS(STATIC_2661), i242, i443, i443) → 2686_0_Ajouter_LE(EOS(STATIC_2686), i242, i443, i443)
2686_0_Ajouter_LE(EOS(STATIC_2686), i242, i443, i443) → 2704_0_Ajouter_FieldAccess(EOS(STATIC_2704), i242, i443) | >(i443, 0)
2704_0_Ajouter_FieldAccess(EOS(STATIC_2704), i242, i443) → 2716_0_Ajouter_Load(EOS(STATIC_2716), i242, i443, java.lang.Object(ARRAY(i243)))
2716_0_Ajouter_Load(EOS(STATIC_2716), i242, i443, java.lang.Object(ARRAY(i243))) → 2727_0_Ajouter_ConstantStackPush(EOS(STATIC_2727), i242, i443, java.lang.Object(ARRAY(i243)), i443)
2727_0_Ajouter_ConstantStackPush(EOS(STATIC_2727), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 2740_0_Ajouter_IntArithmetic(EOS(STATIC_2740), i242, i443, java.lang.Object(ARRAY(i243)), i443, 1)
2740_0_Ajouter_IntArithmetic(EOS(STATIC_2740), i242, i443, java.lang.Object(ARRAY(i243)), i443, matching1) → 2752_0_Ajouter_ConstantStackPush(EOS(STATIC_2752), i242, i443, java.lang.Object(ARRAY(i243)), -(i443, 1)) | &&(>(i443, 0), =(matching1, 1))
2752_0_Ajouter_ConstantStackPush(EOS(STATIC_2752), i242, i443, java.lang.Object(ARRAY(i243)), i462) → 2766_0_Ajouter_IntArithmetic(EOS(STATIC_2766), i242, i443, java.lang.Object(ARRAY(i243)), i462, 2)
2766_0_Ajouter_IntArithmetic(EOS(STATIC_2766), i242, i443, java.lang.Object(ARRAY(i243)), i462, matching1) → 2780_0_Ajouter_ArrayAccess(EOS(STATIC_2780), i242, i443, java.lang.Object(ARRAY(i243)), /(i462, 2)) | =(matching1, 2)
2780_0_Ajouter_ArrayAccess(EOS(STATIC_2780), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 2792_0_Ajouter_ArrayAccess(EOS(STATIC_2792), i242, i443, java.lang.Object(ARRAY(i243)), i470)
2792_0_Ajouter_ArrayAccess(EOS(STATIC_2792), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 2808_0_Ajouter_Load(EOS(STATIC_2808), i242, i443, i484) | <(i470, i243)
2808_0_Ajouter_Load(EOS(STATIC_2808), i242, i443, i484) → 2823_0_Ajouter_GT(EOS(STATIC_2823), i242, i443, i484, i242)
2823_0_Ajouter_GT(EOS(STATIC_2823), i242, i443, i484, i242) → 2839_0_Ajouter_GT(EOS(STATIC_2839), i242, i443, i484, i242)
2839_0_Ajouter_GT(EOS(STATIC_2839), i242, i443, i484, i242) → 2859_0_Ajouter_FieldAccess(EOS(STATIC_2859), i242, i443) | <=(i484, i242)
2859_0_Ajouter_FieldAccess(EOS(STATIC_2859), i242, i443) → 2879_0_Ajouter_Load(EOS(STATIC_2879), i242, i443, java.lang.Object(ARRAY(i243)))
2879_0_Ajouter_Load(EOS(STATIC_2879), i242, i443, java.lang.Object(ARRAY(i243))) → 2892_0_Ajouter_FieldAccess(EOS(STATIC_2892), i242, i443, java.lang.Object(ARRAY(i243)), i443)
2892_0_Ajouter_FieldAccess(EOS(STATIC_2892), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 2909_0_Ajouter_Load(EOS(STATIC_2909), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)))
2909_0_Ajouter_Load(EOS(STATIC_2909), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243))) → 2927_0_Ajouter_ConstantStackPush(EOS(STATIC_2927), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i443)
2927_0_Ajouter_ConstantStackPush(EOS(STATIC_2927), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i443) → 2948_0_Ajouter_IntArithmetic(EOS(STATIC_2948), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i443, 1)
2948_0_Ajouter_IntArithmetic(EOS(STATIC_2948), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i443, matching1) → 2970_0_Ajouter_ConstantStackPush(EOS(STATIC_2970), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), -(i443, 1)) | &&(>(i443, 0), =(matching1, 1))
2970_0_Ajouter_ConstantStackPush(EOS(STATIC_2970), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i517) → 2995_0_Ajouter_IntArithmetic(EOS(STATIC_2995), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i517, 2)
2995_0_Ajouter_IntArithmetic(EOS(STATIC_2995), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i517, matching1) → 3023_0_Ajouter_ArrayAccess(EOS(STATIC_3023), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), /(i517, 2)) | =(matching1, 2)
3023_0_Ajouter_ArrayAccess(EOS(STATIC_3023), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3050_0_Ajouter_ArrayAccess(EOS(STATIC_3050), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3050_0_Ajouter_ArrayAccess(EOS(STATIC_3050), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3078_0_Ajouter_ArrayAccess(EOS(STATIC_3078), i242, i443, java.lang.Object(ARRAY(i243)), i443) | <(i538, i243)
3078_0_Ajouter_ArrayAccess(EOS(STATIC_3078), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3108_0_Ajouter_ArrayAccess(EOS(STATIC_3108), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3108_0_Ajouter_ArrayAccess(EOS(STATIC_3108), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3146_0_Ajouter_Load(EOS(STATIC_3146), i242, i443) | <(i443, i243)
3146_0_Ajouter_Load(EOS(STATIC_3146), i242, i443) → 3185_0_Ajouter_ConstantStackPush(EOS(STATIC_3185), i242, i443, i443)
3185_0_Ajouter_ConstantStackPush(EOS(STATIC_3185), i242, i443, i443) → 3215_0_Ajouter_IntArithmetic(EOS(STATIC_3215), i242, i443, i443, 1)
3215_0_Ajouter_IntArithmetic(EOS(STATIC_3215), i242, i443, i443, matching1) → 3251_0_Ajouter_ConstantStackPush(EOS(STATIC_3251), i242, i443, -(i443, 1)) | &&(>(i443, 0), =(matching1, 1))
3251_0_Ajouter_ConstantStackPush(EOS(STATIC_3251), i242, i443, i611) → 3283_0_Ajouter_IntArithmetic(EOS(STATIC_3283), i242, i443, i611, 2)
3283_0_Ajouter_IntArithmetic(EOS(STATIC_3283), i242, i443, i611, matching1) → 3311_0_Ajouter_Store(EOS(STATIC_3311), i242, i443, /(i611, 2)) | =(matching1, 2)
3311_0_Ajouter_Store(EOS(STATIC_3311), i242, i443, i649) → 3341_0_Ajouter_Load(EOS(STATIC_3341), i242, i443, i649)
3341_0_Ajouter_Load(EOS(STATIC_3341), i242, i443, i649) → 3366_0_Ajouter_Load(EOS(STATIC_3366), i242, i443, i649, i649)
3366_0_Ajouter_Load(EOS(STATIC_3366), i242, i443, i649, i649) → 3401_0_Ajouter_LT(EOS(STATIC_3401), i242, i443, i649, i649, i443)
3401_0_Ajouter_LT(EOS(STATIC_3401), i242, i443, i649, i649, i443) → 3444_0_Ajouter_LT(EOS(STATIC_3444), i242, i443, i649, i649, i443)
3444_0_Ajouter_LT(EOS(STATIC_3444), i242, i443, i649, i649, i443) → 3480_0_Ajouter_Load(EOS(STATIC_3480), i242, i649) | <(i649, i443)
3480_0_Ajouter_Load(EOS(STATIC_3480), i242, i649) → 3515_0_Ajouter_Store(EOS(STATIC_3515), i242, i649)
3515_0_Ajouter_Store(EOS(STATIC_3515), i242, i649) → 3553_0_Ajouter_JMP(EOS(STATIC_3553), i242, i649)
3553_0_Ajouter_JMP(EOS(STATIC_3553), i242, i649) → 3590_0_Ajouter_Load(EOS(STATIC_3590), i242, i649)
3590_0_Ajouter_Load(EOS(STATIC_3590), i242, i649) → 2637_0_Ajouter_Load(EOS(STATIC_2637), i242, i649)
2637_0_Ajouter_Load(EOS(STATIC_2637), i242, i435) → 2661_0_Ajouter_LE(EOS(STATIC_2661), i242, i435, i435)
R rules:

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.


P rules:
2661_0_Ajouter_LE(EOS(STATIC_2661), x0, x1, x1) → 2661_0_Ajouter_LE(EOS(STATIC_2661), x0, /(-(x1, 1), 2), /(-(x1, 1), 2)) | &&(>(x1, 0), >(x1, /(-(x1, 1), 2)))
R rules:

Filtered ground terms:



2661_0_Ajouter_LE(x1, x2, x3, x4) → 2661_0_Ajouter_LE(x2, x3, x4)
EOS(x1) → EOS
Cond_2661_0_Ajouter_LE(x1, x2, x3, x4, x5) → Cond_2661_0_Ajouter_LE(x1, x3, x4, x5)

Filtered duplicate args:



2661_0_Ajouter_LE(x1, x2, x3) → 2661_0_Ajouter_LE(x1, x3)
Cond_2661_0_Ajouter_LE(x1, x2, x3, x4) → Cond_2661_0_Ajouter_LE(x1, x2, x4)

Filtered unneeded arguments:



Cond_2661_0_Ajouter_LE(x1, x2, x3) → Cond_2661_0_Ajouter_LE(x1, x3)
2661_0_Ajouter_LE(x1, x2) → 2661_0_Ajouter_LE(x2)

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.


P rules:
2661_0_Ajouter_LE(x1) → 2661_0_Ajouter_LE(/(-(x1, 1), 2)) | &&(>(x1, 0), >(x1, /(-(x1, 1), 2)))
R rules:

Finished conversion. Obtained 2 rules for P and 0 rules for R. System has predefined symbols.


P rules:
2661_0_AJOUTER_LE(x1) → COND_2661_0_AJOUTER_LE(&&(>(x1, 0), >(x1, /(-(x1, 1), 2))), x1)
COND_2661_0_AJOUTER_LE(TRUE, x1) → 2661_0_AJOUTER_LE(/(-(x1, 1), 2))
R rules:

(14) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 2661_0_AJOUTER_LE(x1[0]) → COND_2661_0_AJOUTER_LE(x1[0] > 0 && x1[0] > x1[0] - 1 / 2, x1[0])
(1): COND_2661_0_AJOUTER_LE(TRUE, x1[1]) → 2661_0_AJOUTER_LE(x1[1] - 1 / 2)

(0) -> (1), if (x1[0] > 0 && x1[0] > x1[0] - 1 / 2x1[0]* x1[1])


(1) -> (0), if (x1[1] - 1 / 2* x1[0])



The set Q is empty.

(15) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: false Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@505ac45e Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 2661_0_AJOUTER_LE(x1) → COND_2661_0_AJOUTER_LE(&&(>(x1, 0), >(x1, /(-(x1, 1), 2))), x1) the following chains were created:
  • We consider the chain 2661_0_AJOUTER_LE(x1[0]) → COND_2661_0_AJOUTER_LE(&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2))), x1[0]), COND_2661_0_AJOUTER_LE(TRUE, x1[1]) → 2661_0_AJOUTER_LE(/(-(x1[1], 1), 2)) which results in the following constraint:

    (1)    (&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2)))=TRUEx1[0]=x1[1]2661_0_AJOUTER_LE(x1[0])≥NonInfC∧2661_0_AJOUTER_LE(x1[0])≥COND_2661_0_AJOUTER_LE(&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2))), x1[0])∧(UIncreasing(COND_2661_0_AJOUTER_LE(&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2))), x1[0])), ≥))



    We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (2)    (>(x1[0], 0)=TRUE>(x1[0], /(-(x1[0], 1), 2))=TRUE2661_0_AJOUTER_LE(x1[0])≥NonInfC∧2661_0_AJOUTER_LE(x1[0])≥COND_2661_0_AJOUTER_LE(&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2))), x1[0])∧(UIncreasing(COND_2661_0_AJOUTER_LE(&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2))), x1[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (x1[0] + [-1] ≥ 0∧x1[0] + [-2] + max{x1[0] + [-1], [-1]x1[0] + [1]} ≥ 0 ⇒ (UIncreasing(COND_2661_0_AJOUTER_LE(&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2))), x1[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (x1[0] + [-1] ≥ 0∧x1[0] + [-2] + max{x1[0] + [-1], [-1]x1[0] + [1]} ≥ 0 ⇒ (UIncreasing(COND_2661_0_AJOUTER_LE(&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2))), x1[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (x1[0] + [-1] ≥ 0∧[2]x1[0] + [-2] ≥ 0∧[2]x1[0] + [-3] ≥ 0 ⇒ (UIncreasing(COND_2661_0_AJOUTER_LE(&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2))), x1[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    (x1[0] ≥ 0∧[2]x1[0] ≥ 0∧[-1] + [2]x1[0] ≥ 0 ⇒ (UIncreasing(COND_2661_0_AJOUTER_LE(&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2))), x1[0])), ≥)∧[(-1)Bound*bni_10] + [bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)



    We simplified constraint (6) using rule (IDP_POLY_GCD) which results in the following new constraint:

    (7)    (x1[0] ≥ 0∧[-1] + [2]x1[0] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_2661_0_AJOUTER_LE(&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2))), x1[0])), ≥)∧[(-1)Bound*bni_10] + [bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)







For Pair COND_2661_0_AJOUTER_LE(TRUE, x1) → 2661_0_AJOUTER_LE(/(-(x1, 1), 2)) the following chains were created:
  • We consider the chain 2661_0_AJOUTER_LE(x1[0]) → COND_2661_0_AJOUTER_LE(&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2))), x1[0]), COND_2661_0_AJOUTER_LE(TRUE, x1[1]) → 2661_0_AJOUTER_LE(/(-(x1[1], 1), 2)) which results in the following constraint:

    (8)    (&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2)))=TRUEx1[0]=x1[1]COND_2661_0_AJOUTER_LE(TRUE, x1[1])≥NonInfC∧COND_2661_0_AJOUTER_LE(TRUE, x1[1])≥2661_0_AJOUTER_LE(/(-(x1[1], 1), 2))∧(UIncreasing(2661_0_AJOUTER_LE(/(-(x1[1], 1), 2))), ≥))



    We simplified constraint (8) using rules (III), (IDP_BOOLEAN) which results in the following new constraint:

    (9)    (>(x1[0], 0)=TRUE>(x1[0], /(-(x1[0], 1), 2))=TRUECOND_2661_0_AJOUTER_LE(TRUE, x1[0])≥NonInfC∧COND_2661_0_AJOUTER_LE(TRUE, x1[0])≥2661_0_AJOUTER_LE(/(-(x1[0], 1), 2))∧(UIncreasing(2661_0_AJOUTER_LE(/(-(x1[1], 1), 2))), ≥))



    We simplified constraint (9) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (10)    (x1[0] + [-1] ≥ 0∧x1[0] + [-2] + max{x1[0] + [-1], [-1]x1[0] + [1]} ≥ 0 ⇒ (UIncreasing(2661_0_AJOUTER_LE(/(-(x1[1], 1), 2))), ≥)∧[(-1)bni_12 + (-1)Bound*bni_12] + [bni_12]x1[0] ≥ 0∧[1 + (-1)bso_16] + x1[0] + [-1]max{x1[0] + [-1], [-1]x1[0] + [1]} ≥ 0)



    We simplified constraint (10) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (11)    (x1[0] + [-1] ≥ 0∧x1[0] + [-2] + max{x1[0] + [-1], [-1]x1[0] + [1]} ≥ 0 ⇒ (UIncreasing(2661_0_AJOUTER_LE(/(-(x1[1], 1), 2))), ≥)∧[(-1)bni_12 + (-1)Bound*bni_12] + [bni_12]x1[0] ≥ 0∧[1 + (-1)bso_16] + x1[0] + [-1]max{x1[0] + [-1], [-1]x1[0] + [1]} ≥ 0)



    We simplified constraint (11) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (12)    (x1[0] + [-1] ≥ 0∧[2]x1[0] + [-2] ≥ 0∧[2]x1[0] + [-3] ≥ 0 ⇒ (UIncreasing(2661_0_AJOUTER_LE(/(-(x1[1], 1), 2))), ≥)∧[(-1)bni_12 + (-1)Bound*bni_12] + [bni_12]x1[0] ≥ 0∧[2 + (-1)bso_16] ≥ 0)



    We simplified constraint (12) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (13)    (x1[0] ≥ 0∧[2]x1[0] ≥ 0∧[-1] + [2]x1[0] ≥ 0 ⇒ (UIncreasing(2661_0_AJOUTER_LE(/(-(x1[1], 1), 2))), ≥)∧[(-1)Bound*bni_12] + [bni_12]x1[0] ≥ 0∧[2 + (-1)bso_16] ≥ 0)



    We simplified constraint (13) using rule (IDP_POLY_GCD) which results in the following new constraint:

    (14)    (x1[0] ≥ 0∧[-1] + [2]x1[0] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(2661_0_AJOUTER_LE(/(-(x1[1], 1), 2))), ≥)∧[(-1)Bound*bni_12] + [bni_12]x1[0] ≥ 0∧[2 + (-1)bso_16] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 2661_0_AJOUTER_LE(x1) → COND_2661_0_AJOUTER_LE(&&(>(x1, 0), >(x1, /(-(x1, 1), 2))), x1)
    • (x1[0] ≥ 0∧[-1] + [2]x1[0] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_2661_0_AJOUTER_LE(&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2))), x1[0])), ≥)∧[(-1)Bound*bni_10] + [bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)

  • COND_2661_0_AJOUTER_LE(TRUE, x1) → 2661_0_AJOUTER_LE(/(-(x1, 1), 2))
    • (x1[0] ≥ 0∧[-1] + [2]x1[0] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(2661_0_AJOUTER_LE(/(-(x1[1], 1), 2))), ≥)∧[(-1)Bound*bni_12] + [bni_12]x1[0] ≥ 0∧[2 + (-1)bso_16] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = [1]   
POL(FALSE) = [1]   
POL(2661_0_AJOUTER_LE(x1)) = [-1] + x1   
POL(COND_2661_0_AJOUTER_LE(x1, x2)) = x2 + [-1]x1   
POL(&&(x1, x2)) = [1]   
POL(>(x1, x2)) = [-1]   
POL(0) = 0   
POL(-(x1, x2)) = x1 + [-1]x2   
POL(1) = [1]   
POL(2) = [2]   

Polynomial Interpretations with Context Sensitive Arithemetic Replacement
POL(TermCSAR-Mode @ Context)

POL(/(x1, 2)-1 @ {}) = [-1]max{x1, [-1]x1} + [1]   
POL(/(x1, 2)1 @ {2661_0_AJOUTER_LE_1/0}) = max{x1, [-1]x1} + [-1]   

The following pairs are in P>:

COND_2661_0_AJOUTER_LE(TRUE, x1[1]) → 2661_0_AJOUTER_LE(/(-(x1[1], 1), 2))

The following pairs are in Pbound:

2661_0_AJOUTER_LE(x1[0]) → COND_2661_0_AJOUTER_LE(&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2))), x1[0])
COND_2661_0_AJOUTER_LE(TRUE, x1[1]) → 2661_0_AJOUTER_LE(/(-(x1[1], 1), 2))

The following pairs are in P:

2661_0_AJOUTER_LE(x1[0]) → COND_2661_0_AJOUTER_LE(&&(>(x1[0], 0), >(x1[0], /(-(x1[0], 1), 2))), x1[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

&&(TRUE, TRUE)1TRUE1
FALSE1&&(TRUE, FALSE)1
FALSE1&&(FALSE, TRUE)1
FALSE1&&(FALSE, FALSE)1
/1

(16) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 2661_0_AJOUTER_LE(x1[0]) → COND_2661_0_AJOUTER_LE(x1[0] > 0 && x1[0] > x1[0] - 1 / 2, x1[0])


The set Q is empty.

(17) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(18) TRUE

(19) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: TriTas.HeapSort()V
SCC calls the following helper methods: TriTas.Supprimer()V
Performed SCC analyses: UsedFieldsAnalysis

(20) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 22 rules for P and 282 rules for R.


P rules:
4030_0_HeapSort_LT(EOS(STATIC_4030), i935, i935) → 4046_0_HeapSort_LT(EOS(STATIC_4046), i935, i935)
4046_0_HeapSort_LT(EOS(STATIC_4046), i935, i935) → 4067_0_HeapSort_InvokeMethod(EOS(STATIC_4067), i935) | >=(i935, 0)
4067_0_HeapSort_InvokeMethod(EOS(STATIC_4067), i935) → 4083_0_Maximum_FieldAccess(EOS(STATIC_4083), i935)
4083_0_Maximum_FieldAccess(EOS(STATIC_4083), i935) → 4138_0_Maximum_ConstantStackPush(EOS(STATIC_4138), i935, java.lang.Object(ARRAY(i902)))
4138_0_Maximum_ConstantStackPush(EOS(STATIC_4138), i935, java.lang.Object(ARRAY(i902))) → 4161_0_Maximum_ArrayAccess(EOS(STATIC_4161), i935, java.lang.Object(ARRAY(i902)), 0)
4161_0_Maximum_ArrayAccess(EOS(STATIC_4161), i935, java.lang.Object(ARRAY(i1043)), matching1) → 4183_0_Maximum_ArrayAccess(EOS(STATIC_4183), i935, java.lang.Object(ARRAY(i1043)), 0) | =(matching1, 0)
4183_0_Maximum_ArrayAccess(EOS(STATIC_4183), i935, java.lang.Object(ARRAY(i1043)), matching1) → 4198_0_Maximum_Return(EOS(STATIC_4198), i935) | &&(<(0, i1043), =(matching1, 0))
4198_0_Maximum_Return(EOS(STATIC_4198), i935) → 4208_0_HeapSort_Store(EOS(STATIC_4208), i935)
4208_0_HeapSort_Store(EOS(STATIC_4208), i935) → 4221_0_HeapSort_InvokeMethod(EOS(STATIC_4221), i935)
4221_0_HeapSort_InvokeMethod(EOS(STATIC_4221), i935) → 4233_1_HeapSort_InvokeMethod(4233_0_Supprimer_FieldAccess(EOS(STATIC_4233)), i935)
4233_1_HeapSort_InvokeMethod(5526_0_Supprimer_Return(EOS(STATIC_5526)), i935) → 5559_0_Supprimer_Return(EOS(STATIC_5559), i935)
5559_0_Supprimer_Return(EOS(STATIC_5559), i935) → 4671_0_Supprimer_Return(EOS(STATIC_4671), i935)
4671_0_Supprimer_Return(EOS(STATIC_4671), i935) → 4675_0_HeapSort_FieldAccess(EOS(STATIC_4675), i935)
4675_0_HeapSort_FieldAccess(EOS(STATIC_4675), i935) → 4678_0_HeapSort_Load(EOS(STATIC_4678), i935, java.lang.Object(ARRAY(i1225)))
4678_0_HeapSort_Load(EOS(STATIC_4678), i935, java.lang.Object(ARRAY(i1225))) → 4682_0_HeapSort_Load(EOS(STATIC_4682), i935, java.lang.Object(ARRAY(i1225)), i935)
4682_0_HeapSort_Load(EOS(STATIC_4682), i935, java.lang.Object(ARRAY(i1225)), i935) → 4687_0_HeapSort_ArrayAccess(EOS(STATIC_4687), i935, java.lang.Object(ARRAY(i1225)), i935)
4687_0_HeapSort_ArrayAccess(EOS(STATIC_4687), i935, java.lang.Object(ARRAY(i1225)), i935) → 4691_0_HeapSort_ArrayAccess(EOS(STATIC_4691), i935, java.lang.Object(ARRAY(i1225)), i935)
4691_0_HeapSort_ArrayAccess(EOS(STATIC_4691), i935, java.lang.Object(ARRAY(i1225)), i935) → 4698_0_HeapSort_Inc(EOS(STATIC_4698), i935) | <(i935, i1225)
4698_0_HeapSort_Inc(EOS(STATIC_4698), i935) → 4705_0_HeapSort_JMP(EOS(STATIC_4705), +(i935, -1)) | >=(i935, 0)
4705_0_HeapSort_JMP(EOS(STATIC_4705), i1241) → 4709_0_HeapSort_Load(EOS(STATIC_4709), i1241)
4709_0_HeapSort_Load(EOS(STATIC_4709), i1241) → 4019_0_HeapSort_Load(EOS(STATIC_4019), i1241)
4019_0_HeapSort_Load(EOS(STATIC_4019), i928) → 4030_0_HeapSort_LT(EOS(STATIC_4030), i928, i928)
R rules:
4233_0_Supprimer_FieldAccess(EOS(STATIC_4233)) → 4241_0_Supprimer_FieldAccess(EOS(STATIC_4241))
4241_0_Supprimer_FieldAccess(EOS(STATIC_4241)) → 4267_0_Supprimer_FieldAccess(EOS(STATIC_4267))
4267_0_Supprimer_FieldAccess(EOS(STATIC_4267)) → 4272_0_Supprimer_ConstantStackPush(EOS(STATIC_4272), java.lang.Object(ARRAY(i1084)))
4272_0_Supprimer_ConstantStackPush(EOS(STATIC_4272), java.lang.Object(ARRAY(i1084))) → 4281_0_Supprimer_FieldAccess(EOS(STATIC_4281), java.lang.Object(ARRAY(i1084)), 0)
4281_0_Supprimer_FieldAccess(EOS(STATIC_4281), java.lang.Object(ARRAY(i1084)), matching1) → 4287_0_Supprimer_FieldAccess(EOS(STATIC_4287), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084))) | =(matching1, 0)
4287_0_Supprimer_FieldAccess(EOS(STATIC_4287), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084))) → 4292_0_Supprimer_ConstantStackPush(EOS(STATIC_4292), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1085) | =(matching1, 0)
4292_0_Supprimer_ConstantStackPush(EOS(STATIC_4292), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1085) → 4297_0_Supprimer_IntArithmetic(EOS(STATIC_4297), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1085, 1) | =(matching1, 0)
4297_0_Supprimer_IntArithmetic(EOS(STATIC_4297), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1085, matching2) → 4304_0_Supprimer_ArrayAccess(EOS(STATIC_4304), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), -(i1085, 1)) | &&(=(matching1, 0), =(matching2, 1))
4304_0_Supprimer_ArrayAccess(EOS(STATIC_4304), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4307_0_Supprimer_ArrayAccess(EOS(STATIC_4307), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4304_0_Supprimer_ArrayAccess(EOS(STATIC_4304), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4308_0_Supprimer_ArrayAccess(EOS(STATIC_4308), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4307_0_Supprimer_ArrayAccess(EOS(STATIC_4307), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4311_0_<init>_Load(EOS(STATIC_4311), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | &&(<=(i1117, -1), =(matching1, 0))
4308_0_Supprimer_ArrayAccess(EOS(STATIC_4308), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4313_0_Supprimer_ArrayAccess(EOS(STATIC_4313), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4308_0_Supprimer_ArrayAccess(EOS(STATIC_4308), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4314_0_Supprimer_ArrayAccess(EOS(STATIC_4314), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4311_0_<init>_Load(EOS(STATIC_4311), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4323_0_<init>_InvokeMethod(EOS(STATIC_4323), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4313_0_Supprimer_ArrayAccess(EOS(STATIC_4313), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4318_0_Supprimer_ArrayAccess(EOS(STATIC_4318), java.lang.Object(ARRAY(i1084)), 0) | &&(<(i1118, i1084), =(matching1, 0))
4314_0_Supprimer_ArrayAccess(EOS(STATIC_4314), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4319_0_<init>_Load(EOS(STATIC_4319), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | &&(>=(i1118, i1084), =(matching1, 0))
4318_0_Supprimer_ArrayAccess(EOS(STATIC_4318), java.lang.Object(ARRAY(i1084)), matching1) → 4324_0_Supprimer_FieldAccess(EOS(STATIC_4324)) | &&(<(0, i1084), =(matching1, 0))
4319_0_<init>_Load(EOS(STATIC_4319), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4331_0_<init>_InvokeMethod(EOS(STATIC_4331), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4323_0_<init>_InvokeMethod(EOS(STATIC_4323), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4328_0_<init>_Load(EOS(STATIC_4328), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4324_0_Supprimer_FieldAccess(EOS(STATIC_4324)) → 4330_0_Supprimer_ConstantStackPush(EOS(STATIC_4330), i1085)
4328_0_<init>_Load(EOS(STATIC_4328), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4342_0_<init>_InvokeMethod(EOS(STATIC_4342), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4330_0_Supprimer_ConstantStackPush(EOS(STATIC_4330), i1085) → 4337_0_Supprimer_IntArithmetic(EOS(STATIC_4337), i1085, 1)
4331_0_<init>_InvokeMethod(EOS(STATIC_4331), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4338_0_<init>_Load(EOS(STATIC_4338), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4337_0_Supprimer_IntArithmetic(EOS(STATIC_4337), i1085, matching1) → 4343_0_Supprimer_FieldAccess(EOS(STATIC_4343), -(i1085, 1)) | =(matching1, 1)
4338_0_<init>_Load(EOS(STATIC_4338), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4350_0_<init>_InvokeMethod(EOS(STATIC_4350), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4342_0_<init>_InvokeMethod(EOS(STATIC_4342), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4347_0_<init>_Load(EOS(STATIC_4347), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4343_0_Supprimer_FieldAccess(EOS(STATIC_4343), i1121) → 4349_0_Supprimer_ConstantStackPush(EOS(STATIC_4349))
4347_0_<init>_Load(EOS(STATIC_4347), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4361_0_<init>_InvokeMethod(EOS(STATIC_4361), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4349_0_Supprimer_ConstantStackPush(EOS(STATIC_4349)) → 4354_0_Supprimer_Store(EOS(STATIC_4354), 0)
4350_0_<init>_InvokeMethod(EOS(STATIC_4350), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4356_0_<init>_Load(EOS(STATIC_4356), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4354_0_Supprimer_Store(EOS(STATIC_4354), matching1) → 4362_0_Supprimer_FieldAccess(EOS(STATIC_4362), 0) | =(matching1, 0)
4356_0_<init>_Load(EOS(STATIC_4356), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4369_0_<init>_InvokeMethod(EOS(STATIC_4369), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4361_0_<init>_InvokeMethod(EOS(STATIC_4361), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4366_0_<init>_Load(EOS(STATIC_4366), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4362_0_Supprimer_FieldAccess(EOS(STATIC_4362), matching1) → 4367_0_Supprimer_ConstantStackPush(EOS(STATIC_4367), 0, java.lang.Object(ARRAY(i1084))) | =(matching1, 0)
4366_0_<init>_Load(EOS(STATIC_4366), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4375_0_<init>_InvokeMethod(EOS(STATIC_4375), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4367_0_Supprimer_ConstantStackPush(EOS(STATIC_4367), matching1, java.lang.Object(ARRAY(i1084))) → 4372_0_Supprimer_ArrayAccess(EOS(STATIC_4372), 0, java.lang.Object(ARRAY(i1084)), 0) | =(matching1, 0)
4369_0_<init>_InvokeMethod(EOS(STATIC_4369), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4373_0_<init>_Load(EOS(STATIC_4373), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4372_0_Supprimer_ArrayAccess(EOS(STATIC_4372), matching1, java.lang.Object(ARRAY(i1084)), matching2) → 4377_0_Supprimer_Store(EOS(STATIC_4377), 0, i1132) | &&(&&(<(0, i1084), =(matching1, 0)), =(matching2, 0))
4373_0_<init>_Load(EOS(STATIC_4373), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4382_0_<init>_InvokeMethod(EOS(STATIC_4382), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4375_0_<init>_InvokeMethod(EOS(STATIC_4375), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4379_0_<init>_Load(EOS(STATIC_4379), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4377_0_Supprimer_Store(EOS(STATIC_4377), matching1, i1132) → 4381_0_Supprimer_ConstantStackPush(EOS(STATIC_4381), 0, i1132) | =(matching1, 0)
4379_0_<init>_Load(EOS(STATIC_4379), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4389_0_<init>_InvokeMethod(EOS(STATIC_4389), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4381_0_Supprimer_ConstantStackPush(EOS(STATIC_4381), matching1, i1132) → 4609_0_Supprimer_ConstantStackPush(EOS(STATIC_4609), 0, i1132) | =(matching1, 0)
4382_0_<init>_InvokeMethod(EOS(STATIC_4382), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4386_0_<init>_Load(EOS(STATIC_4386), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4386_0_<init>_Load(EOS(STATIC_4386), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4396_0_<init>_InvokeMethod(EOS(STATIC_4396), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4389_0_<init>_InvokeMethod(EOS(STATIC_4389), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4393_0_<init>_Load(EOS(STATIC_4393), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4393_0_<init>_Load(EOS(STATIC_4393), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4398_0_<init>_Load(EOS(STATIC_4398), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4396_0_<init>_InvokeMethod(EOS(STATIC_4396), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4401_0_<init>_Load(EOS(STATIC_4401), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4398_0_<init>_Load(EOS(STATIC_4398), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4404_0_<init>_FieldAccess(EOS(STATIC_4404), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4401_0_<init>_Load(EOS(STATIC_4401), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4406_0_<init>_Load(EOS(STATIC_4406), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4404_0_<init>_FieldAccess(EOS(STATIC_4404), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4410_0_<init>_Load(EOS(STATIC_4410), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4406_0_<init>_Load(EOS(STATIC_4406), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4413_0_<init>_FieldAccess(EOS(STATIC_4413), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4410_0_<init>_Load(EOS(STATIC_4410), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4414_0_<init>_InvokeMethod(EOS(STATIC_4414), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4413_0_<init>_FieldAccess(EOS(STATIC_4413), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4419_0_<init>_Load(EOS(STATIC_4419), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4414_0_<init>_InvokeMethod(EOS(STATIC_4414), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4421_0_<init>_StackPop(EOS(STATIC_4421), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4419_0_<init>_Load(EOS(STATIC_4419), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4425_0_<init>_InvokeMethod(EOS(STATIC_4425), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4421_0_<init>_StackPop(EOS(STATIC_4421), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4426_0_<init>_Return(EOS(STATIC_4426), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4425_0_<init>_InvokeMethod(EOS(STATIC_4425), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4431_0_<init>_StackPop(EOS(STATIC_4431), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4426_0_<init>_Return(EOS(STATIC_4426), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4432_0_<init>_Return(EOS(STATIC_4432), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4431_0_<init>_StackPop(EOS(STATIC_4431), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4436_0_<init>_Return(EOS(STATIC_4436), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4432_0_<init>_Return(EOS(STATIC_4432), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4437_0_<init>_Return(EOS(STATIC_4437), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4436_0_<init>_Return(EOS(STATIC_4436), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4441_0_<init>_Return(EOS(STATIC_4441), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4437_0_<init>_Return(EOS(STATIC_4437), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4442_0_<init>_Return(EOS(STATIC_4442), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4441_0_<init>_Return(EOS(STATIC_4441), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4447_0_<init>_Return(EOS(STATIC_4447), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4442_0_<init>_Return(EOS(STATIC_4442), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4448_0_<init>_Return(EOS(STATIC_4448), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4447_0_<init>_Return(EOS(STATIC_4447), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4452_0_<init>_Return(EOS(STATIC_4452), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4448_0_<init>_Return(EOS(STATIC_4448), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1117) → 4453_0_Supprimer_ArrayAccess(EOS(STATIC_4453), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1117) | =(matching1, 0)
4452_0_<init>_Return(EOS(STATIC_4452), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4457_0_<init>_Return(EOS(STATIC_4457), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4457_0_<init>_Return(EOS(STATIC_4457), java.lang.Object(ARRAY(i1084)), matching1, java.lang.Object(ARRAY(i1084)), i1118) → 4463_0_Supprimer_ArrayAccess(EOS(STATIC_4463), java.lang.Object(ARRAY(i1084)), 0, java.lang.Object(ARRAY(i1084)), i1118) | =(matching1, 0)
4609_0_Supprimer_ConstantStackPush(EOS(STATIC_4609), i1199, i1132) → 4976_0_Supprimer_ConstantStackPush(EOS(STATIC_4976), i1199, i1132)
4976_0_Supprimer_ConstantStackPush(EOS(STATIC_4976), i1538, i1132) → 5308_0_Supprimer_ConstantStackPush(EOS(STATIC_5308), i1538, i1132)
5308_0_Supprimer_ConstantStackPush(EOS(STATIC_5308), i1775, i1132) → 5312_0_Supprimer_Load(EOS(STATIC_5312), i1775, i1132, 2)
5312_0_Supprimer_Load(EOS(STATIC_5312), i1775, i1132, matching1) → 5313_0_Supprimer_IntArithmetic(EOS(STATIC_5313), i1775, i1132, 2, i1775) | =(matching1, 2)
5313_0_Supprimer_IntArithmetic(EOS(STATIC_5313), i1775, i1132, matching1, i1775) → 5314_0_Supprimer_ConstantStackPush(EOS(STATIC_5314), i1775, i1132, *(2, i1775)) | =(matching1, 2)
5314_0_Supprimer_ConstantStackPush(EOS(STATIC_5314), i1775, i1132, i1777) → 5316_0_Supprimer_IntArithmetic(EOS(STATIC_5316), i1775, i1132, i1777, 1)
5316_0_Supprimer_IntArithmetic(EOS(STATIC_5316), i1775, i1132, i1777, matching1) → 5317_0_Supprimer_FieldAccess(EOS(STATIC_5317), i1775, i1132, +(i1777, 1)) | &&(>=(i1777, 0), =(matching1, 1))
5317_0_Supprimer_FieldAccess(EOS(STATIC_5317), i1775, i1132, i1778) → 5318_0_Supprimer_GE(EOS(STATIC_5318), i1775, i1132, i1778, i1198)
5318_0_Supprimer_GE(EOS(STATIC_5318), i1775, i1132, i1778, i1198) → 5319_0_Supprimer_GE(EOS(STATIC_5319), i1775, i1132, i1778, i1198)
5318_0_Supprimer_GE(EOS(STATIC_5318), i1775, i1132, i1778, i1198) → 5320_0_Supprimer_GE(EOS(STATIC_5320), i1775, i1132, i1778, i1198)
5319_0_Supprimer_GE(EOS(STATIC_5319), i1775, i1132, i1778, i1198) → 5322_0_Supprimer_FieldAccess(EOS(STATIC_5322), i1775, i1132) | >=(i1778, i1198)
5320_0_Supprimer_GE(EOS(STATIC_5320), i1775, i1132, i1778, i1198) → 5323_0_Supprimer_ConstantStackPush(EOS(STATIC_5323), i1775, i1132) | <(i1778, i1198)
5322_0_Supprimer_FieldAccess(EOS(STATIC_5322), i1775, i1132) → 5399_0_Supprimer_FieldAccess(EOS(STATIC_5399), i1775, i1132)
5323_0_Supprimer_ConstantStackPush(EOS(STATIC_5323), i1775, i1132) → 5325_0_Supprimer_Load(EOS(STATIC_5325), i1775, i1132, 2)
5325_0_Supprimer_Load(EOS(STATIC_5325), i1775, i1132, matching1) → 5328_0_Supprimer_IntArithmetic(EOS(STATIC_5328), i1775, i1132, 2, i1775) | =(matching1, 2)
5328_0_Supprimer_IntArithmetic(EOS(STATIC_5328), i1775, i1132, matching1, i1775) → 5330_0_Supprimer_ConstantStackPush(EOS(STATIC_5330), i1775, i1132, *(2, i1775)) | =(matching1, 2)
5330_0_Supprimer_ConstantStackPush(EOS(STATIC_5330), i1775, i1132, i1779) → 5334_0_Supprimer_IntArithmetic(EOS(STATIC_5334), i1775, i1132, i1779, 1)
5334_0_Supprimer_IntArithmetic(EOS(STATIC_5334), i1775, i1132, i1779, matching1) → 5338_0_Supprimer_Store(EOS(STATIC_5338), i1775, i1132, +(i1779, 1)) | &&(>=(i1779, 0), =(matching1, 1))
5338_0_Supprimer_Store(EOS(STATIC_5338), i1775, i1132, i1780) → 5340_0_Supprimer_Load(EOS(STATIC_5340), i1775, i1780, i1132)
5340_0_Supprimer_Load(EOS(STATIC_5340), i1775, i1780, i1132) → 5345_0_Supprimer_ConstantStackPush(EOS(STATIC_5345), i1775, i1780, i1132, i1780)
5345_0_Supprimer_ConstantStackPush(EOS(STATIC_5345), i1775, i1780, i1132, i1780) → 5349_0_Supprimer_IntArithmetic(EOS(STATIC_5349), i1775, i1780, i1132, i1780, 1)
5349_0_Supprimer_IntArithmetic(EOS(STATIC_5349), i1775, i1780, i1132, i1780, matching1) → 5350_0_Supprimer_FieldAccess(EOS(STATIC_5350), i1775, i1780, i1132, +(i1780, 1)) | &&(>(i1780, 0), =(matching1, 1))
5350_0_Supprimer_FieldAccess(EOS(STATIC_5350), i1775, i1780, i1132, i1791) → 5353_0_Supprimer_GE(EOS(STATIC_5353), i1775, i1780, i1132, i1791, i1198)
5353_0_Supprimer_GE(EOS(STATIC_5353), i1775, i1780, i1132, i1791, i1198) → 5355_0_Supprimer_GE(EOS(STATIC_5355), i1775, i1780, i1132, i1791, i1198)
5353_0_Supprimer_GE(EOS(STATIC_5353), i1775, i1780, i1132, i1791, i1198) → 5356_0_Supprimer_GE(EOS(STATIC_5356), i1775, i1780, i1132, i1791, i1198)
5355_0_Supprimer_GE(EOS(STATIC_5355), i1775, i1780, i1132, i1791, i1198) → 5358_0_Supprimer_Load(EOS(STATIC_5358), i1775, i1780, i1132) | >=(i1791, i1198)
5356_0_Supprimer_GE(EOS(STATIC_5356), i1775, i1780, i1132, i1791, i1198) → 5359_0_Supprimer_FieldAccess(EOS(STATIC_5359), i1775, i1780, i1132) | <(i1791, i1198)
5358_0_Supprimer_Load(EOS(STATIC_5358), i1775, i1780, i1132) → 5431_0_Supprimer_Load(EOS(STATIC_5431), i1775, i1780, i1132)
5359_0_Supprimer_FieldAccess(EOS(STATIC_5359), i1775, i1780, i1132) → 5363_0_Supprimer_Load(EOS(STATIC_5363), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)))
5363_0_Supprimer_Load(EOS(STATIC_5363), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197))) → 5368_0_Supprimer_ConstantStackPush(EOS(STATIC_5368), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5368_0_Supprimer_ConstantStackPush(EOS(STATIC_5368), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5371_0_Supprimer_IntArithmetic(EOS(STATIC_5371), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1780, 1)
5371_0_Supprimer_IntArithmetic(EOS(STATIC_5371), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1780, matching1) → 5376_0_Supprimer_ArrayAccess(EOS(STATIC_5376), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), +(i1780, 1)) | &&(>(i1780, 0), =(matching1, 1))
5376_0_Supprimer_ArrayAccess(EOS(STATIC_5376), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5381_0_Supprimer_ArrayAccess(EOS(STATIC_5381), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5376_0_Supprimer_ArrayAccess(EOS(STATIC_5376), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5382_0_Supprimer_ArrayAccess(EOS(STATIC_5382), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5381_0_Supprimer_ArrayAccess(EOS(STATIC_5381), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5386_0_Supprimer_FieldAccess(EOS(STATIC_5386), i1775, i1780, i1132, i1807) | <(i1804, i1197)
5382_0_Supprimer_ArrayAccess(EOS(STATIC_5382), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5387_0_<init>_Load(EOS(STATIC_5387), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) | >=(i1804, i1197)
5386_0_Supprimer_FieldAccess(EOS(STATIC_5386), i1775, i1780, i1132, i1807) → 5394_0_Supprimer_Load(EOS(STATIC_5394), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)))
5387_0_<init>_Load(EOS(STATIC_5387), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5404_0_<init>_InvokeMethod(EOS(STATIC_5404), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5394_0_Supprimer_Load(EOS(STATIC_5394), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197))) → 5402_0_Supprimer_ArrayAccess(EOS(STATIC_5402), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5399_0_Supprimer_FieldAccess(EOS(STATIC_5399), i1775, i1132) → 5489_0_Supprimer_FieldAccess(EOS(STATIC_5489), i1775, i1132)
5402_0_Supprimer_ArrayAccess(EOS(STATIC_5402), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5408_0_Supprimer_ArrayAccess(EOS(STATIC_5408), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5402_0_Supprimer_ArrayAccess(EOS(STATIC_5402), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5409_0_Supprimer_ArrayAccess(EOS(STATIC_5409), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5404_0_<init>_InvokeMethod(EOS(STATIC_5404), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5410_0_<init>_Load(EOS(STATIC_5410), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5408_0_Supprimer_ArrayAccess(EOS(STATIC_5408), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5415_0_Supprimer_LE(EOS(STATIC_5415), i1775, i1780, i1132, i1807, i1828) | <(i1780, i1197)
5409_0_Supprimer_ArrayAccess(EOS(STATIC_5409), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5417_0_<init>_Load(EOS(STATIC_5417), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) | >=(i1780, i1197)
5410_0_<init>_Load(EOS(STATIC_5410), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5425_0_<init>_InvokeMethod(EOS(STATIC_5425), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5415_0_Supprimer_LE(EOS(STATIC_5415), i1775, i1780, i1132, i1807, i1828) → 5422_0_Supprimer_LE(EOS(STATIC_5422), i1775, i1780, i1132, i1807, i1828)
5415_0_Supprimer_LE(EOS(STATIC_5415), i1775, i1780, i1132, i1807, i1828) → 5423_0_Supprimer_LE(EOS(STATIC_5423), i1775, i1780, i1132, i1807, i1828)
5417_0_<init>_Load(EOS(STATIC_5417), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5435_0_<init>_InvokeMethod(EOS(STATIC_5435), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5422_0_Supprimer_LE(EOS(STATIC_5422), i1775, i1780, i1132, i1807, i1828) → 5431_0_Supprimer_Load(EOS(STATIC_5431), i1775, i1780, i1132) | <=(i1807, i1828)
5423_0_Supprimer_LE(EOS(STATIC_5423), i1775, i1780, i1132, i1807, i1828) → 5433_0_Supprimer_Inc(EOS(STATIC_5433), i1775, i1780, i1132) | >(i1807, i1828)
5425_0_<init>_InvokeMethod(EOS(STATIC_5425), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5436_0_<init>_Load(EOS(STATIC_5436), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5431_0_Supprimer_Load(EOS(STATIC_5431), i1775, i1780, i1132) → 5440_0_Supprimer_FieldAccess(EOS(STATIC_5440), i1775, i1780, i1132, i1132)
5433_0_Supprimer_Inc(EOS(STATIC_5433), i1775, i1780, i1132) → 5442_0_Supprimer_Load(EOS(STATIC_5442), i1775, +(i1780, 1), i1132) | >(i1780, 0)
5435_0_<init>_InvokeMethod(EOS(STATIC_5435), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5443_0_<init>_Load(EOS(STATIC_5443), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5436_0_<init>_Load(EOS(STATIC_5436), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5449_0_<init>_InvokeMethod(EOS(STATIC_5449), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5440_0_Supprimer_FieldAccess(EOS(STATIC_5440), i1775, i1780, i1132, i1132) → 5446_0_Supprimer_Load(EOS(STATIC_5446), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)))
5442_0_Supprimer_Load(EOS(STATIC_5442), i1775, i1837, i1132) → 5447_0_Supprimer_FieldAccess(EOS(STATIC_5447), i1775, i1837, i1132, i1132)
5443_0_<init>_Load(EOS(STATIC_5443), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5457_0_<init>_InvokeMethod(EOS(STATIC_5457), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5446_0_Supprimer_Load(EOS(STATIC_5446), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197))) → 5454_0_Supprimer_ArrayAccess(EOS(STATIC_5454), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5447_0_Supprimer_FieldAccess(EOS(STATIC_5447), i1775, i1837, i1132, i1132) → 5455_0_Supprimer_Load(EOS(STATIC_5455), i1775, i1837, i1132, i1132, java.lang.Object(ARRAY(i1197)))
5449_0_<init>_InvokeMethod(EOS(STATIC_5449), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5458_0_<init>_Load(EOS(STATIC_5458), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5454_0_Supprimer_ArrayAccess(EOS(STATIC_5454), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5462_0_Supprimer_ArrayAccess(EOS(STATIC_5462), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5454_0_Supprimer_ArrayAccess(EOS(STATIC_5454), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5463_0_Supprimer_ArrayAccess(EOS(STATIC_5463), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5455_0_Supprimer_Load(EOS(STATIC_5455), i1775, i1837, i1132, i1132, java.lang.Object(ARRAY(i1197))) → 5465_0_Supprimer_ArrayAccess(EOS(STATIC_5465), i1775, i1837, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1837)
5457_0_<init>_InvokeMethod(EOS(STATIC_5457), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5466_0_<init>_Load(EOS(STATIC_5466), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5458_0_<init>_Load(EOS(STATIC_5458), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5471_0_<init>_InvokeMethod(EOS(STATIC_5471), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5462_0_Supprimer_ArrayAccess(EOS(STATIC_5462), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5468_0_Supprimer_LT(EOS(STATIC_5468), i1775, i1780, i1132, i1132, i1857) | <(i1780, i1197)
5463_0_Supprimer_ArrayAccess(EOS(STATIC_5463), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5469_0_<init>_Load(EOS(STATIC_5469), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) | >=(i1780, i1197)
5465_0_Supprimer_ArrayAccess(EOS(STATIC_5465), i1775, i1837, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1837) → 5454_0_Supprimer_ArrayAccess(EOS(STATIC_5454), i1775, i1837, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1837)
5466_0_<init>_Load(EOS(STATIC_5466), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5477_0_<init>_InvokeMethod(EOS(STATIC_5477), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5468_0_Supprimer_LT(EOS(STATIC_5468), i1775, i1780, i1132, i1132, i1857) → 5474_0_Supprimer_LT(EOS(STATIC_5474), i1775, i1780, i1132, i1132, i1857)
5468_0_Supprimer_LT(EOS(STATIC_5468), i1775, i1780, i1132, i1132, i1857) → 5475_0_Supprimer_LT(EOS(STATIC_5475), i1775, i1780, i1132, i1132, i1857)
5469_0_<init>_Load(EOS(STATIC_5469), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5485_0_<init>_InvokeMethod(EOS(STATIC_5485), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5471_0_<init>_InvokeMethod(EOS(STATIC_5471), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5479_0_<init>_Load(EOS(STATIC_5479), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5474_0_Supprimer_LT(EOS(STATIC_5474), i1775, i1780, i1132, i1132, i1857) → 5481_0_Supprimer_FieldAccess(EOS(STATIC_5481), i1775, i1780, i1132) | <(i1132, i1857)
5475_0_Supprimer_LT(EOS(STATIC_5475), i1775, i1780, i1132, i1132, i1857) → 5482_0_Supprimer_JMP(EOS(STATIC_5482), i1775, i1132) | >=(i1132, i1857)
5477_0_<init>_InvokeMethod(EOS(STATIC_5477), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5486_0_<init>_Load(EOS(STATIC_5486), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5479_0_<init>_Load(EOS(STATIC_5479), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5493_0_<init>_InvokeMethod(EOS(STATIC_5493), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5481_0_Supprimer_FieldAccess(EOS(STATIC_5481), i1775, i1780, i1132) → 5487_0_Supprimer_Load(EOS(STATIC_5487), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)))
5482_0_Supprimer_JMP(EOS(STATIC_5482), i1775, i1132) → 5489_0_Supprimer_FieldAccess(EOS(STATIC_5489), i1775, i1132)
5485_0_<init>_InvokeMethod(EOS(STATIC_5485), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5490_0_<init>_Load(EOS(STATIC_5490), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5486_0_<init>_Load(EOS(STATIC_5486), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5497_0_<init>_InvokeMethod(EOS(STATIC_5497), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5487_0_Supprimer_Load(EOS(STATIC_5487), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197))) → 5494_0_Supprimer_FieldAccess(EOS(STATIC_5494), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5489_0_Supprimer_FieldAccess(EOS(STATIC_5489), i1775, i1132) → 5495_0_Supprimer_Load(EOS(STATIC_5495), i1775, i1132, java.lang.Object(ARRAY(i1197)))
5490_0_<init>_Load(EOS(STATIC_5490), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5504_0_<init>_InvokeMethod(EOS(STATIC_5504), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5493_0_<init>_InvokeMethod(EOS(STATIC_5493), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5499_0_<init>_Load(EOS(STATIC_5499), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5494_0_Supprimer_FieldAccess(EOS(STATIC_5494), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5500_0_Supprimer_Load(EOS(STATIC_5500), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)))
5495_0_Supprimer_Load(EOS(STATIC_5495), i1775, i1132, java.lang.Object(ARRAY(i1197))) → 5502_0_Supprimer_Load(EOS(STATIC_5502), i1132, java.lang.Object(ARRAY(i1197)), i1775)
5497_0_<init>_InvokeMethod(EOS(STATIC_5497), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5505_0_<init>_Load(EOS(STATIC_5505), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5499_0_<init>_Load(EOS(STATIC_5499), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5507_0_<init>_Load(EOS(STATIC_5507), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5500_0_Supprimer_Load(EOS(STATIC_5500), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197))) → 5508_0_Supprimer_ArrayAccess(EOS(STATIC_5508), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5502_0_Supprimer_Load(EOS(STATIC_5502), i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5510_0_Supprimer_ArrayAccess(EOS(STATIC_5510), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5504_0_<init>_InvokeMethod(EOS(STATIC_5504), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5511_0_<init>_Load(EOS(STATIC_5511), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5505_0_<init>_Load(EOS(STATIC_5505), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5520_0_<init>_InvokeMethod(EOS(STATIC_5520), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5507_0_<init>_Load(EOS(STATIC_5507), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5513_0_<init>_FieldAccess(EOS(STATIC_5513), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5508_0_Supprimer_ArrayAccess(EOS(STATIC_5508), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5514_0_Supprimer_ArrayAccess(EOS(STATIC_5514), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5508_0_Supprimer_ArrayAccess(EOS(STATIC_5508), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5515_0_Supprimer_ArrayAccess(EOS(STATIC_5515), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5510_0_Supprimer_ArrayAccess(EOS(STATIC_5510), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5517_0_Supprimer_ArrayAccess(EOS(STATIC_5517), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5510_0_Supprimer_ArrayAccess(EOS(STATIC_5510), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5518_0_Supprimer_ArrayAccess(EOS(STATIC_5518), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5511_0_<init>_Load(EOS(STATIC_5511), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5530_0_<init>_InvokeMethod(EOS(STATIC_5530), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5513_0_<init>_FieldAccess(EOS(STATIC_5513), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5522_0_<init>_Load(EOS(STATIC_5522), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5514_0_Supprimer_ArrayAccess(EOS(STATIC_5514), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5523_0_Supprimer_ArrayAccess(EOS(STATIC_5523), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) | <(i1780, i1197)
5515_0_Supprimer_ArrayAccess(EOS(STATIC_5515), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5524_0_<init>_Load(EOS(STATIC_5524), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) | >=(i1780, i1197)
5517_0_Supprimer_ArrayAccess(EOS(STATIC_5517), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5526_0_Supprimer_Return(EOS(STATIC_5526)) | <(i1775, i1197)
5518_0_Supprimer_ArrayAccess(EOS(STATIC_5518), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5527_0_<init>_Load(EOS(STATIC_5527), java.lang.Object(ARRAY(i1197)), i1775, i1132) | >=(i1775, i1197)
5520_0_<init>_InvokeMethod(EOS(STATIC_5520), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5532_0_<init>_Load(EOS(STATIC_5532), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5522_0_<init>_Load(EOS(STATIC_5522), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5533_0_<init>_InvokeMethod(EOS(STATIC_5533), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5523_0_Supprimer_ArrayAccess(EOS(STATIC_5523), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5535_0_Supprimer_ArrayAccess(EOS(STATIC_5535), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5523_0_Supprimer_ArrayAccess(EOS(STATIC_5523), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5536_0_Supprimer_ArrayAccess(EOS(STATIC_5536), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5524_0_<init>_Load(EOS(STATIC_5524), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5548_0_<init>_InvokeMethod(EOS(STATIC_5548), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5527_0_<init>_Load(EOS(STATIC_5527), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5551_0_<init>_InvokeMethod(EOS(STATIC_5551), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5530_0_<init>_InvokeMethod(EOS(STATIC_5530), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5538_0_<init>_Load(EOS(STATIC_5538), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5532_0_<init>_Load(EOS(STATIC_5532), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5540_0_<init>_Load(EOS(STATIC_5540), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5533_0_<init>_InvokeMethod(EOS(STATIC_5533), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5542_0_<init>_StackPop(EOS(STATIC_5542), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5535_0_Supprimer_ArrayAccess(EOS(STATIC_5535), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5544_0_Supprimer_Load(EOS(STATIC_5544), i1780, i1132) | <(i1775, i1197)
5536_0_Supprimer_ArrayAccess(EOS(STATIC_5536), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5545_0_<init>_Load(EOS(STATIC_5545), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) | >=(i1775, i1197)
5538_0_<init>_Load(EOS(STATIC_5538), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5563_0_<init>_InvokeMethod(EOS(STATIC_5563), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5540_0_<init>_Load(EOS(STATIC_5540), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5554_0_<init>_FieldAccess(EOS(STATIC_5554), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5542_0_<init>_StackPop(EOS(STATIC_5542), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5555_0_<init>_Return(EOS(STATIC_5555), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5544_0_Supprimer_Load(EOS(STATIC_5544), i1780, i1132) → 5556_0_Supprimer_Store(EOS(STATIC_5556), i1132, i1780)
5545_0_<init>_Load(EOS(STATIC_5545), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5572_0_<init>_InvokeMethod(EOS(STATIC_5572), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5548_0_<init>_InvokeMethod(EOS(STATIC_5548), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5558_0_<init>_Load(EOS(STATIC_5558), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5551_0_<init>_InvokeMethod(EOS(STATIC_5551), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5561_0_<init>_Load(EOS(STATIC_5561), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5554_0_<init>_FieldAccess(EOS(STATIC_5554), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5566_0_<init>_Load(EOS(STATIC_5566), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5555_0_<init>_Return(EOS(STATIC_5555), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5568_0_<init>_Return(EOS(STATIC_5568), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5556_0_Supprimer_Store(EOS(STATIC_5556), i1132, i1780) → 5569_0_Supprimer_JMP(EOS(STATIC_5569), i1780, i1132)
5558_0_<init>_Load(EOS(STATIC_5558), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5583_0_<init>_InvokeMethod(EOS(STATIC_5583), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5561_0_<init>_Load(EOS(STATIC_5561), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5585_0_<init>_InvokeMethod(EOS(STATIC_5585), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5563_0_<init>_InvokeMethod(EOS(STATIC_5563), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5573_0_<init>_Load(EOS(STATIC_5573), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5566_0_<init>_Load(EOS(STATIC_5566), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5576_0_<init>_InvokeMethod(EOS(STATIC_5576), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5568_0_<init>_Return(EOS(STATIC_5568), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5577_0_<init>_Return(EOS(STATIC_5577), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5569_0_Supprimer_JMP(EOS(STATIC_5569), i1780, i1132) → 5579_0_Supprimer_ConstantStackPush(EOS(STATIC_5579), i1780, i1132)
5572_0_<init>_InvokeMethod(EOS(STATIC_5572), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5580_0_<init>_Load(EOS(STATIC_5580), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5573_0_<init>_Load(EOS(STATIC_5573), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5595_0_<init>_InvokeMethod(EOS(STATIC_5595), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5576_0_<init>_InvokeMethod(EOS(STATIC_5576), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5588_0_<init>_StackPop(EOS(STATIC_5588), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5577_0_<init>_Return(EOS(STATIC_5577), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5590_0_<init>_Return(EOS(STATIC_5590), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5579_0_Supprimer_ConstantStackPush(EOS(STATIC_5579), i1780, i1132) → 5308_0_Supprimer_ConstantStackPush(EOS(STATIC_5308), i1780, i1132)
5580_0_<init>_Load(EOS(STATIC_5580), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5602_0_<init>_InvokeMethod(EOS(STATIC_5602), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5583_0_<init>_InvokeMethod(EOS(STATIC_5583), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5591_0_<init>_Load(EOS(STATIC_5591), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5585_0_<init>_InvokeMethod(EOS(STATIC_5585), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5592_0_<init>_Load(EOS(STATIC_5592), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5588_0_<init>_StackPop(EOS(STATIC_5588), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5597_0_<init>_Return(EOS(STATIC_5597), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5590_0_<init>_Return(EOS(STATIC_5590), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5599_0_<init>_Return(EOS(STATIC_5599), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5591_0_<init>_Load(EOS(STATIC_5591), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5612_0_<init>_InvokeMethod(EOS(STATIC_5612), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5592_0_<init>_Load(EOS(STATIC_5592), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5614_0_<init>_InvokeMethod(EOS(STATIC_5614), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5595_0_<init>_InvokeMethod(EOS(STATIC_5595), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5605_0_<init>_Load(EOS(STATIC_5605), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5597_0_<init>_Return(EOS(STATIC_5597), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5606_0_<init>_Return(EOS(STATIC_5606), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5599_0_<init>_Return(EOS(STATIC_5599), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804) → 5608_0_Supprimer_ArrayAccess(EOS(STATIC_5608), i1775, i1780, i1132, java.lang.Object(ARRAY(i1197)), i1804)
5602_0_<init>_InvokeMethod(EOS(STATIC_5602), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5609_0_<init>_Load(EOS(STATIC_5609), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5605_0_<init>_Load(EOS(STATIC_5605), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5616_0_<init>_Load(EOS(STATIC_5616), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5606_0_<init>_Return(EOS(STATIC_5606), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5618_0_<init>_Return(EOS(STATIC_5618), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5609_0_<init>_Load(EOS(STATIC_5609), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5630_0_<init>_InvokeMethod(EOS(STATIC_5630), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5612_0_<init>_InvokeMethod(EOS(STATIC_5612), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5621_0_<init>_Load(EOS(STATIC_5621), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5614_0_<init>_InvokeMethod(EOS(STATIC_5614), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5622_0_<init>_Load(EOS(STATIC_5622), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5616_0_<init>_Load(EOS(STATIC_5616), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5624_0_<init>_FieldAccess(EOS(STATIC_5624), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5618_0_<init>_Return(EOS(STATIC_5618), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5626_0_<init>_Return(EOS(STATIC_5626), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5621_0_<init>_Load(EOS(STATIC_5621), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5640_0_<init>_InvokeMethod(EOS(STATIC_5640), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5622_0_<init>_Load(EOS(STATIC_5622), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5643_0_<init>_InvokeMethod(EOS(STATIC_5643), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5624_0_<init>_FieldAccess(EOS(STATIC_5624), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5633_0_<init>_Load(EOS(STATIC_5633), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5626_0_<init>_Return(EOS(STATIC_5626), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5635_0_<init>_Return(EOS(STATIC_5635), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5630_0_<init>_InvokeMethod(EOS(STATIC_5630), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5637_0_<init>_Load(EOS(STATIC_5637), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5633_0_<init>_Load(EOS(STATIC_5633), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5645_0_<init>_InvokeMethod(EOS(STATIC_5645), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5635_0_<init>_Return(EOS(STATIC_5635), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780) → 5647_0_Supprimer_ArrayAccess(EOS(STATIC_5647), i1775, i1780, i1132, i1807, java.lang.Object(ARRAY(i1197)), i1780)
5637_0_<init>_Load(EOS(STATIC_5637), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5659_0_<init>_InvokeMethod(EOS(STATIC_5659), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5640_0_<init>_InvokeMethod(EOS(STATIC_5640), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5650_0_<init>_Load(EOS(STATIC_5650), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5643_0_<init>_InvokeMethod(EOS(STATIC_5643), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5651_0_<init>_Load(EOS(STATIC_5651), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5645_0_<init>_InvokeMethod(EOS(STATIC_5645), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5654_0_<init>_StackPop(EOS(STATIC_5654), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5650_0_<init>_Load(EOS(STATIC_5650), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5667_0_<init>_InvokeMethod(EOS(STATIC_5667), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5651_0_<init>_Load(EOS(STATIC_5651), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5670_0_<init>_InvokeMethod(EOS(STATIC_5670), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5654_0_<init>_StackPop(EOS(STATIC_5654), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5662_0_<init>_Return(EOS(STATIC_5662), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5659_0_<init>_InvokeMethod(EOS(STATIC_5659), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5664_0_<init>_Load(EOS(STATIC_5664), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5662_0_<init>_Return(EOS(STATIC_5662), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5672_0_<init>_Return(EOS(STATIC_5672), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5664_0_<init>_Load(EOS(STATIC_5664), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5691_0_<init>_InvokeMethod(EOS(STATIC_5691), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5667_0_<init>_InvokeMethod(EOS(STATIC_5667), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5679_0_<init>_Load(EOS(STATIC_5679), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5670_0_<init>_InvokeMethod(EOS(STATIC_5670), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5682_0_<init>_Load(EOS(STATIC_5682), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5672_0_<init>_Return(EOS(STATIC_5672), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5684_0_<init>_Return(EOS(STATIC_5684), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5679_0_<init>_Load(EOS(STATIC_5679), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5693_0_<init>_Load(EOS(STATIC_5693), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5682_0_<init>_Load(EOS(STATIC_5682), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5696_0_<init>_Load(EOS(STATIC_5696), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5684_0_<init>_Return(EOS(STATIC_5684), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5698_0_<init>_Return(EOS(STATIC_5698), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5691_0_<init>_InvokeMethod(EOS(STATIC_5691), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5703_0_<init>_Load(EOS(STATIC_5703), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5693_0_<init>_Load(EOS(STATIC_5693), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5706_0_<init>_FieldAccess(EOS(STATIC_5706), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5696_0_<init>_Load(EOS(STATIC_5696), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5709_0_<init>_FieldAccess(EOS(STATIC_5709), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5698_0_<init>_Return(EOS(STATIC_5698), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5711_0_<init>_Return(EOS(STATIC_5711), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5703_0_<init>_Load(EOS(STATIC_5703), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5715_0_<init>_Load(EOS(STATIC_5715), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5706_0_<init>_FieldAccess(EOS(STATIC_5706), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5720_0_<init>_Load(EOS(STATIC_5720), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5709_0_<init>_FieldAccess(EOS(STATIC_5709), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5723_0_<init>_Load(EOS(STATIC_5723), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5711_0_<init>_Return(EOS(STATIC_5711), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780) → 5725_0_Supprimer_ArrayAccess(EOS(STATIC_5725), i1775, i1780, i1132, i1132, java.lang.Object(ARRAY(i1197)), i1780)
5715_0_<init>_Load(EOS(STATIC_5715), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5730_0_<init>_FieldAccess(EOS(STATIC_5730), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5720_0_<init>_Load(EOS(STATIC_5720), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5732_0_<init>_InvokeMethod(EOS(STATIC_5732), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5723_0_<init>_Load(EOS(STATIC_5723), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5735_0_<init>_InvokeMethod(EOS(STATIC_5735), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5730_0_<init>_FieldAccess(EOS(STATIC_5730), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5740_0_<init>_Load(EOS(STATIC_5740), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5732_0_<init>_InvokeMethod(EOS(STATIC_5732), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5743_0_<init>_StackPop(EOS(STATIC_5743), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5735_0_<init>_InvokeMethod(EOS(STATIC_5735), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5746_0_<init>_StackPop(EOS(STATIC_5746), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5740_0_<init>_Load(EOS(STATIC_5740), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5750_0_<init>_InvokeMethod(EOS(STATIC_5750), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5743_0_<init>_StackPop(EOS(STATIC_5743), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5752_0_<init>_Return(EOS(STATIC_5752), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5746_0_<init>_StackPop(EOS(STATIC_5746), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5755_0_<init>_Return(EOS(STATIC_5755), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5750_0_<init>_InvokeMethod(EOS(STATIC_5750), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5760_0_<init>_StackPop(EOS(STATIC_5760), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5752_0_<init>_Return(EOS(STATIC_5752), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5762_0_<init>_Return(EOS(STATIC_5762), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5755_0_<init>_Return(EOS(STATIC_5755), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5765_0_<init>_Return(EOS(STATIC_5765), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5760_0_<init>_StackPop(EOS(STATIC_5760), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5770_0_<init>_Return(EOS(STATIC_5770), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5762_0_<init>_Return(EOS(STATIC_5762), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5773_0_<init>_Return(EOS(STATIC_5773), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5765_0_<init>_Return(EOS(STATIC_5765), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5775_0_<init>_Return(EOS(STATIC_5775), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5770_0_<init>_Return(EOS(STATIC_5770), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5780_0_<init>_Return(EOS(STATIC_5780), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5773_0_<init>_Return(EOS(STATIC_5773), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5782_0_<init>_Return(EOS(STATIC_5782), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5775_0_<init>_Return(EOS(STATIC_5775), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5785_0_<init>_Return(EOS(STATIC_5785), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5780_0_<init>_Return(EOS(STATIC_5780), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5789_0_<init>_Return(EOS(STATIC_5789), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5782_0_<init>_Return(EOS(STATIC_5782), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5791_0_<init>_Return(EOS(STATIC_5791), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5785_0_<init>_Return(EOS(STATIC_5785), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5794_0_<init>_Return(EOS(STATIC_5794), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5789_0_<init>_Return(EOS(STATIC_5789), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5799_0_<init>_Return(EOS(STATIC_5799), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5791_0_<init>_Return(EOS(STATIC_5791), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780) → 5801_0_Supprimer_ArrayAccess(EOS(STATIC_5801), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775, java.lang.Object(ARRAY(i1197)), i1780)
5794_0_<init>_Return(EOS(STATIC_5794), java.lang.Object(ARRAY(i1197)), i1775, i1132) → 5803_0_Supprimer_ArrayAccess(EOS(STATIC_5803), java.lang.Object(ARRAY(i1197)), i1775, i1132)
5799_0_<init>_Return(EOS(STATIC_5799), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5805_0_<init>_Return(EOS(STATIC_5805), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)
5805_0_<init>_Return(EOS(STATIC_5805), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775) → 5809_0_Supprimer_ArrayAccess(EOS(STATIC_5809), i1780, i1132, java.lang.Object(ARRAY(i1197)), i1775)

Combined rules. Obtained 1 conditional rules for P and 15 conditional rules for R.


P rules:
4233_1_HeapSort_InvokeMethod(5526_0_Supprimer_Return(EOS(STATIC_5526)), x0) → 4233_1_HeapSort_InvokeMethod(4233_0_Supprimer_FieldAccess(EOS(STATIC_4233)), +(x0, -1)) | >(+(x0, 1), 1)
R rules:
4233_0_Supprimer_FieldAccess(EOS(STATIC_4233)) → 4453_0_Supprimer_ArrayAccess(EOS(STATIC_4453), java.lang.Object(ARRAY(x0)), 0, java.lang.Object(ARRAY(x0)), -(x1, 1)) | <=(x1, 0)
4233_0_Supprimer_FieldAccess(EOS(STATIC_4233)) → 4463_0_Supprimer_ArrayAccess(EOS(STATIC_4463), java.lang.Object(ARRAY(x0)), 0, java.lang.Object(ARRAY(x0)), -(x1, 1)) | <=(x0, -(x1, 1))
4233_0_Supprimer_FieldAccess(EOS(STATIC_4233)) → 5318_0_Supprimer_GE(EOS(STATIC_5318), 0, x0, 1, x1)
5318_0_Supprimer_GE(EOS(STATIC_5318), x0, x1, x2, x3) → 5454_0_Supprimer_ArrayAccess(EOS(STATIC_5454), x0, +(*(2, x0), 1), x1, x1, java.lang.Object(ARRAY(x4)), +(*(2, x0), 1)) | &&(>(x3, x2), <=(0, *(2, x0)))
5318_0_Supprimer_GE(EOS(STATIC_5318), x0, x1, x2, x3) → 5454_0_Supprimer_ArrayAccess(EOS(STATIC_5454), x0, +(*(2, x0), 2), x1, x1, java.lang.Object(ARRAY(x4)), +(*(2, x0), 2)) | &&(>(x3, x2), <=(0, *(2, x0)))
5318_0_Supprimer_GE(EOS(STATIC_5318), x0, x1, x2, x3) → 5510_0_Supprimer_ArrayAccess(EOS(STATIC_5510), java.lang.Object(ARRAY(x4)), x0, x1) | <=(x3, x2)
5454_0_Supprimer_ArrayAccess(EOS(STATIC_5454), x0, x1, x2, x2, java.lang.Object(ARRAY(x3)), x1) → 5510_0_Supprimer_ArrayAccess(EOS(STATIC_5510), java.lang.Object(ARRAY(x4)), x0, x2) | >(x3, x1)
5510_0_Supprimer_ArrayAccess(EOS(STATIC_5510), java.lang.Object(ARRAY(x0)), x1, x2) → 5526_0_Supprimer_Return(EOS(STATIC_5526)) | <(x1, x0)
5454_0_Supprimer_ArrayAccess(EOS(STATIC_5454), x0, x1, x2, x2, java.lang.Object(ARRAY(x3)), x1) → 5318_0_Supprimer_GE(EOS(STATIC_5318), x1, x2, +(*(2, x1), 1), x4) | &&(>(x3, x1), <=(0, *(2, x1)))
5318_0_Supprimer_GE(EOS(STATIC_5318), x0, x1, x2, x3) → 5608_0_Supprimer_ArrayAccess(EOS(STATIC_5608), x0, +(*(2, x0), 1), x1, java.lang.Object(ARRAY(x4)), +(*(2, x0), 2)) | &&(&&(<=(x4, +(*(2, x0), 2)), >(x3, x2)), <=(0, *(2, x0)))
5318_0_Supprimer_GE(EOS(STATIC_5318), x0, x1, x2, x3) → 5647_0_Supprimer_ArrayAccess(EOS(STATIC_5647), x0, +(*(2, x0), 1), x1, x4, java.lang.Object(ARRAY(x5)), +(*(2, x0), 1)) | &&(&&(<=(x5, +(*(2, x0), 1)), >(x3, x2)), <=(0, *(2, x0)))
5454_0_Supprimer_ArrayAccess(EOS(STATIC_5454), x0, x1, x2, x2, java.lang.Object(ARRAY(x3)), x1) → 5725_0_Supprimer_ArrayAccess(EOS(STATIC_5725), x0, x1, x2, x2, java.lang.Object(ARRAY(x3)), x1) | <=(x3, x1)
5454_0_Supprimer_ArrayAccess(EOS(STATIC_5454), x0, x1, x2, x2, java.lang.Object(ARRAY(x3)), x1) → 5801_0_Supprimer_ArrayAccess(EOS(STATIC_5801), x1, x2, java.lang.Object(ARRAY(x4)), x0, java.lang.Object(ARRAY(x4)), x1) | &&(<=(x4, x1), >(x3, x1))
5510_0_Supprimer_ArrayAccess(EOS(STATIC_5510), java.lang.Object(ARRAY(x0)), x1, x2) → 5803_0_Supprimer_ArrayAccess(EOS(STATIC_5803), java.lang.Object(ARRAY(x0)), x1, x2) | >=(x1, x0)
5454_0_Supprimer_ArrayAccess(EOS(STATIC_5454), x0, x1, x2, x2, java.lang.Object(ARRAY(x3)), x1) → 5809_0_Supprimer_ArrayAccess(EOS(STATIC_5809), x1, x2, java.lang.Object(ARRAY(x4)), x0) | &&(&&(>(x4, x1), <=(x4, x0)), >(x3, x1))

Filtered ground terms:



4233_0_Supprimer_FieldAccess(x1) → 4233_0_Supprimer_FieldAccess
Cond_4233_1_HeapSort_InvokeMethod(x1, x2, x3) → Cond_4233_1_HeapSort_InvokeMethod(x1, x3)
5526_0_Supprimer_Return(x1) → 5526_0_Supprimer_Return
5809_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5) → 5809_0_Supprimer_ArrayAccess(x2, x3, x4, x5)
Cond_5454_0_Supprimer_ArrayAccess4(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_5454_0_Supprimer_ArrayAccess4(x1, x3, x4, x5, x6, x7, x8, x9)
5454_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5, x6, x7) → 5454_0_Supprimer_ArrayAccess(x2, x3, x4, x5, x6, x7)
5803_0_Supprimer_ArrayAccess(x1, x2, x3, x4) → 5803_0_Supprimer_ArrayAccess(x2, x3, x4)
Cond_5510_0_Supprimer_ArrayAccess1(x1, x2, x3, x4, x5) → Cond_5510_0_Supprimer_ArrayAccess1(x1, x3, x4, x5)
5510_0_Supprimer_ArrayAccess(x1, x2, x3, x4) → 5510_0_Supprimer_ArrayAccess(x2, x3, x4)
5801_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5, x6, x7) → 5801_0_Supprimer_ArrayAccess(x2, x3, x4, x5, x6, x7)
Cond_5454_0_Supprimer_ArrayAccess3(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_5454_0_Supprimer_ArrayAccess3(x1, x3, x4, x5, x6, x7, x8, x9)
5725_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5, x6, x7) → 5725_0_Supprimer_ArrayAccess(x2, x3, x4, x5, x6, x7)
Cond_5454_0_Supprimer_ArrayAccess2(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_5454_0_Supprimer_ArrayAccess2(x1, x3, x4, x5, x6, x7, x8)
5647_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5, x6, x7) → 5647_0_Supprimer_ArrayAccess(x2, x3, x4, x5, x6, x7)
Cond_5318_0_Supprimer_GE4(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_5318_0_Supprimer_GE4(x1, x3, x4, x5, x6, x7, x8)
5318_0_Supprimer_GE(x1, x2, x3, x4, x5) → 5318_0_Supprimer_GE(x2, x3, x4, x5)
5608_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5, x6) → 5608_0_Supprimer_ArrayAccess(x2, x3, x4, x5, x6)
Cond_5318_0_Supprimer_GE3(x1, x2, x3, x4, x5, x6, x7) → Cond_5318_0_Supprimer_GE3(x1, x3, x4, x5, x6, x7)
Cond_5454_0_Supprimer_ArrayAccess1(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_5454_0_Supprimer_ArrayAccess1(x1, x3, x4, x5, x6, x7, x8, x9)
Cond_5510_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5) → Cond_5510_0_Supprimer_ArrayAccess(x1, x3, x4, x5)
Cond_5454_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_5454_0_Supprimer_ArrayAccess(x1, x3, x4, x5, x6, x7, x8, x9)
Cond_5318_0_Supprimer_GE2(x1, x2, x3, x4, x5, x6, x7) → Cond_5318_0_Supprimer_GE2(x1, x3, x4, x5, x6, x7)
Cond_5318_0_Supprimer_GE1(x1, x2, x3, x4, x5, x6, x7) → Cond_5318_0_Supprimer_GE1(x1, x3, x4, x5, x6, x7)
Cond_5318_0_Supprimer_GE(x1, x2, x3, x4, x5, x6, x7) → Cond_5318_0_Supprimer_GE(x1, x3, x4, x5, x6, x7)
4463_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5) → 4463_0_Supprimer_ArrayAccess(x2, x4, x5)
Cond_4233_0_Supprimer_FieldAccess1(x1, x2, x3, x4) → Cond_4233_0_Supprimer_FieldAccess1(x1, x3, x4)
4453_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5) → 4453_0_Supprimer_ArrayAccess(x2, x4, x5)
Cond_4233_0_Supprimer_FieldAccess(x1, x2, x3, x4) → Cond_4233_0_Supprimer_FieldAccess(x1, x3, x4)

Filtered duplicate args:



4453_0_Supprimer_ArrayAccess(x1, x2, x3) → 4453_0_Supprimer_ArrayAccess(x2, x3)
4463_0_Supprimer_ArrayAccess(x1, x2, x3) → 4463_0_Supprimer_ArrayAccess(x2, x3)
5454_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5, x6) → 5454_0_Supprimer_ArrayAccess(x1, x4, x5, x6)
Cond_5454_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_5454_0_Supprimer_ArrayAccess(x1, x2, x5, x6, x7, x8)
Cond_5454_0_Supprimer_ArrayAccess1(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_5454_0_Supprimer_ArrayAccess1(x1, x2, x5, x6, x7, x8)
5608_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5) → 5608_0_Supprimer_ArrayAccess(x2, x3, x4, x5)
5647_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5, x6) → 5647_0_Supprimer_ArrayAccess(x3, x4, x5, x6)
Cond_5454_0_Supprimer_ArrayAccess2(x1, x2, x3, x4, x5, x6, x7) → Cond_5454_0_Supprimer_ArrayAccess2(x1, x2, x5, x6, x7)
5725_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5, x6) → 5725_0_Supprimer_ArrayAccess(x1, x4, x5, x6)
Cond_5454_0_Supprimer_ArrayAccess3(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_5454_0_Supprimer_ArrayAccess3(x1, x2, x5, x6, x7, x8)
5801_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5, x6) → 5801_0_Supprimer_ArrayAccess(x2, x4, x5, x6)
Cond_5454_0_Supprimer_ArrayAccess4(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_5454_0_Supprimer_ArrayAccess4(x1, x2, x5, x6, x7, x8)

Filtered unneeded arguments:



Cond_4233_0_Supprimer_FieldAccess(x1, x2, x3) → Cond_4233_0_Supprimer_FieldAccess(x1)
Cond_4233_0_Supprimer_FieldAccess1(x1, x2, x3) → Cond_4233_0_Supprimer_FieldAccess1(x1)
Cond_5318_0_Supprimer_GE(x1, x2, x3, x4, x5, x6) → Cond_5318_0_Supprimer_GE(x1, x2, x6)
Cond_5318_0_Supprimer_GE1(x1, x2, x3, x4, x5, x6) → Cond_5318_0_Supprimer_GE1(x1, x2, x6)
Cond_5318_0_Supprimer_GE2(x1, x2, x3, x4, x5, x6) → Cond_5318_0_Supprimer_GE2(x1, x2, x6)
Cond_5454_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5, x6) → Cond_5454_0_Supprimer_ArrayAccess(x1, x2, x6)
Cond_5510_0_Supprimer_ArrayAccess(x1, x2, x3, x4) → Cond_5510_0_Supprimer_ArrayAccess(x1)
Cond_5454_0_Supprimer_ArrayAccess1(x1, x2, x3, x4, x5, x6) → Cond_5454_0_Supprimer_ArrayAccess1(x1, x5, x6)
Cond_5318_0_Supprimer_GE3(x1, x2, x3, x4, x5, x6) → Cond_5318_0_Supprimer_GE3(x1)
Cond_5318_0_Supprimer_GE4(x1, x2, x3, x4, x5, x6, x7) → Cond_5318_0_Supprimer_GE4(x1)
Cond_5454_0_Supprimer_ArrayAccess2(x1, x2, x3, x4, x5) → Cond_5454_0_Supprimer_ArrayAccess2(x1)
Cond_5454_0_Supprimer_ArrayAccess3(x1, x2, x3, x4, x5, x6) → Cond_5454_0_Supprimer_ArrayAccess3(x1)
Cond_5510_0_Supprimer_ArrayAccess1(x1, x2, x3, x4) → Cond_5510_0_Supprimer_ArrayAccess1(x1)
Cond_5454_0_Supprimer_ArrayAccess4(x1, x2, x3, x4, x5, x6) → Cond_5454_0_Supprimer_ArrayAccess4(x1)
5318_0_Supprimer_GE(x1, x2, x3, x4) → 5318_0_Supprimer_GE(x1, x3, x4)
5454_0_Supprimer_ArrayAccess(x1, x2, x3, x4) → 5454_0_Supprimer_ArrayAccess(x1, x3, x4)
5510_0_Supprimer_ArrayAccess(x1, x2, x3) → 5510_0_Supprimer_ArrayAccess(x1, x2)

Combined rules. Obtained 1 conditional rules for P and 15 conditional rules for R.


P rules:
4233_1_HeapSort_InvokeMethod(5526_0_Supprimer_Return, x0) → 4233_1_HeapSort_InvokeMethod(4233_0_Supprimer_FieldAccess, +(x0, -1)) | >(x0, 0)
R rules:
4233_0_Supprimer_FieldAccess4453_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), -(x1, 1)) | <=(x1, 0)
4233_0_Supprimer_FieldAccess4463_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), -(x1, 1)) | <=(x0, -(x1, 1))
4233_0_Supprimer_FieldAccess5318_0_Supprimer_GE(0, 1, x1)
5318_0_Supprimer_GE(x0, x2, x3) → 5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x4)), +(*(2, x0), 1)) | &&(>(x3, x2), <=(0, *(2, x0)))
5318_0_Supprimer_GE(x0, x2, x3) → 5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x4)), +(*(2, x0), 2)) | &&(>(x3, x2), <=(0, *(2, x0)))
5318_0_Supprimer_GE(x0, x2, x3) → 5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x4)), x0) | <=(x3, x2)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → 5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x4)), x0) | >(x3, x1)
5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1) → 5526_0_Supprimer_Return | <(x1, x0)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → 5318_0_Supprimer_GE(x1, +(*(2, x1), 1), x4) | &&(>(x3, x1), <=(0, *(2, x1)))
5318_0_Supprimer_GE(x0, x2, x3) → 5608_0_Supprimer_ArrayAccess(+(*(2, x0), 1), x1, java.lang.Object(ARRAY(x4)), +(*(2, x0), 2)) | &&(&&(<=(x4, +(*(2, x0), 2)), >(x3, x2)), <=(0, *(2, x0)))
5318_0_Supprimer_GE(x0, x2, x3) → 5647_0_Supprimer_ArrayAccess(x1, x4, java.lang.Object(ARRAY(x5)), +(*(2, x0), 1)) | &&(&&(<=(x5, +(*(2, x0), 1)), >(x3, x2)), <=(0, *(2, x0)))
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → 5725_0_Supprimer_ArrayAccess(x0, x2, java.lang.Object(ARRAY(x3)), x1) | <=(x3, x1)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → 5801_0_Supprimer_ArrayAccess(x2, x0, java.lang.Object(ARRAY(x4)), x1) | &&(<=(x4, x1), >(x3, x1))
5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1) → 5803_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1, x2) | >=(x1, x0)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → 5809_0_Supprimer_ArrayAccess(x1, x2, java.lang.Object(ARRAY(x4)), x0) | &&(&&(>(x4, x1), <=(x4, x0)), >(x3, x1))

Performed bisimulation on rules. Used the following equivalence classes: {[4453_0_Supprimer_ArrayAccess_2, 4463_0_Supprimer_ArrayAccess_2]=4453_0_Supprimer_ArrayAccess_2, [Cond_5318_0_Supprimer_GE_5, Cond_5318_0_Supprimer_GE1_5]=Cond_5318_0_Supprimer_GE_5, [5725_0_Supprimer_ArrayAccess_4, 5801_0_Supprimer_ArrayAccess_4, 5809_0_Supprimer_ArrayAccess_4]=5725_0_Supprimer_ArrayAccess_4}


Finished conversion. Obtained 2 rules for P and 28 rules for R. System has predefined symbols.


P rules:
4233_1_HEAPSORT_INVOKEMETHOD(5526_0_Supprimer_Return, x0) → COND_4233_1_HEAPSORT_INVOKEMETHOD(>(x0, 0), 5526_0_Supprimer_Return, x0)
COND_4233_1_HEAPSORT_INVOKEMETHOD(TRUE, 5526_0_Supprimer_Return, x0) → 4233_1_HEAPSORT_INVOKEMETHOD(4233_0_Supprimer_FieldAccess, +(x0, -1))
R rules:
4233_0_Supprimer_FieldAccessCond_4233_0_Supprimer_FieldAccess(<=(x1, 0), x0, x1)
Cond_4233_0_Supprimer_FieldAccess(TRUE, x0, x1) → 4453_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), -(x1, 1))
4233_0_Supprimer_FieldAccessCond_4233_0_Supprimer_FieldAccess1(<=(x0, -(x1, 1)), x0, x1)
Cond_4233_0_Supprimer_FieldAccess1(TRUE, x0, x1) → 4453_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), -(x1, 1))
4233_0_Supprimer_FieldAccess5318_0_Supprimer_GE(0, 1, x1)
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE(&&(>(x3, x2), <=(0, *(2, x0))), x0, x2, x3, x4)
Cond_5318_0_Supprimer_GE(TRUE, x0, x2, x3, x4) → 5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x4)), +(*(2, x0), 1))
Cond_5318_0_Supprimer_GE(TRUE, x0, x2, x3, x4) → 5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x4)), +(*(2, x0), 2))
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE2(<=(x3, x2), x0, x2, x3, x4)
Cond_5318_0_Supprimer_GE2(TRUE, x0, x2, x3, x4) → 5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x4)), x0)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess(>(x3, x1), x0, java.lang.Object(ARRAY(x3)), x1, x4)
Cond_5454_0_Supprimer_ArrayAccess(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x4) → 5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x4)), x0)
5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1) → Cond_5510_0_Supprimer_ArrayAccess(<(x1, x0), java.lang.Object(ARRAY(x0)), x1)
Cond_5510_0_Supprimer_ArrayAccess(TRUE, java.lang.Object(ARRAY(x0)), x1) → 5526_0_Supprimer_Return
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess1(&&(>(x3, x1), <=(0, *(2, x1))), x0, java.lang.Object(ARRAY(x3)), x1, x4)
Cond_5454_0_Supprimer_ArrayAccess1(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x4) → 5318_0_Supprimer_GE(x1, +(*(2, x1), 1), x4)
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE3(&&(&&(<=(x4, +(*(2, x0), 2)), >(x3, x2)), <=(0, *(2, x0))), x0, x2, x3, x1, x4)
Cond_5318_0_Supprimer_GE3(TRUE, x0, x2, x3, x1, x4) → 5608_0_Supprimer_ArrayAccess(+(*(2, x0), 1), x1, java.lang.Object(ARRAY(x4)), +(*(2, x0), 2))
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE4(&&(&&(<=(x5, +(*(2, x0), 1)), >(x3, x2)), <=(0, *(2, x0))), x0, x2, x3, x1, x4, x5)
Cond_5318_0_Supprimer_GE4(TRUE, x0, x2, x3, x1, x4, x5) → 5647_0_Supprimer_ArrayAccess(x1, x4, java.lang.Object(ARRAY(x5)), +(*(2, x0), 1))
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess2(<=(x3, x1), x0, java.lang.Object(ARRAY(x3)), x1, x2)
Cond_5454_0_Supprimer_ArrayAccess2(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x2) → 5725_0_Supprimer_ArrayAccess(x0, x2, java.lang.Object(ARRAY(x3)), x1)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess3(&&(<=(x4, x1), >(x3, x1)), x0, java.lang.Object(ARRAY(x3)), x1, x2, x4)
Cond_5454_0_Supprimer_ArrayAccess3(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x2, x4) → 5725_0_Supprimer_ArrayAccess(x2, x0, java.lang.Object(ARRAY(x4)), x1)
5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1) → Cond_5510_0_Supprimer_ArrayAccess1(>=(x1, x0), java.lang.Object(ARRAY(x0)), x1, x2)
Cond_5510_0_Supprimer_ArrayAccess1(TRUE, java.lang.Object(ARRAY(x0)), x1, x2) → 5803_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1, x2)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess4(&&(&&(>(x4, x1), <=(x4, x0)), >(x3, x1)), x0, java.lang.Object(ARRAY(x3)), x1, x2, x4)
Cond_5454_0_Supprimer_ArrayAccess4(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x2, x4) → 5725_0_Supprimer_ArrayAccess(x1, x2, java.lang.Object(ARRAY(x4)), x0)

(21) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
4233_0_Supprimer_FieldAccessCond_4233_0_Supprimer_FieldAccess(x1 <= 0, x0, x1)
Cond_4233_0_Supprimer_FieldAccess(TRUE, x0, x1) → 4453_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1 - 1)
4233_0_Supprimer_FieldAccessCond_4233_0_Supprimer_FieldAccess1(x0 <= x1 - 1, x0, x1)
Cond_4233_0_Supprimer_FieldAccess1(TRUE, x0, x1) → 4453_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1 - 1)
4233_0_Supprimer_FieldAccess5318_0_Supprimer_GE(0, 1, x1)
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE(x3 > x2 && 0 <= 2 * x0, x0, x2, x3, x4)
Cond_5318_0_Supprimer_GE(TRUE, x0, x2, x3, x4) → 5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x4)), 2 * x0 + 1)
Cond_5318_0_Supprimer_GE(TRUE, x0, x2, x3, x4) → 5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x4)), 2 * x0 + 2)
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE2(x3 <= x2, x0, x2, x3, x4)
Cond_5318_0_Supprimer_GE2(TRUE, x0, x2, x3, x4) → 5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x4)), x0)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess(x3 > x1, x0, java.lang.Object(ARRAY(x3)), x1, x4)
Cond_5454_0_Supprimer_ArrayAccess(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x4) → 5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x4)), x0)
5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1) → Cond_5510_0_Supprimer_ArrayAccess(x1 < x0, java.lang.Object(ARRAY(x0)), x1)
Cond_5510_0_Supprimer_ArrayAccess(TRUE, java.lang.Object(ARRAY(x0)), x1) → 5526_0_Supprimer_Return
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess1(x3 > x1 && 0 <= 2 * x1, x0, java.lang.Object(ARRAY(x3)), x1, x4)
Cond_5454_0_Supprimer_ArrayAccess1(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x4) → 5318_0_Supprimer_GE(x1, 2 * x1 + 1, x4)
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE3(x4 <= 2 * x0 + 2 && x3 > x2 && 0 <= 2 * x0, x0, x2, x3, x1, x4)
Cond_5318_0_Supprimer_GE3(TRUE, x0, x2, x3, x1, x4) → 5608_0_Supprimer_ArrayAccess(2 * x0 + 1, x1, java.lang.Object(ARRAY(x4)), 2 * x0 + 2)
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE4(x5 <= 2 * x0 + 1 && x3 > x2 && 0 <= 2 * x0, x0, x2, x3, x1, x4, x5)
Cond_5318_0_Supprimer_GE4(TRUE, x0, x2, x3, x1, x4, x5) → 5647_0_Supprimer_ArrayAccess(x1, x4, java.lang.Object(ARRAY(x5)), 2 * x0 + 1)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess2(x3 <= x1, x0, java.lang.Object(ARRAY(x3)), x1, x2)
Cond_5454_0_Supprimer_ArrayAccess2(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x2) → 5725_0_Supprimer_ArrayAccess(x0, x2, java.lang.Object(ARRAY(x3)), x1)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess3(x4 <= x1 && x3 > x1, x0, java.lang.Object(ARRAY(x3)), x1, x2, x4)
Cond_5454_0_Supprimer_ArrayAccess3(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x2, x4) → 5725_0_Supprimer_ArrayAccess(x2, x0, java.lang.Object(ARRAY(x4)), x1)
5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1) → Cond_5510_0_Supprimer_ArrayAccess1(x1 >= x0, java.lang.Object(ARRAY(x0)), x1, x2)
Cond_5510_0_Supprimer_ArrayAccess1(TRUE, java.lang.Object(ARRAY(x0)), x1, x2) → 5803_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1, x2)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess4(x4 > x1 && x4 <= x0 && x3 > x1, x0, java.lang.Object(ARRAY(x3)), x1, x2, x4)
Cond_5454_0_Supprimer_ArrayAccess4(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x2, x4) → 5725_0_Supprimer_ArrayAccess(x1, x2, java.lang.Object(ARRAY(x4)), x0)

The integer pair graph contains the following rules and edges:
(0): 4233_1_HEAPSORT_INVOKEMETHOD(5526_0_Supprimer_Return, x0[0]) → COND_4233_1_HEAPSORT_INVOKEMETHOD(x0[0] > 0, 5526_0_Supprimer_Return, x0[0])
(1): COND_4233_1_HEAPSORT_INVOKEMETHOD(TRUE, 5526_0_Supprimer_Return, x0[1]) → 4233_1_HEAPSORT_INVOKEMETHOD(4233_0_Supprimer_FieldAccess, x0[1] + -1)

(0) -> (1), if (x0[0] > 0x0[0]* x0[1])


(1) -> (0), if (4233_0_Supprimer_FieldAccess* 5526_0_Supprimer_Returnx0[1] + -1* x0[0])



The set Q consists of the following terms:
4233_0_Supprimer_FieldAccess
Cond_4233_0_Supprimer_FieldAccess(TRUE, x0, x1)
Cond_4233_0_Supprimer_FieldAccess1(TRUE, x0, x1)
5318_0_Supprimer_GE(x0, x1, x2)
Cond_5318_0_Supprimer_GE(TRUE, x0, x1, x2, x3)
Cond_5318_0_Supprimer_GE2(TRUE, x0, x1, x2, x3)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x1)), x2)
Cond_5454_0_Supprimer_ArrayAccess(TRUE, x0, java.lang.Object(ARRAY(x1)), x2, x3)
5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1)
Cond_5510_0_Supprimer_ArrayAccess(TRUE, java.lang.Object(ARRAY(x0)), x1)
Cond_5454_0_Supprimer_ArrayAccess1(TRUE, x0, java.lang.Object(ARRAY(x1)), x2, x3)
Cond_5318_0_Supprimer_GE3(TRUE, x0, x1, x2, x3, x4)
Cond_5318_0_Supprimer_GE4(TRUE, x0, x1, x2, x3, x4, x5)
Cond_5454_0_Supprimer_ArrayAccess2(TRUE, x0, java.lang.Object(ARRAY(x1)), x2, x3)
Cond_5454_0_Supprimer_ArrayAccess3(TRUE, x0, java.lang.Object(ARRAY(x1)), x2, x3, x4)
Cond_5510_0_Supprimer_ArrayAccess1(TRUE, java.lang.Object(ARRAY(x0)), x1, x2)
Cond_5454_0_Supprimer_ArrayAccess4(TRUE, x0, java.lang.Object(ARRAY(x1)), x2, x3, x4)

(22) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: false Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpCand1ShapeHeuristic@941593f Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 0 Max Right Steps: 0

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 4233_1_HEAPSORT_INVOKEMETHOD(5526_0_Supprimer_Return, x0) → COND_4233_1_HEAPSORT_INVOKEMETHOD(>(x0, 0), 5526_0_Supprimer_Return, x0) the following chains were created:
  • We consider the chain 4233_1_HEAPSORT_INVOKEMETHOD(5526_0_Supprimer_Return, x0[0]) → COND_4233_1_HEAPSORT_INVOKEMETHOD(>(x0[0], 0), 5526_0_Supprimer_Return, x0[0]), COND_4233_1_HEAPSORT_INVOKEMETHOD(TRUE, 5526_0_Supprimer_Return, x0[1]) → 4233_1_HEAPSORT_INVOKEMETHOD(4233_0_Supprimer_FieldAccess, +(x0[1], -1)) which results in the following constraint:

    (1)    (>(x0[0], 0)=TRUEx0[0]=x0[1]4233_1_HEAPSORT_INVOKEMETHOD(5526_0_Supprimer_Return, x0[0])≥NonInfC∧4233_1_HEAPSORT_INVOKEMETHOD(5526_0_Supprimer_Return, x0[0])≥COND_4233_1_HEAPSORT_INVOKEMETHOD(>(x0[0], 0), 5526_0_Supprimer_Return, x0[0])∧(UIncreasing(COND_4233_1_HEAPSORT_INVOKEMETHOD(>(x0[0], 0), 5526_0_Supprimer_Return, x0[0])), ≥))



    We simplified constraint (1) using rule (IV) which results in the following new constraint:

    (2)    (>(x0[0], 0)=TRUE4233_1_HEAPSORT_INVOKEMETHOD(5526_0_Supprimer_Return, x0[0])≥NonInfC∧4233_1_HEAPSORT_INVOKEMETHOD(5526_0_Supprimer_Return, x0[0])≥COND_4233_1_HEAPSORT_INVOKEMETHOD(>(x0[0], 0), 5526_0_Supprimer_Return, x0[0])∧(UIncreasing(COND_4233_1_HEAPSORT_INVOKEMETHOD(>(x0[0], 0), 5526_0_Supprimer_Return, x0[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_4233_1_HEAPSORT_INVOKEMETHOD(>(x0[0], 0), 5526_0_Supprimer_Return, x0[0])), ≥)∧[(-1)Bound*bni_56] + [(2)bni_56]x0[0] ≥ 0∧[(-1)bso_57] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_4233_1_HEAPSORT_INVOKEMETHOD(>(x0[0], 0), 5526_0_Supprimer_Return, x0[0])), ≥)∧[(-1)Bound*bni_56] + [(2)bni_56]x0[0] ≥ 0∧[(-1)bso_57] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_4233_1_HEAPSORT_INVOKEMETHOD(>(x0[0], 0), 5526_0_Supprimer_Return, x0[0])), ≥)∧[(-1)Bound*bni_56] + [(2)bni_56]x0[0] ≥ 0∧[(-1)bso_57] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    (x0[0] ≥ 0 ⇒ (UIncreasing(COND_4233_1_HEAPSORT_INVOKEMETHOD(>(x0[0], 0), 5526_0_Supprimer_Return, x0[0])), ≥)∧[(-1)Bound*bni_56 + (2)bni_56] + [(2)bni_56]x0[0] ≥ 0∧[(-1)bso_57] ≥ 0)







For Pair COND_4233_1_HEAPSORT_INVOKEMETHOD(TRUE, 5526_0_Supprimer_Return, x0) → 4233_1_HEAPSORT_INVOKEMETHOD(4233_0_Supprimer_FieldAccess, +(x0, -1)) the following chains were created:
  • We consider the chain COND_4233_1_HEAPSORT_INVOKEMETHOD(TRUE, 5526_0_Supprimer_Return, x0[1]) → 4233_1_HEAPSORT_INVOKEMETHOD(4233_0_Supprimer_FieldAccess, +(x0[1], -1)) which results in the following constraint:

    (7)    (COND_4233_1_HEAPSORT_INVOKEMETHOD(TRUE, 5526_0_Supprimer_Return, x0[1])≥NonInfC∧COND_4233_1_HEAPSORT_INVOKEMETHOD(TRUE, 5526_0_Supprimer_Return, x0[1])≥4233_1_HEAPSORT_INVOKEMETHOD(4233_0_Supprimer_FieldAccess, +(x0[1], -1))∧(UIncreasing(4233_1_HEAPSORT_INVOKEMETHOD(4233_0_Supprimer_FieldAccess, +(x0[1], -1))), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    ((UIncreasing(4233_1_HEAPSORT_INVOKEMETHOD(4233_0_Supprimer_FieldAccess, +(x0[1], -1))), ≥)∧[bni_58] = 0∧[2 + (-1)bso_59] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    ((UIncreasing(4233_1_HEAPSORT_INVOKEMETHOD(4233_0_Supprimer_FieldAccess, +(x0[1], -1))), ≥)∧[bni_58] = 0∧[2 + (-1)bso_59] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    ((UIncreasing(4233_1_HEAPSORT_INVOKEMETHOD(4233_0_Supprimer_FieldAccess, +(x0[1], -1))), ≥)∧[bni_58] = 0∧[2 + (-1)bso_59] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    ((UIncreasing(4233_1_HEAPSORT_INVOKEMETHOD(4233_0_Supprimer_FieldAccess, +(x0[1], -1))), ≥)∧[bni_58] = 0∧0 = 0∧[2 + (-1)bso_59] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 4233_1_HEAPSORT_INVOKEMETHOD(5526_0_Supprimer_Return, x0) → COND_4233_1_HEAPSORT_INVOKEMETHOD(>(x0, 0), 5526_0_Supprimer_Return, x0)
    • (x0[0] ≥ 0 ⇒ (UIncreasing(COND_4233_1_HEAPSORT_INVOKEMETHOD(>(x0[0], 0), 5526_0_Supprimer_Return, x0[0])), ≥)∧[(-1)Bound*bni_56 + (2)bni_56] + [(2)bni_56]x0[0] ≥ 0∧[(-1)bso_57] ≥ 0)

  • COND_4233_1_HEAPSORT_INVOKEMETHOD(TRUE, 5526_0_Supprimer_Return, x0) → 4233_1_HEAPSORT_INVOKEMETHOD(4233_0_Supprimer_FieldAccess, +(x0, -1))
    • ((UIncreasing(4233_1_HEAPSORT_INVOKEMETHOD(4233_0_Supprimer_FieldAccess, +(x0[1], -1))), ≥)∧[bni_58] = 0∧0 = 0∧[2 + (-1)bso_59] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(4233_0_Supprimer_FieldAccess) = [-1]   
POL(Cond_4233_0_Supprimer_FieldAccess(x1, x2, x3)) = [-1] + [-1]x3   
POL(<=(x1, x2)) = [-1]   
POL(0) = 0   
POL(4453_0_Supprimer_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1)) = x1   
POL(-(x1, x2)) = x1 + [-1]x2   
POL(1) = [1]   
POL(Cond_4233_0_Supprimer_FieldAccess1(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(5318_0_Supprimer_GE(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2 + [-1]x1   
POL(Cond_5318_0_Supprimer_GE(x1, x2, x3, x4, x5)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(*(x1, x2)) = x1·x2   
POL(2) = [2]   
POL(5454_0_Supprimer_ArrayAccess(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2 + [-1]x1   
POL(+(x1, x2)) = x1 + x2   
POL(Cond_5318_0_Supprimer_GE2(x1, x2, x3, x4, x5)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(5510_0_Supprimer_ArrayAccess(x1, x2)) = [-1] + [-1]x1 + [-1]x2   
POL(Cond_5454_0_Supprimer_ArrayAccess(x1, x2, x3, x4, x5)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(Cond_5510_0_Supprimer_ArrayAccess(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(<(x1, x2)) = [-1]   
POL(5526_0_Supprimer_Return) = [-1]   
POL(Cond_5454_0_Supprimer_ArrayAccess1(x1, x2, x3, x4, x5)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(Cond_5318_0_Supprimer_GE3(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x6 + [-1]x4 + [-1]x3 + [-1]x2   
POL(5608_0_Supprimer_ArrayAccess(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x1   
POL(Cond_5318_0_Supprimer_GE4(x1, x2, x3, x4, x5, x6, x7)) = [-1] + [-1]x7 + [-1]x4 + [-1]x3 + [-1]x2   
POL(5647_0_Supprimer_ArrayAccess(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3   
POL(Cond_5454_0_Supprimer_ArrayAccess2(x1, x2, x3, x4, x5)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(5725_0_Supprimer_ArrayAccess(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x1 + [-1]x2   
POL(Cond_5454_0_Supprimer_ArrayAccess3(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x6 + [-1]x4 + [-1]x3 + [-1]x2   
POL(Cond_5510_0_Supprimer_ArrayAccess1(x1, x2, x3, x4)) = [-1] + [-1]x3 + [-1]x2   
POL(>=(x1, x2)) = [-1]   
POL(5803_0_Supprimer_ArrayAccess(x1, x2, x3)) = [-1] + [-1]x2 + [-1]x1   
POL(Cond_5454_0_Supprimer_ArrayAccess4(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x6 + [-1]x4 + [-1]x3 + [-1]x2   
POL(4233_1_HEAPSORT_INVOKEMETHOD(x1, x2)) = [2]x2   
POL(COND_4233_1_HEAPSORT_INVOKEMETHOD(x1, x2, x3)) = [2]x3   
POL(-1) = [-1]   

The following pairs are in P>:

COND_4233_1_HEAPSORT_INVOKEMETHOD(TRUE, 5526_0_Supprimer_Return, x0[1]) → 4233_1_HEAPSORT_INVOKEMETHOD(4233_0_Supprimer_FieldAccess, +(x0[1], -1))

The following pairs are in Pbound:

4233_1_HEAPSORT_INVOKEMETHOD(5526_0_Supprimer_Return, x0[0]) → COND_4233_1_HEAPSORT_INVOKEMETHOD(>(x0[0], 0), 5526_0_Supprimer_Return, x0[0])

The following pairs are in P:

4233_1_HEAPSORT_INVOKEMETHOD(5526_0_Supprimer_Return, x0[0]) → COND_4233_1_HEAPSORT_INVOKEMETHOD(>(x0[0], 0), 5526_0_Supprimer_Return, x0[0])

There are no usable rules.

(23) Complex Obligation (AND)

(24) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
4233_0_Supprimer_FieldAccessCond_4233_0_Supprimer_FieldAccess(x1 <= 0, x0, x1)
Cond_4233_0_Supprimer_FieldAccess(TRUE, x0, x1) → 4453_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1 - 1)
4233_0_Supprimer_FieldAccessCond_4233_0_Supprimer_FieldAccess1(x0 <= x1 - 1, x0, x1)
Cond_4233_0_Supprimer_FieldAccess1(TRUE, x0, x1) → 4453_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1 - 1)
4233_0_Supprimer_FieldAccess5318_0_Supprimer_GE(0, 1, x1)
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE(x3 > x2 && 0 <= 2 * x0, x0, x2, x3, x4)
Cond_5318_0_Supprimer_GE(TRUE, x0, x2, x3, x4) → 5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x4)), 2 * x0 + 1)
Cond_5318_0_Supprimer_GE(TRUE, x0, x2, x3, x4) → 5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x4)), 2 * x0 + 2)
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE2(x3 <= x2, x0, x2, x3, x4)
Cond_5318_0_Supprimer_GE2(TRUE, x0, x2, x3, x4) → 5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x4)), x0)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess(x3 > x1, x0, java.lang.Object(ARRAY(x3)), x1, x4)
Cond_5454_0_Supprimer_ArrayAccess(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x4) → 5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x4)), x0)
5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1) → Cond_5510_0_Supprimer_ArrayAccess(x1 < x0, java.lang.Object(ARRAY(x0)), x1)
Cond_5510_0_Supprimer_ArrayAccess(TRUE, java.lang.Object(ARRAY(x0)), x1) → 5526_0_Supprimer_Return
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess1(x3 > x1 && 0 <= 2 * x1, x0, java.lang.Object(ARRAY(x3)), x1, x4)
Cond_5454_0_Supprimer_ArrayAccess1(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x4) → 5318_0_Supprimer_GE(x1, 2 * x1 + 1, x4)
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE3(x4 <= 2 * x0 + 2 && x3 > x2 && 0 <= 2 * x0, x0, x2, x3, x1, x4)
Cond_5318_0_Supprimer_GE3(TRUE, x0, x2, x3, x1, x4) → 5608_0_Supprimer_ArrayAccess(2 * x0 + 1, x1, java.lang.Object(ARRAY(x4)), 2 * x0 + 2)
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE4(x5 <= 2 * x0 + 1 && x3 > x2 && 0 <= 2 * x0, x0, x2, x3, x1, x4, x5)
Cond_5318_0_Supprimer_GE4(TRUE, x0, x2, x3, x1, x4, x5) → 5647_0_Supprimer_ArrayAccess(x1, x4, java.lang.Object(ARRAY(x5)), 2 * x0 + 1)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess2(x3 <= x1, x0, java.lang.Object(ARRAY(x3)), x1, x2)
Cond_5454_0_Supprimer_ArrayAccess2(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x2) → 5725_0_Supprimer_ArrayAccess(x0, x2, java.lang.Object(ARRAY(x3)), x1)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess3(x4 <= x1 && x3 > x1, x0, java.lang.Object(ARRAY(x3)), x1, x2, x4)
Cond_5454_0_Supprimer_ArrayAccess3(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x2, x4) → 5725_0_Supprimer_ArrayAccess(x2, x0, java.lang.Object(ARRAY(x4)), x1)
5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1) → Cond_5510_0_Supprimer_ArrayAccess1(x1 >= x0, java.lang.Object(ARRAY(x0)), x1, x2)
Cond_5510_0_Supprimer_ArrayAccess1(TRUE, java.lang.Object(ARRAY(x0)), x1, x2) → 5803_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1, x2)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess4(x4 > x1 && x4 <= x0 && x3 > x1, x0, java.lang.Object(ARRAY(x3)), x1, x2, x4)
Cond_5454_0_Supprimer_ArrayAccess4(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x2, x4) → 5725_0_Supprimer_ArrayAccess(x1, x2, java.lang.Object(ARRAY(x4)), x0)

The integer pair graph contains the following rules and edges:
(0): 4233_1_HEAPSORT_INVOKEMETHOD(5526_0_Supprimer_Return, x0[0]) → COND_4233_1_HEAPSORT_INVOKEMETHOD(x0[0] > 0, 5526_0_Supprimer_Return, x0[0])


The set Q consists of the following terms:
4233_0_Supprimer_FieldAccess
Cond_4233_0_Supprimer_FieldAccess(TRUE, x0, x1)
Cond_4233_0_Supprimer_FieldAccess1(TRUE, x0, x1)
5318_0_Supprimer_GE(x0, x1, x2)
Cond_5318_0_Supprimer_GE(TRUE, x0, x1, x2, x3)
Cond_5318_0_Supprimer_GE2(TRUE, x0, x1, x2, x3)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x1)), x2)
Cond_5454_0_Supprimer_ArrayAccess(TRUE, x0, java.lang.Object(ARRAY(x1)), x2, x3)
5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1)
Cond_5510_0_Supprimer_ArrayAccess(TRUE, java.lang.Object(ARRAY(x0)), x1)
Cond_5454_0_Supprimer_ArrayAccess1(TRUE, x0, java.lang.Object(ARRAY(x1)), x2, x3)
Cond_5318_0_Supprimer_GE3(TRUE, x0, x1, x2, x3, x4)
Cond_5318_0_Supprimer_GE4(TRUE, x0, x1, x2, x3, x4, x5)
Cond_5454_0_Supprimer_ArrayAccess2(TRUE, x0, java.lang.Object(ARRAY(x1)), x2, x3)
Cond_5454_0_Supprimer_ArrayAccess3(TRUE, x0, java.lang.Object(ARRAY(x1)), x2, x3, x4)
Cond_5510_0_Supprimer_ArrayAccess1(TRUE, java.lang.Object(ARRAY(x0)), x1, x2)
Cond_5454_0_Supprimer_ArrayAccess4(TRUE, x0, java.lang.Object(ARRAY(x1)), x2, x3, x4)

(25) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(26) TRUE

(27) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
4233_0_Supprimer_FieldAccessCond_4233_0_Supprimer_FieldAccess(x1 <= 0, x0, x1)
Cond_4233_0_Supprimer_FieldAccess(TRUE, x0, x1) → 4453_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1 - 1)
4233_0_Supprimer_FieldAccessCond_4233_0_Supprimer_FieldAccess1(x0 <= x1 - 1, x0, x1)
Cond_4233_0_Supprimer_FieldAccess1(TRUE, x0, x1) → 4453_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1 - 1)
4233_0_Supprimer_FieldAccess5318_0_Supprimer_GE(0, 1, x1)
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE(x3 > x2 && 0 <= 2 * x0, x0, x2, x3, x4)
Cond_5318_0_Supprimer_GE(TRUE, x0, x2, x3, x4) → 5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x4)), 2 * x0 + 1)
Cond_5318_0_Supprimer_GE(TRUE, x0, x2, x3, x4) → 5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x4)), 2 * x0 + 2)
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE2(x3 <= x2, x0, x2, x3, x4)
Cond_5318_0_Supprimer_GE2(TRUE, x0, x2, x3, x4) → 5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x4)), x0)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess(x3 > x1, x0, java.lang.Object(ARRAY(x3)), x1, x4)
Cond_5454_0_Supprimer_ArrayAccess(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x4) → 5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x4)), x0)
5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1) → Cond_5510_0_Supprimer_ArrayAccess(x1 < x0, java.lang.Object(ARRAY(x0)), x1)
Cond_5510_0_Supprimer_ArrayAccess(TRUE, java.lang.Object(ARRAY(x0)), x1) → 5526_0_Supprimer_Return
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess1(x3 > x1 && 0 <= 2 * x1, x0, java.lang.Object(ARRAY(x3)), x1, x4)
Cond_5454_0_Supprimer_ArrayAccess1(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x4) → 5318_0_Supprimer_GE(x1, 2 * x1 + 1, x4)
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE3(x4 <= 2 * x0 + 2 && x3 > x2 && 0 <= 2 * x0, x0, x2, x3, x1, x4)
Cond_5318_0_Supprimer_GE3(TRUE, x0, x2, x3, x1, x4) → 5608_0_Supprimer_ArrayAccess(2 * x0 + 1, x1, java.lang.Object(ARRAY(x4)), 2 * x0 + 2)
5318_0_Supprimer_GE(x0, x2, x3) → Cond_5318_0_Supprimer_GE4(x5 <= 2 * x0 + 1 && x3 > x2 && 0 <= 2 * x0, x0, x2, x3, x1, x4, x5)
Cond_5318_0_Supprimer_GE4(TRUE, x0, x2, x3, x1, x4, x5) → 5647_0_Supprimer_ArrayAccess(x1, x4, java.lang.Object(ARRAY(x5)), 2 * x0 + 1)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess2(x3 <= x1, x0, java.lang.Object(ARRAY(x3)), x1, x2)
Cond_5454_0_Supprimer_ArrayAccess2(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x2) → 5725_0_Supprimer_ArrayAccess(x0, x2, java.lang.Object(ARRAY(x3)), x1)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess3(x4 <= x1 && x3 > x1, x0, java.lang.Object(ARRAY(x3)), x1, x2, x4)
Cond_5454_0_Supprimer_ArrayAccess3(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x2, x4) → 5725_0_Supprimer_ArrayAccess(x2, x0, java.lang.Object(ARRAY(x4)), x1)
5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1) → Cond_5510_0_Supprimer_ArrayAccess1(x1 >= x0, java.lang.Object(ARRAY(x0)), x1, x2)
Cond_5510_0_Supprimer_ArrayAccess1(TRUE, java.lang.Object(ARRAY(x0)), x1, x2) → 5803_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1, x2)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x3)), x1) → Cond_5454_0_Supprimer_ArrayAccess4(x4 > x1 && x4 <= x0 && x3 > x1, x0, java.lang.Object(ARRAY(x3)), x1, x2, x4)
Cond_5454_0_Supprimer_ArrayAccess4(TRUE, x0, java.lang.Object(ARRAY(x3)), x1, x2, x4) → 5725_0_Supprimer_ArrayAccess(x1, x2, java.lang.Object(ARRAY(x4)), x0)

The integer pair graph contains the following rules and edges:
(1): COND_4233_1_HEAPSORT_INVOKEMETHOD(TRUE, 5526_0_Supprimer_Return, x0[1]) → 4233_1_HEAPSORT_INVOKEMETHOD(4233_0_Supprimer_FieldAccess, x0[1] + -1)


The set Q consists of the following terms:
4233_0_Supprimer_FieldAccess
Cond_4233_0_Supprimer_FieldAccess(TRUE, x0, x1)
Cond_4233_0_Supprimer_FieldAccess1(TRUE, x0, x1)
5318_0_Supprimer_GE(x0, x1, x2)
Cond_5318_0_Supprimer_GE(TRUE, x0, x1, x2, x3)
Cond_5318_0_Supprimer_GE2(TRUE, x0, x1, x2, x3)
5454_0_Supprimer_ArrayAccess(x0, java.lang.Object(ARRAY(x1)), x2)
Cond_5454_0_Supprimer_ArrayAccess(TRUE, x0, java.lang.Object(ARRAY(x1)), x2, x3)
5510_0_Supprimer_ArrayAccess(java.lang.Object(ARRAY(x0)), x1)
Cond_5510_0_Supprimer_ArrayAccess(TRUE, java.lang.Object(ARRAY(x0)), x1)
Cond_5454_0_Supprimer_ArrayAccess1(TRUE, x0, java.lang.Object(ARRAY(x1)), x2, x3)
Cond_5318_0_Supprimer_GE3(TRUE, x0, x1, x2, x3, x4)
Cond_5318_0_Supprimer_GE4(TRUE, x0, x1, x2, x3, x4, x5)
Cond_5454_0_Supprimer_ArrayAccess2(TRUE, x0, java.lang.Object(ARRAY(x1)), x2, x3)
Cond_5454_0_Supprimer_ArrayAccess3(TRUE, x0, java.lang.Object(ARRAY(x1)), x2, x3, x4)
Cond_5510_0_Supprimer_ArrayAccess1(TRUE, java.lang.Object(ARRAY(x0)), x1, x2)
Cond_5454_0_Supprimer_ArrayAccess4(TRUE, x0, java.lang.Object(ARRAY(x1)), x2, x3, x4)

(28) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(29) TRUE

(30) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: TriTas.HeapSort()V
SCC calls the following helper methods: TriTas.Ajouter(I)V
Performed SCC analyses: UsedFieldsAnalysis

(31) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 19 rules for P and 212 rules for R.


P rules:
3901_0_HeapSort_FieldAccess(EOS(STATIC_3901(i902)), i905, i905) → 3917_0_HeapSort_GE(EOS(STATIC_3917(i902)), i905, i905, i902)
3917_0_HeapSort_GE(EOS(STATIC_3917(i902)), i905, i905, i902) → 3931_0_HeapSort_GE(EOS(STATIC_3931(i902)), i905, i905, i902)
3931_0_HeapSort_GE(EOS(STATIC_3931(i902)), i905, i905, i902) → 3955_0_HeapSort_FieldAccess(EOS(STATIC_3955(i902)), i905) | <(i905, i902)
3955_0_HeapSort_FieldAccess(EOS(STATIC_3955(i902)), i905) → 3974_0_HeapSort_Load(EOS(STATIC_3974(i902)), i905, java.lang.Object(ARRAY(i902)))
3974_0_HeapSort_Load(EOS(STATIC_3974(i902)), i905, java.lang.Object(ARRAY(i902))) → 3990_0_HeapSort_ArrayAccess(EOS(STATIC_3990(i902)), i905, java.lang.Object(ARRAY(i902)), i905)
3990_0_HeapSort_ArrayAccess(EOS(STATIC_3990(i902)), i905, java.lang.Object(ARRAY(i902)), i905) → 4007_0_HeapSort_ArrayAccess(EOS(STATIC_4007(i902)), i905, java.lang.Object(ARRAY(i902)), i905)
4007_0_HeapSort_ArrayAccess(EOS(STATIC_4007(i902)), i905, java.lang.Object(ARRAY(i902)), i905) → 4020_0_HeapSort_InvokeMethod(EOS(STATIC_4020(i902)), i905, i929) | <(i905, i902)
4020_0_HeapSort_InvokeMethod(EOS(STATIC_4020(i902)), i905, i929) → 4032_1_HeapSort_InvokeMethod(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(i902)), i929), i905, i929)
4032_1_HeapSort_InvokeMethod(2778_0_Ajouter_Return(EOS(STATIC_2778(i945))), i905, i943) → 4108_0_Ajouter_Return(EOS(STATIC_4108(i945)), i905, i943)
4032_1_HeapSort_InvokeMethod(2945_0_Ajouter_Return(EOS(STATIC_2945(i949))), i905, i947) → 4110_0_Ajouter_Return(EOS(STATIC_4110(i949)), i905, i947)
4032_1_HeapSort_InvokeMethod(3701_0_Ajouter_Return(EOS(STATIC_3701(i965))), i905, i963) → 4119_0_Ajouter_Return(EOS(STATIC_4119(i965)), i905, i963)
4108_0_Ajouter_Return(EOS(STATIC_4108(i945)), i905, i943) → 4111_0_Ajouter_Return(EOS(STATIC_4111(i945)), i905, i943)
4111_0_Ajouter_Return(EOS(STATIC_4111(i984)), i905, i986) → 4139_0_HeapSort_Inc(EOS(STATIC_4139(i984)), i905)
4139_0_HeapSort_Inc(EOS(STATIC_4139(i984)), i905) → 4163_0_HeapSort_JMP(EOS(STATIC_4163(i984)), +(i905, 1)) | >=(i905, 0)
4163_0_HeapSort_JMP(EOS(STATIC_4163(i984)), i1030) → 4185_0_HeapSort_Load(EOS(STATIC_4185(i984)), i1030)
4185_0_HeapSort_Load(EOS(STATIC_4185(i984)), i1030) → 3879_0_HeapSort_Load(EOS(STATIC_3879(i984)), i1030)
3879_0_HeapSort_Load(EOS(STATIC_3879(i902)), i905) → 3901_0_HeapSort_FieldAccess(EOS(STATIC_3901(i902)), i905, i905)
4110_0_Ajouter_Return(EOS(STATIC_4110(i949)), i905, i947) → 4111_0_Ajouter_Return(EOS(STATIC_4111(i949)), i905, i947)
4119_0_Ajouter_Return(EOS(STATIC_4119(i965)), i905, i963) → 4111_0_Ajouter_Return(EOS(STATIC_4111(i965)), i905, i963)
R rules:
4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(i902)), i929) → 4048_0_Ajouter_FieldAccess(EOS(STATIC_4048(i902)), i929)
4048_0_Ajouter_FieldAccess(EOS(STATIC_4048(i902)), i929) → 1606_0_Ajouter_FieldAccess(EOS(STATIC_1606(i902)), i929)
1606_0_Ajouter_FieldAccess(EOS(STATIC_1606(i243)), i242) → 1625_0_Ajouter_ConstantStackPush(EOS(STATIC_1625(i243)), i242, i244)
1625_0_Ajouter_ConstantStackPush(EOS(STATIC_1625(i243)), i242, i244) → 1639_0_Ajouter_IntArithmetic(EOS(STATIC_1639(i243)), i242, i244, 1)
1639_0_Ajouter_IntArithmetic(EOS(STATIC_1639(i243)), i242, i244, matching1) → 1655_0_Ajouter_FieldAccess(EOS(STATIC_1655(i243)), i242, +(i244, 1)) | =(matching1, 1)
1655_0_Ajouter_FieldAccess(EOS(STATIC_1655(i243)), i242, i248) → 1669_0_Ajouter_FieldAccess(EOS(STATIC_1669(i243)), i242)
1669_0_Ajouter_FieldAccess(EOS(STATIC_1669(i243)), i242) → 1682_0_Ajouter_ConstantStackPush(EOS(STATIC_1682(i243)), i242, i248)
1682_0_Ajouter_ConstantStackPush(EOS(STATIC_1682(i243)), i242, i248) → 1694_0_Ajouter_IntArithmetic(EOS(STATIC_1694(i243)), i242, i248, 1)
1694_0_Ajouter_IntArithmetic(EOS(STATIC_1694(i243)), i242, i248, matching1) → 1709_0_Ajouter_Store(EOS(STATIC_1709(i243)), i242, -(i248, 1)) | =(matching1, 1)
1709_0_Ajouter_Store(EOS(STATIC_1709(i243)), i242, i263) → 1721_0_Ajouter_Load(EOS(STATIC_1721(i243)), i242, i263)
1721_0_Ajouter_Load(EOS(STATIC_1721(i243)), i242, i263) → 2637_0_Ajouter_Load(EOS(STATIC_2637(i243)), i242, i263)
2637_0_Ajouter_Load(EOS(STATIC_2637(i243)), i242, i435) → 2661_0_Ajouter_LE(EOS(STATIC_2661(i243)), i242, i435, i435)
2661_0_Ajouter_LE(EOS(STATIC_2661(i243)), i242, i442, i442) → 2685_0_Ajouter_LE(EOS(STATIC_2685(i243)), i242, i442, i442)
2661_0_Ajouter_LE(EOS(STATIC_2661(i243)), i242, i443, i443) → 2686_0_Ajouter_LE(EOS(STATIC_2686(i243)), i242, i443, i443)
2685_0_Ajouter_LE(EOS(STATIC_2685(i243)), i242, i442, i442) → 2703_0_Ajouter_FieldAccess(EOS(STATIC_2703(i243)), i242, i442) | <=(i442, 0)
2686_0_Ajouter_LE(EOS(STATIC_2686(i243)), i242, i443, i443) → 2704_0_Ajouter_FieldAccess(EOS(STATIC_2704(i243)), i242, i443) | >(i443, 0)
2703_0_Ajouter_FieldAccess(EOS(STATIC_2703(i243)), i242, i442) → 2715_0_Ajouter_Load(EOS(STATIC_2715(i243)), i242, i442, java.lang.Object(ARRAY(i243)))
2704_0_Ajouter_FieldAccess(EOS(STATIC_2704(i243)), i242, i443) → 2716_0_Ajouter_Load(EOS(STATIC_2716(i243)), i242, i443, java.lang.Object(ARRAY(i243)))
2715_0_Ajouter_Load(EOS(STATIC_2715(i243)), i242, i442, java.lang.Object(ARRAY(i243))) → 2726_0_Ajouter_Load(EOS(STATIC_2726(i243)), i242, java.lang.Object(ARRAY(i243)), i442)
2716_0_Ajouter_Load(EOS(STATIC_2716(i243)), i242, i443, java.lang.Object(ARRAY(i243))) → 2727_0_Ajouter_ConstantStackPush(EOS(STATIC_2727(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
2726_0_Ajouter_Load(EOS(STATIC_2726(i243)), i242, java.lang.Object(ARRAY(i243)), i442) → 2739_0_Ajouter_ArrayAccess(EOS(STATIC_2739(i243)), java.lang.Object(ARRAY(i243)), i442, i242)
2727_0_Ajouter_ConstantStackPush(EOS(STATIC_2727(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 2740_0_Ajouter_IntArithmetic(EOS(STATIC_2740(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, 1)
2739_0_Ajouter_ArrayAccess(EOS(STATIC_2739(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 2750_0_Ajouter_ArrayAccess(EOS(STATIC_2750(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
2739_0_Ajouter_ArrayAccess(EOS(STATIC_2739(i243)), java.lang.Object(ARRAY(i243)), matching1, i242) → 2751_0_Ajouter_ArrayAccess(EOS(STATIC_2751(i243)), java.lang.Object(ARRAY(i243)), 0, i242) | =(matching1, 0)
2740_0_Ajouter_IntArithmetic(EOS(STATIC_2740(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, matching1) → 2752_0_Ajouter_ConstantStackPush(EOS(STATIC_2752(i243)), i242, i443, java.lang.Object(ARRAY(i243)), -(i443, 1)) | &&(>(i443, 0), =(matching1, 1))
2750_0_Ajouter_ArrayAccess(EOS(STATIC_2750(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 2762_0_<init>_Load(EOS(STATIC_2762(i243)), java.lang.Object(ARRAY(i243)), i460, i242) | <=(i460, -1)
2751_0_Ajouter_ArrayAccess(EOS(STATIC_2751(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 2764_0_Ajouter_ArrayAccess(EOS(STATIC_2764(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
2751_0_Ajouter_ArrayAccess(EOS(STATIC_2751(i464)), java.lang.Object(ARRAY(i464)), matching1, i242) → 2765_0_Ajouter_ArrayAccess(EOS(STATIC_2765(i464)), java.lang.Object(ARRAY(i464)), 0, i242) | =(matching1, 0)
2752_0_Ajouter_ConstantStackPush(EOS(STATIC_2752(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i462) → 2766_0_Ajouter_IntArithmetic(EOS(STATIC_2766(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i462, 2)
2762_0_<init>_Load(EOS(STATIC_2762(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 2789_0_<init>_InvokeMethod(EOS(STATIC_2789(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
2764_0_Ajouter_ArrayAccess(EOS(STATIC_2764(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 2776_0_<init>_Load(EOS(STATIC_2776(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | &&(&&(>=(0, 0), <=(i463, 0)), =(matching1, 0))
2765_0_Ajouter_ArrayAccess(EOS(STATIC_2765(i464)), java.lang.Object(ARRAY(i464)), matching1, i242) → 2778_0_Ajouter_Return(EOS(STATIC_2778(i464))) | &&(<(0, i464), =(matching1, 0))
2766_0_Ajouter_IntArithmetic(EOS(STATIC_2766(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i462, matching1) → 2780_0_Ajouter_ArrayAccess(EOS(STATIC_2780(i243)), i242, i443, java.lang.Object(ARRAY(i243)), /(i462, 2)) | =(matching1, 2)
2776_0_<init>_Load(EOS(STATIC_2776(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 2805_0_<init>_InvokeMethod(EOS(STATIC_2805(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
2778_0_Ajouter_Return(EOS(STATIC_2778(i464))) → 2945_0_Ajouter_Return(EOS(STATIC_2945(i464)))
2780_0_Ajouter_ArrayAccess(EOS(STATIC_2780(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 2792_0_Ajouter_ArrayAccess(EOS(STATIC_2792(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
2780_0_Ajouter_ArrayAccess(EOS(STATIC_2780(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 2793_0_Ajouter_ArrayAccess(EOS(STATIC_2793(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
2789_0_<init>_InvokeMethod(EOS(STATIC_2789(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 2803_0_<init>_Load(EOS(STATIC_2803(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
2792_0_Ajouter_ArrayAccess(EOS(STATIC_2792(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 2808_0_Ajouter_Load(EOS(STATIC_2808(i243)), i242, i443, i484) | <(i470, i243)
2793_0_Ajouter_ArrayAccess(EOS(STATIC_2793(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 2810_0_<init>_Load(EOS(STATIC_2810(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) | >=(i470, i243)
2803_0_<init>_Load(EOS(STATIC_2803(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 2836_0_<init>_InvokeMethod(EOS(STATIC_2836(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
2805_0_<init>_InvokeMethod(EOS(STATIC_2805(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 2820_0_<init>_Load(EOS(STATIC_2820(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
2808_0_Ajouter_Load(EOS(STATIC_2808(i243)), i242, i443, i484) → 2823_0_Ajouter_GT(EOS(STATIC_2823(i243)), i242, i443, i484, i242)
2810_0_<init>_Load(EOS(STATIC_2810(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 2842_0_<init>_InvokeMethod(EOS(STATIC_2842(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
2820_0_<init>_Load(EOS(STATIC_2820(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 2855_0_<init>_InvokeMethod(EOS(STATIC_2855(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
2823_0_Ajouter_GT(EOS(STATIC_2823(i243)), i242, i443, i484, i242) → 2838_0_Ajouter_GT(EOS(STATIC_2838(i243)), i242, i443, i484, i242)
2823_0_Ajouter_GT(EOS(STATIC_2823(i243)), i242, i443, i484, i242) → 2839_0_Ajouter_GT(EOS(STATIC_2839(i243)), i242, i443, i484, i242)
2836_0_<init>_InvokeMethod(EOS(STATIC_2836(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 2853_0_<init>_Load(EOS(STATIC_2853(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
2838_0_Ajouter_GT(EOS(STATIC_2838(i243)), i242, i443, i484, i242) → 2858_0_Ajouter_FieldAccess(EOS(STATIC_2858(i243)), i242, i443) | >(i484, i242)
2839_0_Ajouter_GT(EOS(STATIC_2839(i243)), i242, i443, i484, i242) → 2859_0_Ajouter_FieldAccess(EOS(STATIC_2859(i243)), i242, i443) | <=(i484, i242)
2842_0_<init>_InvokeMethod(EOS(STATIC_2842(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 2860_0_<init>_Load(EOS(STATIC_2860(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
2853_0_<init>_Load(EOS(STATIC_2853(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 2887_0_<init>_InvokeMethod(EOS(STATIC_2887(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
2855_0_<init>_InvokeMethod(EOS(STATIC_2855(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 2871_0_<init>_Load(EOS(STATIC_2871(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
2858_0_Ajouter_FieldAccess(EOS(STATIC_2858(i243)), i242, i443) → 3517_0_Ajouter_FieldAccess(EOS(STATIC_3517(i243)), i242, i443)
2859_0_Ajouter_FieldAccess(EOS(STATIC_2859(i243)), i242, i443) → 2879_0_Ajouter_Load(EOS(STATIC_2879(i243)), i242, i443, java.lang.Object(ARRAY(i243)))
2860_0_<init>_Load(EOS(STATIC_2860(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 2895_0_<init>_InvokeMethod(EOS(STATIC_2895(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
2871_0_<init>_Load(EOS(STATIC_2871(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 2903_0_<init>_InvokeMethod(EOS(STATIC_2903(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
2879_0_Ajouter_Load(EOS(STATIC_2879(i243)), i242, i443, java.lang.Object(ARRAY(i243))) → 2892_0_Ajouter_FieldAccess(EOS(STATIC_2892(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
2887_0_<init>_InvokeMethod(EOS(STATIC_2887(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 2902_0_<init>_Load(EOS(STATIC_2902(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
2892_0_Ajouter_FieldAccess(EOS(STATIC_2892(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 2909_0_Ajouter_Load(EOS(STATIC_2909(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)))
2895_0_<init>_InvokeMethod(EOS(STATIC_2895(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 2910_0_<init>_Load(EOS(STATIC_2910(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
2902_0_<init>_Load(EOS(STATIC_2902(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 2940_0_<init>_InvokeMethod(EOS(STATIC_2940(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
2903_0_<init>_InvokeMethod(EOS(STATIC_2903(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 2921_0_<init>_Load(EOS(STATIC_2921(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
2909_0_Ajouter_Load(EOS(STATIC_2909(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243))) → 2927_0_Ajouter_ConstantStackPush(EOS(STATIC_2927(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i443)
2910_0_<init>_Load(EOS(STATIC_2910(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 2950_0_<init>_InvokeMethod(EOS(STATIC_2950(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
2921_0_<init>_Load(EOS(STATIC_2921(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 2965_0_<init>_InvokeMethod(EOS(STATIC_2965(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
2927_0_Ajouter_ConstantStackPush(EOS(STATIC_2927(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i443) → 2948_0_Ajouter_IntArithmetic(EOS(STATIC_2948(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i443, 1)
2940_0_<init>_InvokeMethod(EOS(STATIC_2940(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 2964_0_<init>_Load(EOS(STATIC_2964(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
2945_0_Ajouter_Return(EOS(STATIC_2945(i243))) → 3701_0_Ajouter_Return(EOS(STATIC_3701(i243)))
2948_0_Ajouter_IntArithmetic(EOS(STATIC_2948(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i443, matching1) → 2970_0_Ajouter_ConstantStackPush(EOS(STATIC_2970(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), -(i443, 1)) | &&(>(i443, 0), =(matching1, 1))
2950_0_<init>_InvokeMethod(EOS(STATIC_2950(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 2972_0_<init>_Load(EOS(STATIC_2972(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
2964_0_<init>_Load(EOS(STATIC_2964(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 3016_0_<init>_InvokeMethod(EOS(STATIC_3016(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
2965_0_<init>_InvokeMethod(EOS(STATIC_2965(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 2988_0_<init>_Load(EOS(STATIC_2988(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
2970_0_Ajouter_ConstantStackPush(EOS(STATIC_2970(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i517) → 2995_0_Ajouter_IntArithmetic(EOS(STATIC_2995(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i517, 2)
2972_0_<init>_Load(EOS(STATIC_2972(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 3025_0_<init>_InvokeMethod(EOS(STATIC_3025(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
2988_0_<init>_Load(EOS(STATIC_2988(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 3044_0_<init>_InvokeMethod(EOS(STATIC_3044(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
2995_0_Ajouter_IntArithmetic(EOS(STATIC_2995(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i517, matching1) → 3023_0_Ajouter_ArrayAccess(EOS(STATIC_3023(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), /(i517, 2)) | =(matching1, 2)
3016_0_<init>_InvokeMethod(EOS(STATIC_3016(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 3042_0_<init>_Load(EOS(STATIC_3042(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
3023_0_Ajouter_ArrayAccess(EOS(STATIC_3023(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3050_0_Ajouter_ArrayAccess(EOS(STATIC_3050(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3023_0_Ajouter_ArrayAccess(EOS(STATIC_3023(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3051_0_Ajouter_ArrayAccess(EOS(STATIC_3051(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3025_0_<init>_InvokeMethod(EOS(STATIC_3025(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 3052_0_<init>_Load(EOS(STATIC_3052(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
3042_0_<init>_Load(EOS(STATIC_3042(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 3066_0_<init>_Load(EOS(STATIC_3066(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
3044_0_<init>_InvokeMethod(EOS(STATIC_3044(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 3068_0_<init>_Load(EOS(STATIC_3068(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
3050_0_Ajouter_ArrayAccess(EOS(STATIC_3050(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3078_0_Ajouter_ArrayAccess(EOS(STATIC_3078(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) | <(i538, i243)
3051_0_Ajouter_ArrayAccess(EOS(STATIC_3051(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3079_0_<init>_Load(EOS(STATIC_3079(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) | >=(i538, i243)
3052_0_<init>_Load(EOS(STATIC_3052(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 3112_0_<init>_InvokeMethod(EOS(STATIC_3112(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
3066_0_<init>_Load(EOS(STATIC_3066(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 3097_0_<init>_FieldAccess(EOS(STATIC_3097(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
3068_0_<init>_Load(EOS(STATIC_3068(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 3099_0_<init>_Load(EOS(STATIC_3099(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
3078_0_Ajouter_ArrayAccess(EOS(STATIC_3078(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3108_0_Ajouter_ArrayAccess(EOS(STATIC_3108(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3078_0_Ajouter_ArrayAccess(EOS(STATIC_3078(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3109_0_Ajouter_ArrayAccess(EOS(STATIC_3109(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3079_0_<init>_Load(EOS(STATIC_3079(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3153_0_<init>_InvokeMethod(EOS(STATIC_3153(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3097_0_<init>_FieldAccess(EOS(STATIC_3097(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 3138_0_<init>_Load(EOS(STATIC_3138(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
3099_0_<init>_Load(EOS(STATIC_3099(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 3140_0_<init>_FieldAccess(EOS(STATIC_3140(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
3108_0_Ajouter_ArrayAccess(EOS(STATIC_3108(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3146_0_Ajouter_Load(EOS(STATIC_3146(i243)), i242, i443) | <(i443, i243)
3109_0_Ajouter_ArrayAccess(EOS(STATIC_3109(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3148_0_<init>_Load(EOS(STATIC_3148(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) | >=(i443, i243)
3112_0_<init>_InvokeMethod(EOS(STATIC_3112(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 3156_0_<init>_Load(EOS(STATIC_3156(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
3138_0_<init>_Load(EOS(STATIC_3138(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 3171_0_<init>_InvokeMethod(EOS(STATIC_3171(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
3140_0_<init>_FieldAccess(EOS(STATIC_3140(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 3175_0_<init>_Load(EOS(STATIC_3175(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
3146_0_Ajouter_Load(EOS(STATIC_3146(i243)), i242, i443) → 3185_0_Ajouter_ConstantStackPush(EOS(STATIC_3185(i243)), i242, i443, i443)
3148_0_<init>_Load(EOS(STATIC_3148(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3220_0_<init>_InvokeMethod(EOS(STATIC_3220(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3153_0_<init>_InvokeMethod(EOS(STATIC_3153(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3187_0_<init>_Load(EOS(STATIC_3187(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3156_0_<init>_Load(EOS(STATIC_3156(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 3189_0_<init>_Load(EOS(STATIC_3189(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
3171_0_<init>_InvokeMethod(EOS(STATIC_3171(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 3204_0_<init>_StackPop(EOS(STATIC_3204(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
3175_0_<init>_Load(EOS(STATIC_3175(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 3206_0_<init>_InvokeMethod(EOS(STATIC_3206(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
3185_0_Ajouter_ConstantStackPush(EOS(STATIC_3185(i243)), i242, i443, i443) → 3215_0_Ajouter_IntArithmetic(EOS(STATIC_3215(i243)), i242, i443, i443, 1)
3187_0_<init>_Load(EOS(STATIC_3187(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3256_0_<init>_InvokeMethod(EOS(STATIC_3256(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3189_0_<init>_Load(EOS(STATIC_3189(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 3223_0_<init>_FieldAccess(EOS(STATIC_3223(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
3204_0_<init>_StackPop(EOS(STATIC_3204(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 3241_0_<init>_Return(EOS(STATIC_3241(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
3206_0_<init>_InvokeMethod(EOS(STATIC_3206(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 3243_0_<init>_StackPop(EOS(STATIC_3243(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
3215_0_Ajouter_IntArithmetic(EOS(STATIC_3215(i243)), i242, i443, i443, matching1) → 3251_0_Ajouter_ConstantStackPush(EOS(STATIC_3251(i243)), i242, i443, -(i443, 1)) | &&(>(i443, 0), =(matching1, 1))
3220_0_<init>_InvokeMethod(EOS(STATIC_3220(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3252_0_<init>_Load(EOS(STATIC_3252(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3223_0_<init>_FieldAccess(EOS(STATIC_3223(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 3260_0_<init>_Load(EOS(STATIC_3260(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
3241_0_<init>_Return(EOS(STATIC_3241(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 3274_0_<init>_Return(EOS(STATIC_3274(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
3243_0_<init>_StackPop(EOS(STATIC_3243(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 3276_0_<init>_Return(EOS(STATIC_3276(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
3251_0_Ajouter_ConstantStackPush(EOS(STATIC_3251(i243)), i242, i443, i611) → 3283_0_Ajouter_IntArithmetic(EOS(STATIC_3283(i243)), i242, i443, i611, 2)
3252_0_<init>_Load(EOS(STATIC_3252(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3315_0_<init>_InvokeMethod(EOS(STATIC_3315(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3256_0_<init>_InvokeMethod(EOS(STATIC_3256(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3284_0_<init>_Load(EOS(STATIC_3284(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3260_0_<init>_Load(EOS(STATIC_3260(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 3287_0_<init>_InvokeMethod(EOS(STATIC_3287(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
3274_0_<init>_Return(EOS(STATIC_3274(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 3300_0_<init>_Return(EOS(STATIC_3300(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
3276_0_<init>_Return(EOS(STATIC_3276(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 3301_0_<init>_Return(EOS(STATIC_3301(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
3283_0_Ajouter_IntArithmetic(EOS(STATIC_3283(i243)), i242, i443, i611, matching1) → 3311_0_Ajouter_Store(EOS(STATIC_3311(i243)), i242, i443, /(i611, 2)) | =(matching1, 2)
3284_0_<init>_Load(EOS(STATIC_3284(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3346_0_<init>_InvokeMethod(EOS(STATIC_3346(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3287_0_<init>_InvokeMethod(EOS(STATIC_3287(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 3318_0_<init>_StackPop(EOS(STATIC_3318(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
3300_0_<init>_Return(EOS(STATIC_3300(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 3337_0_<init>_Return(EOS(STATIC_3337(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
3301_0_<init>_Return(EOS(STATIC_3301(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 3339_0_<init>_Return(EOS(STATIC_3339(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
3311_0_Ajouter_Store(EOS(STATIC_3311(i243)), i242, i443, i649) → 3341_0_Ajouter_Load(EOS(STATIC_3341(i243)), i242, i443, i649)
3315_0_<init>_InvokeMethod(EOS(STATIC_3315(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3343_0_<init>_Load(EOS(STATIC_3343(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3318_0_<init>_StackPop(EOS(STATIC_3318(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 3349_0_<init>_Return(EOS(STATIC_3349(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
3337_0_<init>_Return(EOS(STATIC_3337(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 3358_0_<init>_Return(EOS(STATIC_3358(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
3339_0_<init>_Return(EOS(STATIC_3339(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 3360_0_<init>_Return(EOS(STATIC_3360(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
3341_0_Ajouter_Load(EOS(STATIC_3341(i243)), i242, i443, i649) → 3366_0_Ajouter_Load(EOS(STATIC_3366(i243)), i242, i443, i649, i649)
3343_0_<init>_Load(EOS(STATIC_3343(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3406_0_<init>_InvokeMethod(EOS(STATIC_3406(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3346_0_<init>_InvokeMethod(EOS(STATIC_3346(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3367_0_<init>_Load(EOS(STATIC_3367(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3349_0_<init>_Return(EOS(STATIC_3349(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 3370_0_<init>_Return(EOS(STATIC_3370(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
3358_0_<init>_Return(EOS(STATIC_3358(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 3392_0_Ajouter_ArrayAccess(EOS(STATIC_3392(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
3360_0_<init>_Return(EOS(STATIC_3360(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 3393_0_<init>_Return(EOS(STATIC_3393(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
3366_0_Ajouter_Load(EOS(STATIC_3366(i243)), i242, i443, i649, i649) → 3401_0_Ajouter_LT(EOS(STATIC_3401(i243)), i242, i443, i649, i649, i443)
3367_0_<init>_Load(EOS(STATIC_3367(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3451_0_<init>_InvokeMethod(EOS(STATIC_3451(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3370_0_<init>_Return(EOS(STATIC_3370(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 3408_0_<init>_Return(EOS(STATIC_3408(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
3392_0_Ajouter_ArrayAccess(EOS(STATIC_3392(i243)), java.lang.Object(ARRAY(i243)), i460, i242) → 4247_0_Ajouter_ArrayAccess(EOS(STATIC_4247(i243)), java.lang.Object(ARRAY(i243)), i460, i242)
3393_0_<init>_Return(EOS(STATIC_3393(i463)), java.lang.Object(ARRAY(i463)), matching1, i242) → 3436_0_Ajouter_ArrayAccess(EOS(STATIC_3436(i463)), java.lang.Object(ARRAY(i463)), 0, i242) | =(matching1, 0)
3401_0_Ajouter_LT(EOS(STATIC_3401(i243)), i242, i443, i649, i649, i443) → 3444_0_Ajouter_LT(EOS(STATIC_3444(i243)), i242, i443, i649, i649, i443)
3401_0_Ajouter_LT(EOS(STATIC_3401(i243)), i242, i443, i649, i649, i443) → 3445_0_Ajouter_LT(EOS(STATIC_3445(i243)), i242, i443, i649, i649, i443)
3406_0_<init>_InvokeMethod(EOS(STATIC_3406(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3446_0_<init>_Load(EOS(STATIC_3446(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3408_0_<init>_Return(EOS(STATIC_3408(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 3454_0_<init>_Return(EOS(STATIC_3454(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
3444_0_Ajouter_LT(EOS(STATIC_3444(i243)), i242, i443, i649, i649, i443) → 3480_0_Ajouter_Load(EOS(STATIC_3480(i243)), i242, i649) | <(i649, i443)
3445_0_Ajouter_LT(EOS(STATIC_3445(i243)), i242, i443, i649, i649, i443) → 3481_0_Ajouter_JMP(EOS(STATIC_3481(i243)), i242, i443) | >=(i649, i443)
3446_0_<init>_Load(EOS(STATIC_3446(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3521_0_<init>_InvokeMethod(EOS(STATIC_3521(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3451_0_<init>_InvokeMethod(EOS(STATIC_3451(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3482_0_<init>_Load(EOS(STATIC_3482(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3454_0_<init>_Return(EOS(STATIC_3454(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 3485_0_<init>_Return(EOS(STATIC_3485(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
3480_0_Ajouter_Load(EOS(STATIC_3480(i243)), i242, i649) → 3515_0_Ajouter_Store(EOS(STATIC_3515(i243)), i242, i649)
3481_0_Ajouter_JMP(EOS(STATIC_3481(i243)), i242, i443) → 3517_0_Ajouter_FieldAccess(EOS(STATIC_3517(i243)), i242, i443)
3482_0_<init>_Load(EOS(STATIC_3482(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3559_0_<init>_InvokeMethod(EOS(STATIC_3559(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3485_0_<init>_Return(EOS(STATIC_3485(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470) → 3523_0_Ajouter_ArrayAccess(EOS(STATIC_3523(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i470)
3515_0_Ajouter_Store(EOS(STATIC_3515(i243)), i242, i649) → 3553_0_Ajouter_JMP(EOS(STATIC_3553(i243)), i242, i649)
3517_0_Ajouter_FieldAccess(EOS(STATIC_3517(i243)), i242, i443) → 3555_0_Ajouter_Load(EOS(STATIC_3555(i243)), i242, i443, java.lang.Object(ARRAY(i243)))
3521_0_<init>_InvokeMethod(EOS(STATIC_3521(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3556_0_<init>_Load(EOS(STATIC_3556(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3553_0_Ajouter_JMP(EOS(STATIC_3553(i243)), i242, i649) → 3590_0_Ajouter_Load(EOS(STATIC_3590(i243)), i242, i649)
3555_0_Ajouter_Load(EOS(STATIC_3555(i243)), i242, i443, java.lang.Object(ARRAY(i243))) → 3591_0_Ajouter_Load(EOS(STATIC_3591(i243)), i242, java.lang.Object(ARRAY(i243)), i443)
3556_0_<init>_Load(EOS(STATIC_3556(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3629_0_<init>_InvokeMethod(EOS(STATIC_3629(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3559_0_<init>_InvokeMethod(EOS(STATIC_3559(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3595_0_<init>_Load(EOS(STATIC_3595(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3590_0_Ajouter_Load(EOS(STATIC_3590(i243)), i242, i649) → 2637_0_Ajouter_Load(EOS(STATIC_2637(i243)), i242, i649)
3591_0_Ajouter_Load(EOS(STATIC_3591(i243)), i242, java.lang.Object(ARRAY(i243)), i443) → 3625_0_Ajouter_ArrayAccess(EOS(STATIC_3625(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
3595_0_<init>_Load(EOS(STATIC_3595(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3631_0_<init>_Load(EOS(STATIC_3631(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3625_0_Ajouter_ArrayAccess(EOS(STATIC_3625(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 3658_0_Ajouter_ArrayAccess(EOS(STATIC_3658(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
3625_0_Ajouter_ArrayAccess(EOS(STATIC_3625(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 3659_0_Ajouter_ArrayAccess(EOS(STATIC_3659(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
3629_0_<init>_InvokeMethod(EOS(STATIC_3629(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3662_0_<init>_Load(EOS(STATIC_3662(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3631_0_<init>_Load(EOS(STATIC_3631(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3665_0_<init>_FieldAccess(EOS(STATIC_3665(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3658_0_Ajouter_ArrayAccess(EOS(STATIC_3658(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 3701_0_Ajouter_Return(EOS(STATIC_3701(i243))) | <(i443, i243)
3659_0_Ajouter_ArrayAccess(EOS(STATIC_3659(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 3702_0_<init>_Load(EOS(STATIC_3702(i243)), java.lang.Object(ARRAY(i243)), i443, i242) | >=(i443, i243)
3662_0_<init>_Load(EOS(STATIC_3662(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3706_0_<init>_Load(EOS(STATIC_3706(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3665_0_<init>_FieldAccess(EOS(STATIC_3665(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3710_0_<init>_Load(EOS(STATIC_3710(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3702_0_<init>_Load(EOS(STATIC_3702(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 3795_0_<init>_InvokeMethod(EOS(STATIC_3795(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
3706_0_<init>_Load(EOS(STATIC_3706(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3747_0_<init>_FieldAccess(EOS(STATIC_3747(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3710_0_<init>_Load(EOS(STATIC_3710(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3750_0_<init>_InvokeMethod(EOS(STATIC_3750(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3747_0_<init>_FieldAccess(EOS(STATIC_3747(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3799_0_<init>_Load(EOS(STATIC_3799(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3750_0_<init>_InvokeMethod(EOS(STATIC_3750(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3803_0_<init>_StackPop(EOS(STATIC_3803(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3795_0_<init>_InvokeMethod(EOS(STATIC_3795(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 3833_0_<init>_Load(EOS(STATIC_3833(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
3799_0_<init>_Load(EOS(STATIC_3799(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3837_0_<init>_InvokeMethod(EOS(STATIC_3837(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3803_0_<init>_StackPop(EOS(STATIC_3803(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3839_0_<init>_Return(EOS(STATIC_3839(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3833_0_<init>_Load(EOS(STATIC_3833(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 3883_0_<init>_InvokeMethod(EOS(STATIC_3883(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
3837_0_<init>_InvokeMethod(EOS(STATIC_3837(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3858_0_<init>_StackPop(EOS(STATIC_3858(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3839_0_<init>_Return(EOS(STATIC_3839(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3861_0_<init>_Return(EOS(STATIC_3861(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3858_0_<init>_StackPop(EOS(STATIC_3858(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3887_0_<init>_Return(EOS(STATIC_3887(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3861_0_<init>_Return(EOS(STATIC_3861(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3890_0_<init>_Return(EOS(STATIC_3890(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3883_0_<init>_InvokeMethod(EOS(STATIC_3883(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 3903_0_<init>_Load(EOS(STATIC_3903(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
3887_0_<init>_Return(EOS(STATIC_3887(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3907_0_<init>_Return(EOS(STATIC_3907(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3890_0_<init>_Return(EOS(STATIC_3890(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3910_0_<init>_Return(EOS(STATIC_3910(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3903_0_<init>_Load(EOS(STATIC_3903(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 3936_0_<init>_InvokeMethod(EOS(STATIC_3936(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
3907_0_<init>_Return(EOS(STATIC_3907(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3921_0_<init>_Return(EOS(STATIC_3921(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3910_0_<init>_Return(EOS(STATIC_3910(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3923_0_<init>_Return(EOS(STATIC_3923(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3921_0_<init>_Return(EOS(STATIC_3921(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3940_0_<init>_Return(EOS(STATIC_3940(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3923_0_<init>_Return(EOS(STATIC_3923(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538) → 3943_0_Ajouter_ArrayAccess(EOS(STATIC_3943(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443, java.lang.Object(ARRAY(i243)), i538)
3936_0_<init>_InvokeMethod(EOS(STATIC_3936(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 3957_0_<init>_Load(EOS(STATIC_3957(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
3940_0_<init>_Return(EOS(STATIC_3940(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3959_0_<init>_Return(EOS(STATIC_3959(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3957_0_<init>_Load(EOS(STATIC_3957(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 3994_0_<init>_InvokeMethod(EOS(STATIC_3994(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
3959_0_<init>_Return(EOS(STATIC_3959(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443) → 3977_0_Ajouter_ArrayAccess(EOS(STATIC_3977(i243)), i242, i443, java.lang.Object(ARRAY(i243)), i443)
3994_0_<init>_InvokeMethod(EOS(STATIC_3994(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 4009_0_<init>_Load(EOS(STATIC_4009(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
4009_0_<init>_Load(EOS(STATIC_4009(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 4035_0_<init>_InvokeMethod(EOS(STATIC_4035(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
4035_0_<init>_InvokeMethod(EOS(STATIC_4035(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 4054_0_<init>_Load(EOS(STATIC_4054(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
4054_0_<init>_Load(EOS(STATIC_4054(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 4073_0_<init>_Load(EOS(STATIC_4073(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
4073_0_<init>_Load(EOS(STATIC_4073(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 4097_0_<init>_FieldAccess(EOS(STATIC_4097(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
4097_0_<init>_FieldAccess(EOS(STATIC_4097(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 4127_0_<init>_Load(EOS(STATIC_4127(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
4127_0_<init>_Load(EOS(STATIC_4127(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 4154_0_<init>_InvokeMethod(EOS(STATIC_4154(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
4154_0_<init>_InvokeMethod(EOS(STATIC_4154(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 4168_0_<init>_StackPop(EOS(STATIC_4168(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
4168_0_<init>_StackPop(EOS(STATIC_4168(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 4191_0_<init>_Return(EOS(STATIC_4191(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
4191_0_<init>_Return(EOS(STATIC_4191(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 4204_0_<init>_Return(EOS(STATIC_4204(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
4204_0_<init>_Return(EOS(STATIC_4204(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 4214_0_<init>_Return(EOS(STATIC_4214(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
4214_0_<init>_Return(EOS(STATIC_4214(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 4227_0_<init>_Return(EOS(STATIC_4227(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
4227_0_<init>_Return(EOS(STATIC_4227(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 4237_0_<init>_Return(EOS(STATIC_4237(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
4237_0_<init>_Return(EOS(STATIC_4237(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 4246_0_Ajouter_ArrayAccess(EOS(STATIC_4246(i243)), java.lang.Object(ARRAY(i243)), i443, i242)
4246_0_Ajouter_ArrayAccess(EOS(STATIC_4246(i243)), java.lang.Object(ARRAY(i243)), i443, i242) → 4247_0_Ajouter_ArrayAccess(EOS(STATIC_4247(i243)), java.lang.Object(ARRAY(i243)), i443, i242)

Combined rules. Obtained 3 conditional rules for P and 12 conditional rules for R.


P rules:
4032_1_HeapSort_InvokeMethod(2778_0_Ajouter_Return(EOS(STATIC_2778(x0))), x1, x2) → 4032_1_HeapSort_InvokeMethod(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0)), x3), +(x1, 1), x3) | &&(>(+(x1, 1), 0), >(x0, +(x1, 1)))
4032_1_HeapSort_InvokeMethod(2945_0_Ajouter_Return(EOS(STATIC_2945(x0))), x1, x2) → 4032_1_HeapSort_InvokeMethod(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0)), x3), +(x1, 1), x3) | &&(>(+(x1, 1), 0), >(x0, +(x1, 1)))
4032_1_HeapSort_InvokeMethod(3701_0_Ajouter_Return(EOS(STATIC_3701(x0))), x1, x2) → 4032_1_HeapSort_InvokeMethod(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0)), x3), +(x1, 1), x3) | &&(>(+(x1, 1), 0), >(x0, +(x1, 1)))
R rules:
4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0)), x1) → 2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x1, -(x2, 1), -(x2, 1))
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x1, 0, 0) → 3701_0_Ajouter_Return(EOS(STATIC_3701(x0))) | >(x0, 0)
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x1, x2, x2) → 4247_0_Ajouter_ArrayAccess(EOS(STATIC_4247(x0)), java.lang.Object(ARRAY(x0)), x2, x1) | &&(<=(x2, 0), <=(x2, -1))
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x1, 0, 0) → 3436_0_Ajouter_ArrayAccess(EOS(STATIC_3436(x0)), java.lang.Object(ARRAY(x0)), 0, x1) | <=(x0, 0)
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x1, x2, x2) → 3523_0_Ajouter_ArrayAccess(EOS(STATIC_3523(x0)), x1, x2, java.lang.Object(ARRAY(x0)), /(-(x2, 1), 2)) | &&(>(x2, 0), <=(x0, /(-(x2, 1), 2)))
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x1, x2, x2) → 2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x1, /(-(x2, 1), 2), /(-(x2, 1), 2)) | &&(&&(&&(>(x2, 0), >(x2, /(-(x2, 1), 2))), <(x2, x0)), >(x0, /(-(x2, 1), 2)))
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x1, x2, x2) → 3625_0_Ajouter_ArrayAccess(EOS(STATIC_3625(x0)), java.lang.Object(ARRAY(x0)), x2, x1) | &&(>(x2, 0), >(x0, /(-(x2, 1), 2)))
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x1, x2, x2) → 3625_0_Ajouter_ArrayAccess(EOS(STATIC_3625(x0)), java.lang.Object(ARRAY(x0)), x2, x1) | &&(&&(&&(>(x2, 0), <=(x2, /(-(x2, 1), 2))), <(x2, x0)), >(x0, /(-(x2, 1), 2)))
3625_0_Ajouter_ArrayAccess(EOS(STATIC_3625(x0)), java.lang.Object(ARRAY(x0)), x1, x2) → 3701_0_Ajouter_Return(EOS(STATIC_3701(x0))) | <(x1, x0)
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x1, x2, x2) → 3943_0_Ajouter_ArrayAccess(EOS(STATIC_3943(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x2, java.lang.Object(ARRAY(x0)), arith[6]) | FALSE
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x1, x2, x2) → 3977_0_Ajouter_ArrayAccess(EOS(STATIC_3977(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x2) | &&(&&(>=(x2, x0), >(x2, 0)), >(x0, /(-(x2, 1), 2)))
3625_0_Ajouter_ArrayAccess(EOS(STATIC_3625(x0)), java.lang.Object(ARRAY(x0)), x1, x2) → 4247_0_Ajouter_ArrayAccess(EOS(STATIC_4247(x0)), java.lang.Object(ARRAY(x0)), x1, x2) | >=(x1, x0)

Filtered ground terms:



3436_0_Ajouter_ArrayAccess(x1, x2, x3, x4) → 3436_0_Ajouter_ArrayAccess(x1, x2, x4)
Cond_2661_0_Ajouter_LE2(x1, x2, x3, x4, x5) → Cond_2661_0_Ajouter_LE2(x1, x2, x3)
Cond_2661_0_Ajouter_LE(x1, x2, x3, x4, x5) → Cond_2661_0_Ajouter_LE(x1, x2, x3)

Filtered duplicate args:



2661_0_Ajouter_LE(x1, x2, x3, x4) → 2661_0_Ajouter_LE(x1, x2, x4)
Cond_2661_0_Ajouter_LE1(x1, x2, x3, x4, x5) → Cond_2661_0_Ajouter_LE1(x1, x2, x3, x5)
Cond_2661_0_Ajouter_LE3(x1, x2, x3, x4, x5) → Cond_2661_0_Ajouter_LE3(x1, x2, x3, x5)
3523_0_Ajouter_ArrayAccess(x1, x2, x3, x4, x5) → 3523_0_Ajouter_ArrayAccess(x1, x2, x4, x5)
Cond_2661_0_Ajouter_LE4(x1, x2, x3, x4, x5) → Cond_2661_0_Ajouter_LE4(x1, x2, x3, x5)
Cond_2661_0_Ajouter_LE5(x1, x2, x3, x4, x5) → Cond_2661_0_Ajouter_LE5(x1, x2, x3, x5)
Cond_2661_0_Ajouter_LE6(x1, x2, x3, x4, x5) → Cond_2661_0_Ajouter_LE6(x1, x2, x3, x5)
Cond_2661_0_Ajouter_LE7(x1, x2, x3, x4, x5) → Cond_2661_0_Ajouter_LE7(x1, x2, x3, x5)
3977_0_Ajouter_ArrayAccess(x1, x2, x3, x4, x5) → 3977_0_Ajouter_ArrayAccess(x1, x2, x4, x5)

Filtered unneeded arguments:



4032_1_HeapSort_InvokeMethod(x1, x2, x3) → 4032_1_HeapSort_InvokeMethod(x1, x2)
Cond_4032_1_HeapSort_InvokeMethod(x1, x2, x3, x4, x5) → Cond_4032_1_HeapSort_InvokeMethod(x1, x2, x3)
Cond_4032_1_HeapSort_InvokeMethod1(x1, x2, x3, x4, x5) → Cond_4032_1_HeapSort_InvokeMethod1(x1, x2, x3)
Cond_4032_1_HeapSort_InvokeMethod2(x1, x2, x3, x4, x5) → Cond_4032_1_HeapSort_InvokeMethod2(x1, x2, x3)
2661_0_Ajouter_LE(x1, x2, x3) → 2661_0_Ajouter_LE(x1, x3)
Cond_2661_0_Ajouter_LE(x1, x2, x3) → Cond_2661_0_Ajouter_LE(x1, x2)
Cond_2661_0_Ajouter_LE1(x1, x2, x3, x4) → Cond_2661_0_Ajouter_LE1(x1)
Cond_2661_0_Ajouter_LE2(x1, x2, x3) → Cond_2661_0_Ajouter_LE2(x1)
Cond_2661_0_Ajouter_LE3(x1, x2, x3, x4) → Cond_2661_0_Ajouter_LE3(x1)
Cond_2661_0_Ajouter_LE4(x1, x2, x3, x4) → Cond_2661_0_Ajouter_LE4(x1, x2, x4)
Cond_2661_0_Ajouter_LE5(x1, x2, x3, x4) → Cond_2661_0_Ajouter_LE5(x1, x2, x4)
Cond_2661_0_Ajouter_LE6(x1, x2, x3, x4) → Cond_2661_0_Ajouter_LE6(x1, x2, x4)
Cond_3625_0_Ajouter_ArrayAccess(x1, x2, x3, x4, x5) → Cond_3625_0_Ajouter_ArrayAccess(x1, x2, x3)
Cond_2661_0_Ajouter_LE7(x1, x2, x3, x4) → Cond_2661_0_Ajouter_LE7(x1)
Cond_3625_0_Ajouter_ArrayAccess1(x1, x2, x3, x4, x5) → Cond_3625_0_Ajouter_ArrayAccess1(x1)
3625_0_Ajouter_ArrayAccess(x1, x2, x3, x4) → 3625_0_Ajouter_ArrayAccess(x1, x2, x3)
4032_0_Ajouter_FieldAccess(x1, x2) → 4032_0_Ajouter_FieldAccess(x1)

Combined rules. Obtained 3 conditional rules for P and 11 conditional rules for R.


P rules:
4032_1_HeapSort_InvokeMethod(2778_0_Ajouter_Return(EOS(STATIC_2778(x0))), x1) → 4032_1_HeapSort_InvokeMethod(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0))), +(x1, 1)) | &&(>(x1, -1), >(x0, +(x1, 1)))
4032_1_HeapSort_InvokeMethod(2945_0_Ajouter_Return(EOS(STATIC_2945(x0))), x1) → 4032_1_HeapSort_InvokeMethod(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0))), +(x1, 1)) | &&(>(x1, -1), >(x0, +(x1, 1)))
4032_1_HeapSort_InvokeMethod(3701_0_Ajouter_Return(EOS(STATIC_3701(x0))), x1) → 4032_1_HeapSort_InvokeMethod(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0))), +(x1, 1)) | &&(>(x1, -1), >(x0, +(x1, 1)))
R rules:
4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0))) → 2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), -(x2, 1))
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), 0) → 3701_0_Ajouter_Return(EOS(STATIC_3701(x0))) | >(x0, 0)
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x2) → 4247_0_Ajouter_ArrayAccess(EOS(STATIC_4247(x0)), java.lang.Object(ARRAY(x0)), x2, x1) | &&(<=(x2, 0), <=(x2, -1))
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), 0) → 3436_0_Ajouter_ArrayAccess(EOS(STATIC_3436(x0)), java.lang.Object(ARRAY(x0)), x1) | <=(x0, 0)
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x2) → 3523_0_Ajouter_ArrayAccess(EOS(STATIC_3523(x0)), x1, java.lang.Object(ARRAY(x0)), /(-(x2, 1), 2)) | &&(>(x2, 0), <=(x0, /(-(x2, 1), 2)))
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x2) → 2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), /(-(x2, 1), 2)) | &&(&&(&&(>(x2, 0), >(x2, /(-(x2, 1), 2))), <(x2, x0)), >(x0, /(-(x2, 1), 2)))
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x2) → 3625_0_Ajouter_ArrayAccess(EOS(STATIC_3625(x0)), java.lang.Object(ARRAY(x0)), x2) | &&(>(x2, 0), >(x0, /(-(x2, 1), 2)))
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x2) → 3625_0_Ajouter_ArrayAccess(EOS(STATIC_3625(x0)), java.lang.Object(ARRAY(x0)), x2) | &&(&&(&&(>(x2, 0), <=(x2, /(-(x2, 1), 2))), <(x2, x0)), >(x0, /(-(x2, 1), 2)))
3625_0_Ajouter_ArrayAccess(EOS(STATIC_3625(x0)), java.lang.Object(ARRAY(x0)), x1) → 3701_0_Ajouter_Return(EOS(STATIC_3701(x0))) | <(x1, x0)
2661_0_Ajouter_LE(EOS(STATIC_2661(x0)), x2) → 3977_0_Ajouter_ArrayAccess(EOS(STATIC_3977(x0)), x1, java.lang.Object(ARRAY(x0)), x2) | &&(&&(>=(x2, x0), >(x2, 0)), >(x0, /(-(x2, 1), 2)))
3625_0_Ajouter_ArrayAccess(EOS(STATIC_3625(x0)), java.lang.Object(ARRAY(x0)), x1) → 4247_0_Ajouter_ArrayAccess(EOS(STATIC_4247(x0)), java.lang.Object(ARRAY(x0)), x1, x2) | >=(x1, x0)

Performed bisimulation on rules. Used the following equivalence classes: {[3701_0_Ajouter_Return_1, 2778_0_Ajouter_Return_1, 2945_0_Ajouter_Return_1]=3701_0_Ajouter_Return_1, [STATIC_4032_1, STATIC_2661_1, STATIC_3701_1, STATIC_4247_1, STATIC_3436_1, STATIC_3523_1, STATIC_3625_1, STATIC_3977_1, STATIC_2778_1, STATIC_2945_1]=STATIC_4032_1, [Cond_4032_1_HeapSort_InvokeMethod_3, Cond_4032_1_HeapSort_InvokeMethod1_3, Cond_4032_1_HeapSort_InvokeMethod2_3]=Cond_4032_1_HeapSort_InvokeMethod_3}


Finished conversion. Obtained 2 rules for P and 21 rules for R. System has predefined symbols.


P rules:
4032_1_HEAPSORT_INVOKEMETHOD(3701_0_Ajouter_Return(EOS(STATIC_4032(x0))), x1) → COND_4032_1_HEAPSORT_INVOKEMETHOD(&&(>(x1, -1), >(x0, +(x1, 1))), 3701_0_Ajouter_Return(EOS(STATIC_4032(x0))), x1)
COND_4032_1_HEAPSORT_INVOKEMETHOD(TRUE, 3701_0_Ajouter_Return(EOS(STATIC_4032(x0))), x1) → 4032_1_HEAPSORT_INVOKEMETHOD(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0))), +(x1, 1))
R rules:
4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0))) → 2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), -(x2, 1))
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), 0) → Cond_2661_0_Ajouter_LE(>(x0, 0), EOS(STATIC_4032(x0)), 0)
Cond_2661_0_Ajouter_LE(TRUE, EOS(STATIC_4032(x0)), 0) → 3701_0_Ajouter_Return(EOS(STATIC_4032(x0)))
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE1(&&(<=(x2, 0), <=(x2, -1)), EOS(STATIC_4032(x0)), x2, x1)
Cond_2661_0_Ajouter_LE1(TRUE, EOS(STATIC_4032(x0)), x2, x1) → 4247_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x2, x1)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), 0) → Cond_2661_0_Ajouter_LE2(<=(x0, 0), EOS(STATIC_4032(x0)), 0, x1)
Cond_2661_0_Ajouter_LE2(TRUE, EOS(STATIC_4032(x0)), 0, x1) → 3436_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE3(&&(>(x2, 0), <=(x0, /(-(x2, 1), 2))), EOS(STATIC_4032(x0)), x2, x1)
Cond_2661_0_Ajouter_LE3(TRUE, EOS(STATIC_4032(x0)), x2, x1) → 3523_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), x1, java.lang.Object(ARRAY(x0)), /(-(x2, 1), 2))
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE4(&&(&&(&&(>(x2, 0), >(x2, /(-(x2, 1), 2))), <(x2, x0)), >(x0, /(-(x2, 1), 2))), EOS(STATIC_4032(x0)), x2)
Cond_2661_0_Ajouter_LE4(TRUE, EOS(STATIC_4032(x0)), x2) → 2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), /(-(x2, 1), 2))
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE5(&&(>(x2, 0), >(x0, /(-(x2, 1), 2))), EOS(STATIC_4032(x0)), x2)
Cond_2661_0_Ajouter_LE5(TRUE, EOS(STATIC_4032(x0)), x2) → 3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x2)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE6(&&(&&(&&(>(x2, 0), <=(x2, /(-(x2, 1), 2))), <(x2, x0)), >(x0, /(-(x2, 1), 2))), EOS(STATIC_4032(x0)), x2)
Cond_2661_0_Ajouter_LE6(TRUE, EOS(STATIC_4032(x0)), x2) → 3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x2)
3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1) → Cond_3625_0_Ajouter_ArrayAccess(<(x1, x0), EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)
Cond_3625_0_Ajouter_ArrayAccess(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1) → 3701_0_Ajouter_Return(EOS(STATIC_4032(x0)))
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE7(&&(&&(>=(x2, x0), >(x2, 0)), >(x0, /(-(x2, 1), 2))), EOS(STATIC_4032(x0)), x2, x1)
Cond_2661_0_Ajouter_LE7(TRUE, EOS(STATIC_4032(x0)), x2, x1) → 3977_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), x1, java.lang.Object(ARRAY(x0)), x2)
3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1) → Cond_3625_0_Ajouter_ArrayAccess1(>=(x1, x0), EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2)
Cond_3625_0_Ajouter_ArrayAccess1(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2) → 4247_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2)

(32) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0))) → 2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2 - 1)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), 0) → Cond_2661_0_Ajouter_LE(x0 > 0, EOS(STATIC_4032(x0)), 0)
Cond_2661_0_Ajouter_LE(TRUE, EOS(STATIC_4032(x0)), 0) → 3701_0_Ajouter_Return(EOS(STATIC_4032(x0)))
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE1(x2 <= 0 && x2 <= -1, EOS(STATIC_4032(x0)), x2, x1)
Cond_2661_0_Ajouter_LE1(TRUE, EOS(STATIC_4032(x0)), x2, x1) → 4247_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x2, x1)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), 0) → Cond_2661_0_Ajouter_LE2(x0 <= 0, EOS(STATIC_4032(x0)), 0, x1)
Cond_2661_0_Ajouter_LE2(TRUE, EOS(STATIC_4032(x0)), 0, x1) → 3436_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE3(x2 > 0 && x0 <= x2 - 1 / 2, EOS(STATIC_4032(x0)), x2, x1)
Cond_2661_0_Ajouter_LE3(TRUE, EOS(STATIC_4032(x0)), x2, x1) → 3523_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), x1, java.lang.Object(ARRAY(x0)), x2 - 1 / 2)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE4(x2 > 0 && x2 > x2 - 1 / 2 && x2 < x0 && x0 > x2 - 1 / 2, EOS(STATIC_4032(x0)), x2)
Cond_2661_0_Ajouter_LE4(TRUE, EOS(STATIC_4032(x0)), x2) → 2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2 - 1 / 2)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE5(x2 > 0 && x0 > x2 - 1 / 2, EOS(STATIC_4032(x0)), x2)
Cond_2661_0_Ajouter_LE5(TRUE, EOS(STATIC_4032(x0)), x2) → 3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x2)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE6(x2 > 0 && x2 <= x2 - 1 / 2 && x2 < x0 && x0 > x2 - 1 / 2, EOS(STATIC_4032(x0)), x2)
Cond_2661_0_Ajouter_LE6(TRUE, EOS(STATIC_4032(x0)), x2) → 3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x2)
3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1) → Cond_3625_0_Ajouter_ArrayAccess(x1 < x0, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)
Cond_3625_0_Ajouter_ArrayAccess(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1) → 3701_0_Ajouter_Return(EOS(STATIC_4032(x0)))
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE7(x2 >= x0 && x2 > 0 && x0 > x2 - 1 / 2, EOS(STATIC_4032(x0)), x2, x1)
Cond_2661_0_Ajouter_LE7(TRUE, EOS(STATIC_4032(x0)), x2, x1) → 3977_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), x1, java.lang.Object(ARRAY(x0)), x2)
3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1) → Cond_3625_0_Ajouter_ArrayAccess1(x1 >= x0, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2)
Cond_3625_0_Ajouter_ArrayAccess1(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2) → 4247_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2)

The integer pair graph contains the following rules and edges:
(0): 4032_1_HEAPSORT_INVOKEMETHOD(3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0]) → COND_4032_1_HEAPSORT_INVOKEMETHOD(x1[0] > -1 && x0[0] > x1[0] + 1, 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])
(1): COND_4032_1_HEAPSORT_INVOKEMETHOD(TRUE, 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[1]))), x1[1]) → 4032_1_HEAPSORT_INVOKEMETHOD(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0[1]))), x1[1] + 1)

(0) -> (1), if (x1[0] > -1 && x0[0] > x1[0] + 13701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))) →* 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[1])))∧x1[0]* x1[1])


(1) -> (0), if (4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0[1]))) →* 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0])))∧x1[1] + 1* x1[0])



The set Q consists of the following terms:
4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0)))
Cond_2661_0_Ajouter_LE(TRUE, EOS(STATIC_4032(x0)), 0)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x1)
Cond_2661_0_Ajouter_LE1(TRUE, EOS(STATIC_4032(x0)), x1, x2)
Cond_2661_0_Ajouter_LE2(TRUE, EOS(STATIC_4032(x0)), 0, x1)
Cond_2661_0_Ajouter_LE3(TRUE, EOS(STATIC_4032(x0)), x1, x2)
Cond_2661_0_Ajouter_LE4(TRUE, EOS(STATIC_4032(x0)), x1)
Cond_2661_0_Ajouter_LE5(TRUE, EOS(STATIC_4032(x0)), x1)
Cond_2661_0_Ajouter_LE6(TRUE, EOS(STATIC_4032(x0)), x1)
3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)
Cond_3625_0_Ajouter_ArrayAccess(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)
Cond_2661_0_Ajouter_LE7(TRUE, EOS(STATIC_4032(x0)), x1, x2)
Cond_3625_0_Ajouter_ArrayAccess1(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2)

(33) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: false Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpCand1ShapeHeuristic@941593f Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 0 Max Right Steps: 0

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 4032_1_HEAPSORT_INVOKEMETHOD(3701_0_Ajouter_Return(EOS(STATIC_4032(x0))), x1) → COND_4032_1_HEAPSORT_INVOKEMETHOD(&&(>(x1, -1), >(x0, +(x1, 1))), 3701_0_Ajouter_Return(EOS(STATIC_4032(x0))), x1) the following chains were created:
  • We consider the chain 4032_1_HEAPSORT_INVOKEMETHOD(3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0]) → COND_4032_1_HEAPSORT_INVOKEMETHOD(&&(>(x1[0], -1), >(x0[0], +(x1[0], 1))), 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0]), COND_4032_1_HEAPSORT_INVOKEMETHOD(TRUE, 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[1]))), x1[1]) → 4032_1_HEAPSORT_INVOKEMETHOD(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0[1]))), +(x1[1], 1)) which results in the following constraint:

    (1)    (&&(>(x1[0], -1), >(x0[0], +(x1[0], 1)))=TRUE3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0])))=3701_0_Ajouter_Return(EOS(STATIC_4032(x0[1])))∧x1[0]=x1[1]4032_1_HEAPSORT_INVOKEMETHOD(3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])≥NonInfC∧4032_1_HEAPSORT_INVOKEMETHOD(3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])≥COND_4032_1_HEAPSORT_INVOKEMETHOD(&&(>(x1[0], -1), >(x0[0], +(x1[0], 1))), 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])∧(UIncreasing(COND_4032_1_HEAPSORT_INVOKEMETHOD(&&(>(x1[0], -1), >(x0[0], +(x1[0], 1))), 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])), ≥))



    We simplified constraint (1) using rules (I), (II), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (2)    (>(x1[0], -1)=TRUE>(x0[0], +(x1[0], 1))=TRUE4032_1_HEAPSORT_INVOKEMETHOD(3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])≥NonInfC∧4032_1_HEAPSORT_INVOKEMETHOD(3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])≥COND_4032_1_HEAPSORT_INVOKEMETHOD(&&(>(x1[0], -1), >(x0[0], +(x1[0], 1))), 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])∧(UIncreasing(COND_4032_1_HEAPSORT_INVOKEMETHOD(&&(>(x1[0], -1), >(x0[0], +(x1[0], 1))), 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_4032_1_HEAPSORT_INVOKEMETHOD(&&(>(x1[0], -1), >(x0[0], +(x1[0], 1))), 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])), ≥)∧[(-1)bni_41 + (-1)Bound*bni_41] + [(-1)bni_41]x1[0] + [bni_41]x0[0] ≥ 0∧[(-1)bso_42] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_4032_1_HEAPSORT_INVOKEMETHOD(&&(>(x1[0], -1), >(x0[0], +(x1[0], 1))), 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])), ≥)∧[(-1)bni_41 + (-1)Bound*bni_41] + [(-1)bni_41]x1[0] + [bni_41]x0[0] ≥ 0∧[(-1)bso_42] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_4032_1_HEAPSORT_INVOKEMETHOD(&&(>(x1[0], -1), >(x0[0], +(x1[0], 1))), 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])), ≥)∧[(-1)bni_41 + (-1)Bound*bni_41] + [(-1)bni_41]x1[0] + [bni_41]x0[0] ≥ 0∧[(-1)bso_42] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    (x1[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_4032_1_HEAPSORT_INVOKEMETHOD(&&(>(x1[0], -1), >(x0[0], +(x1[0], 1))), 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])), ≥)∧[bni_41 + (-1)Bound*bni_41] + [bni_41]x0[0] ≥ 0∧[(-1)bso_42] ≥ 0)







For Pair COND_4032_1_HEAPSORT_INVOKEMETHOD(TRUE, 3701_0_Ajouter_Return(EOS(STATIC_4032(x0))), x1) → 4032_1_HEAPSORT_INVOKEMETHOD(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0))), +(x1, 1)) the following chains were created:
  • We consider the chain COND_4032_1_HEAPSORT_INVOKEMETHOD(TRUE, 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[1]))), x1[1]) → 4032_1_HEAPSORT_INVOKEMETHOD(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0[1]))), +(x1[1], 1)) which results in the following constraint:

    (7)    (COND_4032_1_HEAPSORT_INVOKEMETHOD(TRUE, 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[1]))), x1[1])≥NonInfC∧COND_4032_1_HEAPSORT_INVOKEMETHOD(TRUE, 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[1]))), x1[1])≥4032_1_HEAPSORT_INVOKEMETHOD(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0[1]))), +(x1[1], 1))∧(UIncreasing(4032_1_HEAPSORT_INVOKEMETHOD(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0[1]))), +(x1[1], 1))), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    ((UIncreasing(4032_1_HEAPSORT_INVOKEMETHOD(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0[1]))), +(x1[1], 1))), ≥)∧[bni_43] = 0∧[1 + (-1)bso_44] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    ((UIncreasing(4032_1_HEAPSORT_INVOKEMETHOD(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0[1]))), +(x1[1], 1))), ≥)∧[bni_43] = 0∧[1 + (-1)bso_44] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    ((UIncreasing(4032_1_HEAPSORT_INVOKEMETHOD(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0[1]))), +(x1[1], 1))), ≥)∧[bni_43] = 0∧[1 + (-1)bso_44] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    ((UIncreasing(4032_1_HEAPSORT_INVOKEMETHOD(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0[1]))), +(x1[1], 1))), ≥)∧[bni_43] = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_44] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 4032_1_HEAPSORT_INVOKEMETHOD(3701_0_Ajouter_Return(EOS(STATIC_4032(x0))), x1) → COND_4032_1_HEAPSORT_INVOKEMETHOD(&&(>(x1, -1), >(x0, +(x1, 1))), 3701_0_Ajouter_Return(EOS(STATIC_4032(x0))), x1)
    • (x1[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_4032_1_HEAPSORT_INVOKEMETHOD(&&(>(x1[0], -1), >(x0[0], +(x1[0], 1))), 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])), ≥)∧[bni_41 + (-1)Bound*bni_41] + [bni_41]x0[0] ≥ 0∧[(-1)bso_42] ≥ 0)

  • COND_4032_1_HEAPSORT_INVOKEMETHOD(TRUE, 3701_0_Ajouter_Return(EOS(STATIC_4032(x0))), x1) → 4032_1_HEAPSORT_INVOKEMETHOD(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0))), +(x1, 1))
    • ((UIncreasing(4032_1_HEAPSORT_INVOKEMETHOD(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0[1]))), +(x1[1], 1))), ≥)∧[bni_43] = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_44] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(4032_0_Ajouter_FieldAccess(x1)) = x1   
POL(EOS(x1)) = x1   
POL(STATIC_4032(x1)) = x1   
POL(2661_0_Ajouter_LE(x1, x2)) = x1   
POL(-(x1, x2)) = x1 + [-1]x2   
POL(1) = [1]   
POL(0) = 0   
POL(Cond_2661_0_Ajouter_LE(x1, x2, x3)) = x2   
POL(>(x1, x2)) = [-1]   
POL(3701_0_Ajouter_Return(x1)) = x1   
POL(Cond_2661_0_Ajouter_LE1(x1, x2, x3, x4)) = [-1] + x2   
POL(&&(x1, x2)) = [-1]   
POL(<=(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(4247_0_Ajouter_ArrayAccess(x1, x2, x3, x4)) = [-1] + x1   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1)) = x1   
POL(Cond_2661_0_Ajouter_LE2(x1, x2, x3, x4)) = x2   
POL(3436_0_Ajouter_ArrayAccess(x1, x2, x3)) = x2   
POL(Cond_2661_0_Ajouter_LE3(x1, x2, x3, x4)) = x2   
POL(2) = [2]   
POL(3523_0_Ajouter_ArrayAccess(x1, x2, x3, x4)) = [-1] + x4 + [2]x3 + [-1]x1   
POL(Cond_2661_0_Ajouter_LE4(x1, x2, x3)) = x2   
POL(<(x1, x2)) = [-1]   
POL(Cond_2661_0_Ajouter_LE5(x1, x2, x3)) = x2   
POL(3625_0_Ajouter_ArrayAccess(x1, x2, x3)) = x1   
POL(Cond_2661_0_Ajouter_LE6(x1, x2, x3)) = x2   
POL(Cond_3625_0_Ajouter_ArrayAccess(x1, x2, x3, x4)) = x2   
POL(Cond_2661_0_Ajouter_LE7(x1, x2, x3, x4)) = x2   
POL(>=(x1, x2)) = [-1]   
POL(3977_0_Ajouter_ArrayAccess(x1, x2, x3, x4)) = x1   
POL(Cond_3625_0_Ajouter_ArrayAccess1(x1, x2, x3, x4, x5)) = x2   
POL(4032_1_HEAPSORT_INVOKEMETHOD(x1, x2)) = [-1] + [-1]x2 + x1   
POL(COND_4032_1_HEAPSORT_INVOKEMETHOD(x1, x2, x3)) = [-1] + [-1]x3 + x2   
POL(+(x1, x2)) = x1 + x2   

Polynomial Interpretations with Context Sensitive Arithemetic Replacement
POL(TermCSAR-Mode @ Context)

POL(/(x1, 2)1 @ {2661_0_Ajouter_LE_2/1}) = max{x1, [-1]x1} + [-1]   
POL(/(x1, 2)1 @ {3523_0_Ajouter_ArrayAccess_4/3}) = [-1]max{x1, [-1]x1} + [1]   

The following pairs are in P>:

COND_4032_1_HEAPSORT_INVOKEMETHOD(TRUE, 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[1]))), x1[1]) → 4032_1_HEAPSORT_INVOKEMETHOD(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0[1]))), +(x1[1], 1))

The following pairs are in Pbound:

4032_1_HEAPSORT_INVOKEMETHOD(3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0]) → COND_4032_1_HEAPSORT_INVOKEMETHOD(&&(>(x1[0], -1), >(x0[0], +(x1[0], 1))), 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])

The following pairs are in P:

4032_1_HEAPSORT_INVOKEMETHOD(3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0]) → COND_4032_1_HEAPSORT_INVOKEMETHOD(&&(>(x1[0], -1), >(x0[0], +(x1[0], 1))), 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0)))12661_0_Ajouter_LE(EOS(STATIC_4032(x0)), -(x2, 1))1
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), 0)1Cond_2661_0_Ajouter_LE(>(x0, 0), EOS(STATIC_4032(x0)), 0)1
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2)1Cond_2661_0_Ajouter_LE1(&&(<=(x2, 0), <=(x2, -1)), EOS(STATIC_4032(x0)), x2, x1)1
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), 0)1Cond_2661_0_Ajouter_LE2(<=(x0, 0), EOS(STATIC_4032(x0)), 0, x1)1
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2)1Cond_2661_0_Ajouter_LE3(&&(>(x2, 0), <=(x0, /(-(x2, 1), 2))), EOS(STATIC_4032(x0)), x2, x1)1
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2)1Cond_2661_0_Ajouter_LE4(&&(&&(&&(>(x2, 0), >(x2, /(-(x2, 1), 2))), <(x2, x0)), >(x0, /(-(x2, 1), 2))), EOS(STATIC_4032(x0)), x2)1
Cond_2661_0_Ajouter_LE4(TRUE, EOS(STATIC_4032(x0)), x2)12661_0_Ajouter_LE(EOS(STATIC_4032(x0)), /(-(x2, 1), 2))1
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2)1Cond_2661_0_Ajouter_LE5(&&(>(x2, 0), >(x0, /(-(x2, 1), 2))), EOS(STATIC_4032(x0)), x2)1
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2)1Cond_2661_0_Ajouter_LE6(&&(&&(&&(>(x2, 0), <=(x2, /(-(x2, 1), 2))), <(x2, x0)), >(x0, /(-(x2, 1), 2))), EOS(STATIC_4032(x0)), x2)1
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2)1Cond_2661_0_Ajouter_LE7(&&(&&(>=(x2, x0), >(x2, 0)), >(x0, /(-(x2, 1), 2))), EOS(STATIC_4032(x0)), x2, x1)1
/1
Cond_2661_0_Ajouter_LE(TRUE, EOS(STATIC_4032(x0)), 0)13701_0_Ajouter_Return(EOS(STATIC_4032(x0)))1
Cond_2661_0_Ajouter_LE1(TRUE, EOS(STATIC_4032(x0)), x2, x1)14247_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x2, x1)1
Cond_2661_0_Ajouter_LE2(TRUE, EOS(STATIC_4032(x0)), 0, x1)13436_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)1
Cond_2661_0_Ajouter_LE3(TRUE, EOS(STATIC_4032(x0)), x2, x1)13523_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), x1, java.lang.Object(ARRAY(x0)), /(-(x2, 1), 2))1
Cond_2661_0_Ajouter_LE5(TRUE, EOS(STATIC_4032(x0)), x2)13625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x2)1
3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)1Cond_3625_0_Ajouter_ArrayAccess(<(x1, x0), EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)1
3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)1Cond_3625_0_Ajouter_ArrayAccess1(>=(x1, x0), EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2)1
Cond_2661_0_Ajouter_LE6(TRUE, EOS(STATIC_4032(x0)), x2)13625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x2)1
Cond_3625_0_Ajouter_ArrayAccess(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)13701_0_Ajouter_Return(EOS(STATIC_4032(x0)))1
Cond_2661_0_Ajouter_LE7(TRUE, EOS(STATIC_4032(x0)), x2, x1)13977_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), x1, java.lang.Object(ARRAY(x0)), x2)1
Cond_3625_0_Ajouter_ArrayAccess1(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2)14247_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2)1

(34) Complex Obligation (AND)

(35) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0))) → 2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2 - 1)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), 0) → Cond_2661_0_Ajouter_LE(x0 > 0, EOS(STATIC_4032(x0)), 0)
Cond_2661_0_Ajouter_LE(TRUE, EOS(STATIC_4032(x0)), 0) → 3701_0_Ajouter_Return(EOS(STATIC_4032(x0)))
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE1(x2 <= 0 && x2 <= -1, EOS(STATIC_4032(x0)), x2, x1)
Cond_2661_0_Ajouter_LE1(TRUE, EOS(STATIC_4032(x0)), x2, x1) → 4247_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x2, x1)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), 0) → Cond_2661_0_Ajouter_LE2(x0 <= 0, EOS(STATIC_4032(x0)), 0, x1)
Cond_2661_0_Ajouter_LE2(TRUE, EOS(STATIC_4032(x0)), 0, x1) → 3436_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE3(x2 > 0 && x0 <= x2 - 1 / 2, EOS(STATIC_4032(x0)), x2, x1)
Cond_2661_0_Ajouter_LE3(TRUE, EOS(STATIC_4032(x0)), x2, x1) → 3523_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), x1, java.lang.Object(ARRAY(x0)), x2 - 1 / 2)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE4(x2 > 0 && x2 > x2 - 1 / 2 && x2 < x0 && x0 > x2 - 1 / 2, EOS(STATIC_4032(x0)), x2)
Cond_2661_0_Ajouter_LE4(TRUE, EOS(STATIC_4032(x0)), x2) → 2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2 - 1 / 2)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE5(x2 > 0 && x0 > x2 - 1 / 2, EOS(STATIC_4032(x0)), x2)
Cond_2661_0_Ajouter_LE5(TRUE, EOS(STATIC_4032(x0)), x2) → 3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x2)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE6(x2 > 0 && x2 <= x2 - 1 / 2 && x2 < x0 && x0 > x2 - 1 / 2, EOS(STATIC_4032(x0)), x2)
Cond_2661_0_Ajouter_LE6(TRUE, EOS(STATIC_4032(x0)), x2) → 3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x2)
3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1) → Cond_3625_0_Ajouter_ArrayAccess(x1 < x0, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)
Cond_3625_0_Ajouter_ArrayAccess(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1) → 3701_0_Ajouter_Return(EOS(STATIC_4032(x0)))
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE7(x2 >= x0 && x2 > 0 && x0 > x2 - 1 / 2, EOS(STATIC_4032(x0)), x2, x1)
Cond_2661_0_Ajouter_LE7(TRUE, EOS(STATIC_4032(x0)), x2, x1) → 3977_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), x1, java.lang.Object(ARRAY(x0)), x2)
3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1) → Cond_3625_0_Ajouter_ArrayAccess1(x1 >= x0, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2)
Cond_3625_0_Ajouter_ArrayAccess1(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2) → 4247_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2)

The integer pair graph contains the following rules and edges:
(0): 4032_1_HEAPSORT_INVOKEMETHOD(3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0]) → COND_4032_1_HEAPSORT_INVOKEMETHOD(x1[0] > -1 && x0[0] > x1[0] + 1, 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[0]))), x1[0])


The set Q consists of the following terms:
4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0)))
Cond_2661_0_Ajouter_LE(TRUE, EOS(STATIC_4032(x0)), 0)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x1)
Cond_2661_0_Ajouter_LE1(TRUE, EOS(STATIC_4032(x0)), x1, x2)
Cond_2661_0_Ajouter_LE2(TRUE, EOS(STATIC_4032(x0)), 0, x1)
Cond_2661_0_Ajouter_LE3(TRUE, EOS(STATIC_4032(x0)), x1, x2)
Cond_2661_0_Ajouter_LE4(TRUE, EOS(STATIC_4032(x0)), x1)
Cond_2661_0_Ajouter_LE5(TRUE, EOS(STATIC_4032(x0)), x1)
Cond_2661_0_Ajouter_LE6(TRUE, EOS(STATIC_4032(x0)), x1)
3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)
Cond_3625_0_Ajouter_ArrayAccess(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)
Cond_2661_0_Ajouter_LE7(TRUE, EOS(STATIC_4032(x0)), x1, x2)
Cond_3625_0_Ajouter_ArrayAccess1(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2)

(36) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(37) TRUE

(38) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0))) → 2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2 - 1)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), 0) → Cond_2661_0_Ajouter_LE(x0 > 0, EOS(STATIC_4032(x0)), 0)
Cond_2661_0_Ajouter_LE(TRUE, EOS(STATIC_4032(x0)), 0) → 3701_0_Ajouter_Return(EOS(STATIC_4032(x0)))
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE1(x2 <= 0 && x2 <= -1, EOS(STATIC_4032(x0)), x2, x1)
Cond_2661_0_Ajouter_LE1(TRUE, EOS(STATIC_4032(x0)), x2, x1) → 4247_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x2, x1)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), 0) → Cond_2661_0_Ajouter_LE2(x0 <= 0, EOS(STATIC_4032(x0)), 0, x1)
Cond_2661_0_Ajouter_LE2(TRUE, EOS(STATIC_4032(x0)), 0, x1) → 3436_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE3(x2 > 0 && x0 <= x2 - 1 / 2, EOS(STATIC_4032(x0)), x2, x1)
Cond_2661_0_Ajouter_LE3(TRUE, EOS(STATIC_4032(x0)), x2, x1) → 3523_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), x1, java.lang.Object(ARRAY(x0)), x2 - 1 / 2)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE4(x2 > 0 && x2 > x2 - 1 / 2 && x2 < x0 && x0 > x2 - 1 / 2, EOS(STATIC_4032(x0)), x2)
Cond_2661_0_Ajouter_LE4(TRUE, EOS(STATIC_4032(x0)), x2) → 2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2 - 1 / 2)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE5(x2 > 0 && x0 > x2 - 1 / 2, EOS(STATIC_4032(x0)), x2)
Cond_2661_0_Ajouter_LE5(TRUE, EOS(STATIC_4032(x0)), x2) → 3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x2)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE6(x2 > 0 && x2 <= x2 - 1 / 2 && x2 < x0 && x0 > x2 - 1 / 2, EOS(STATIC_4032(x0)), x2)
Cond_2661_0_Ajouter_LE6(TRUE, EOS(STATIC_4032(x0)), x2) → 3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x2)
3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1) → Cond_3625_0_Ajouter_ArrayAccess(x1 < x0, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)
Cond_3625_0_Ajouter_ArrayAccess(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1) → 3701_0_Ajouter_Return(EOS(STATIC_4032(x0)))
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x2) → Cond_2661_0_Ajouter_LE7(x2 >= x0 && x2 > 0 && x0 > x2 - 1 / 2, EOS(STATIC_4032(x0)), x2, x1)
Cond_2661_0_Ajouter_LE7(TRUE, EOS(STATIC_4032(x0)), x2, x1) → 3977_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), x1, java.lang.Object(ARRAY(x0)), x2)
3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1) → Cond_3625_0_Ajouter_ArrayAccess1(x1 >= x0, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2)
Cond_3625_0_Ajouter_ArrayAccess1(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2) → 4247_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2)

The integer pair graph contains the following rules and edges:
(1): COND_4032_1_HEAPSORT_INVOKEMETHOD(TRUE, 3701_0_Ajouter_Return(EOS(STATIC_4032(x0[1]))), x1[1]) → 4032_1_HEAPSORT_INVOKEMETHOD(4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0[1]))), x1[1] + 1)


The set Q consists of the following terms:
4032_0_Ajouter_FieldAccess(EOS(STATIC_4032(x0)))
Cond_2661_0_Ajouter_LE(TRUE, EOS(STATIC_4032(x0)), 0)
2661_0_Ajouter_LE(EOS(STATIC_4032(x0)), x1)
Cond_2661_0_Ajouter_LE1(TRUE, EOS(STATIC_4032(x0)), x1, x2)
Cond_2661_0_Ajouter_LE2(TRUE, EOS(STATIC_4032(x0)), 0, x1)
Cond_2661_0_Ajouter_LE3(TRUE, EOS(STATIC_4032(x0)), x1, x2)
Cond_2661_0_Ajouter_LE4(TRUE, EOS(STATIC_4032(x0)), x1)
Cond_2661_0_Ajouter_LE5(TRUE, EOS(STATIC_4032(x0)), x1)
Cond_2661_0_Ajouter_LE6(TRUE, EOS(STATIC_4032(x0)), x1)
3625_0_Ajouter_ArrayAccess(EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)
Cond_3625_0_Ajouter_ArrayAccess(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1)
Cond_2661_0_Ajouter_LE7(TRUE, EOS(STATIC_4032(x0)), x1, x2)
Cond_3625_0_Ajouter_ArrayAccess1(TRUE, EOS(STATIC_4032(x0)), java.lang.Object(ARRAY(x0)), x1, x2)

(39) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(40) TRUE

(41) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: TriTas.main([Ljava/lang/String;)V
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

(42) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 45 rules for P and 0 rules for R.


P rules:
2711_0_main_FieldAccess(EOS(STATIC_2711(i21, i445)), i446, i446) → 2722_0_main_GE(EOS(STATIC_2722(i21, i445)), i446, i446, i21)
2722_0_main_GE(EOS(STATIC_2722(i21, i445)), i446, i446, i21) → 2733_0_main_GE(EOS(STATIC_2733(i21, i445)), i446, i446, i21)
2733_0_main_GE(EOS(STATIC_2733(i21, i445)), i446, i446, i21) → 2744_0_main_FieldAccess(EOS(STATIC_2744(i21, i445)), i446) | <(i446, i21)
2744_0_main_FieldAccess(EOS(STATIC_2744(i21, i445)), i446) → 2758_0_main_Load(EOS(STATIC_2758(i21, i445)), i446, java.lang.Object(ARRAY(i21)))
2758_0_main_Load(EOS(STATIC_2758(i21, i445)), i446, java.lang.Object(ARRAY(i21))) → 2771_0_main_InvokeMethod(EOS(STATIC_2771(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446)
2771_0_main_InvokeMethod(EOS(STATIC_2771(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446) → 2785_0_random_FieldAccess(EOS(STATIC_2785(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446)
2785_0_random_FieldAccess(EOS(STATIC_2785(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446) → 2814_0_random_FieldAccess(EOS(STATIC_2814(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, i445)
2814_0_random_FieldAccess(EOS(STATIC_2814(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, i445) → 2831_0_random_ArrayLength(EOS(STATIC_2831(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, i445, java.lang.Object(ARRAY(i21)))
2831_0_random_ArrayLength(EOS(STATIC_2831(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, i445, java.lang.Object(ARRAY(i21))) → 2849_0_random_LT(EOS(STATIC_2849(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, i445, i21) | >=(i21, 0)
2849_0_random_LT(EOS(STATIC_2849(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, i445, i21) → 2864_0_random_LT(EOS(STATIC_2864(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, i445, i21)
2849_0_random_LT(EOS(STATIC_2849(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, i445, i21) → 2865_0_random_LT(EOS(STATIC_2865(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, i445, i21)
2864_0_random_LT(EOS(STATIC_2864(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, i445, i21) → 2881_0_random_FieldAccess(EOS(STATIC_2881(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446) | <(i445, i21)
2881_0_random_FieldAccess(EOS(STATIC_2881(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446) → 2896_0_random_FieldAccess(EOS(STATIC_2896(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(ARRAY(i21)))
2896_0_random_FieldAccess(EOS(STATIC_2896(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(ARRAY(i21))) → 2911_0_random_ArrayAccess(EOS(STATIC_2911(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(ARRAY(i21)), i445)
2911_0_random_ArrayAccess(EOS(STATIC_2911(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(ARRAY(i21)), i445) → 2928_0_random_ArrayAccess(EOS(STATIC_2928(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(ARRAY(i21)), i445)
2928_0_random_ArrayAccess(EOS(STATIC_2928(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(ARRAY(i21)), i445) → 2952_0_random_Store(EOS(STATIC_2952(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, o671)
2952_0_random_Store(EOS(STATIC_2952(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, o671) → 2973_0_random_FieldAccess(EOS(STATIC_2973(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, o671)
2973_0_random_FieldAccess(EOS(STATIC_2973(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, o671) → 2997_0_random_ConstantStackPush(EOS(STATIC_2997(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, o671, i445)
2997_0_random_ConstantStackPush(EOS(STATIC_2997(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, o671, i445) → 3027_0_random_IntArithmetic(EOS(STATIC_3027(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, o671, i445, 1)
3027_0_random_IntArithmetic(EOS(STATIC_3027(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, o671, i445, matching1) → 3054_0_random_FieldAccess(EOS(STATIC_3054(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, o671, +(i445, 1)) | &&(>=(i445, 0), =(matching1, 1))
3054_0_random_FieldAccess(EOS(STATIC_3054(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, o671, i542) → 3081_0_random_Load(EOS(STATIC_3081(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446, o671)
3081_0_random_Load(EOS(STATIC_3081(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446, o671) → 3114_0_random_InvokeMethod(EOS(STATIC_3114(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446, o671)
3114_0_random_InvokeMethod(EOS(STATIC_3114(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(o769sub)) → 3158_0_random_InvokeMethod(EOS(STATIC_3158(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(o769sub))
3158_0_random_InvokeMethod(EOS(STATIC_3158(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(o769sub)) → 3191_0_length_Load(EOS(STATIC_3191(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(o769sub), java.lang.Object(o769sub))
3191_0_length_Load(EOS(STATIC_3191(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(o769sub), java.lang.Object(o769sub)) → 3262_0_length_FieldAccess(EOS(STATIC_3262(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(o769sub), java.lang.Object(o769sub))
3262_0_length_FieldAccess(EOS(STATIC_3262(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(java.lang.String(o859sub, i630)), java.lang.Object(java.lang.String(o859sub, i630))) → 3288_0_length_FieldAccess(EOS(STATIC_3288(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(java.lang.String(o859sub, i630)), java.lang.Object(java.lang.String(o859sub, i630))) | &&(>=(i630, 0), >=(i631, 0))
3288_0_length_FieldAccess(EOS(STATIC_3288(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(java.lang.String(o859sub, i630)), java.lang.Object(java.lang.String(o859sub, i630))) → 3319_0_length_Return(EOS(STATIC_3319(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(java.lang.String(o859sub, i630)))
3319_0_length_Return(EOS(STATIC_3319(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446, java.lang.Object(java.lang.String(o859sub, i630))) → 3350_0_random_Return(EOS(STATIC_3350(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446)
3350_0_random_Return(EOS(STATIC_3350(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446) → 3373_0_main_ArrayAccess(EOS(STATIC_3373(i21, i542)), i446, java.lang.Object(ARRAY(i21)), i446)
3373_0_main_ArrayAccess(EOS(STATIC_3373(i21, i542)), i683, java.lang.Object(ARRAY(i21)), i683) → 3411_0_main_ArrayAccess(EOS(STATIC_3411(i21, i542)), i683, java.lang.Object(ARRAY(i21)), i683)
3411_0_main_ArrayAccess(EOS(STATIC_3411(i21, i542)), i683, java.lang.Object(ARRAY(i21)), i683) → 3457_0_main_ArrayAccess(EOS(STATIC_3457(i21, i542)), i683, java.lang.Object(ARRAY(i21)), i683)
3457_0_main_ArrayAccess(EOS(STATIC_3457(i21, i542)), i683, java.lang.Object(ARRAY(i21)), i683) → 3487_0_main_Inc(EOS(STATIC_3487(i21, i542)), i683) | <(i683, i21)
3487_0_main_Inc(EOS(STATIC_3487(i21, i542)), i683) → 3527_0_main_JMP(EOS(STATIC_3527(i21, i542)), +(i683, 1)) | >=(i683, 0)
3527_0_main_JMP(EOS(STATIC_3527(i21, i542)), i719) → 3564_0_main_Load(EOS(STATIC_3564(i21, i542)), i719)
3564_0_main_Load(EOS(STATIC_3564(i21, i542)), i719) → 2696_0_main_Load(EOS(STATIC_2696(i21, i542)), i719)
2696_0_main_Load(EOS(STATIC_2696(i21, i445)), i446) → 2711_0_main_FieldAccess(EOS(STATIC_2711(i21, i445)), i446, i446)
2865_0_random_LT(EOS(STATIC_2865(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446, i445, i21) → 2882_0_random_ConstantStackPush(EOS(STATIC_2882(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446) | >=(i445, i21)
2882_0_random_ConstantStackPush(EOS(STATIC_2882(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446) → 2897_0_random_Return(EOS(STATIC_2897(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446)
2897_0_random_Return(EOS(STATIC_2897(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446) → 2913_0_main_ArrayAccess(EOS(STATIC_2913(i21, i445)), i446, java.lang.Object(ARRAY(i21)), i446)
2913_0_main_ArrayAccess(EOS(STATIC_2913(i21, i445)), i512, java.lang.Object(ARRAY(i21)), i512) → 2932_0_main_ArrayAccess(EOS(STATIC_2932(i21, i445)), i512, java.lang.Object(ARRAY(i21)), i512)
2932_0_main_ArrayAccess(EOS(STATIC_2932(i21, i445)), i512, java.lang.Object(ARRAY(i21)), i512) → 2956_0_main_ArrayAccess(EOS(STATIC_2956(i21, i445)), i512, java.lang.Object(ARRAY(i21)), i512)
2956_0_main_ArrayAccess(EOS(STATIC_2956(i21, i445)), i512, java.lang.Object(ARRAY(i21)), i512) → 2975_0_main_Inc(EOS(STATIC_2975(i21, i445)), i512) | <(i512, i21)
2975_0_main_Inc(EOS(STATIC_2975(i21, i445)), i512) → 3001_0_main_JMP(EOS(STATIC_3001(i21, i445)), +(i512, 1)) | >=(i512, 0)
3001_0_main_JMP(EOS(STATIC_3001(i21, i445)), i527) → 3032_0_main_Load(EOS(STATIC_3032(i21, i445)), i527)
3032_0_main_Load(EOS(STATIC_3032(i21, i445)), i527) → 2696_0_main_Load(EOS(STATIC_2696(i21, i445)), i527)
R rules:

Combined rules. Obtained 2 conditional rules for P and 0 conditional rules for R.


P rules:
2711_0_main_FieldAccess(EOS(STATIC_2711(x0, x1)), x2, x2) → 2711_0_main_FieldAccess(EOS(STATIC_2711(x0, +(x1, 1))), +(x2, 1), +(x2, 1)) | &&(&&(&&(&&(>(+(x2, 1), 0), <(x2, x0)), >(+(x1, 1), 0)), <(x1, x0)), >(+(x0, 1), 0))
2711_0_main_FieldAccess(EOS(STATIC_2711(x0, x1)), x2, x2) → 2711_0_main_FieldAccess(EOS(STATIC_2711(x0, x1)), +(x2, 1), +(x2, 1)) | &&(&&(&&(>(+(x2, 1), 0), <(x2, x0)), >=(x1, x0)), >(+(x0, 1), 0))
R rules:

Filtered duplicate args:



2711_0_main_FieldAccess(x1, x2, x3) → 2711_0_main_FieldAccess(x1, x3)
Cond_2711_0_main_FieldAccess(x1, x2, x3, x4) → Cond_2711_0_main_FieldAccess(x1, x2, x4)
Cond_2711_0_main_FieldAccess1(x1, x2, x3, x4) → Cond_2711_0_main_FieldAccess1(x1, x2, x4)

Combined rules. Obtained 2 conditional rules for P and 0 conditional rules for R.


P rules:
2711_0_main_FieldAccess(EOS(STATIC_2711(x0, x1)), x2) → 2711_0_main_FieldAccess(EOS(STATIC_2711(x0, +(x1, 1))), +(x2, 1)) | &&(&&(&&(&&(>(x2, -1), <(x2, x0)), >(x1, -1)), <(x1, x0)), >(x0, -1))
2711_0_main_FieldAccess(EOS(STATIC_2711(x0, x1)), x2) → 2711_0_main_FieldAccess(EOS(STATIC_2711(x0, x1)), +(x2, 1)) | &&(&&(&&(>(x2, -1), <(x2, x0)), >=(x1, x0)), >(x0, -1))
R rules:

Finished conversion. Obtained 4 rules for P and 0 rules for R. System has predefined symbols.


P rules:
2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0, x1)), x2) → COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2, -1), <(x2, x0)), >(x1, -1)), <(x1, x0)), >(x0, -1)), EOS(STATIC_2711(x0, x1)), x2)
COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0, x1)), x2) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0, +(x1, 1))), +(x2, 1))
2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0, x1)), x2) → COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2, -1), <(x2, x0)), >=(x1, x0)), >(x0, -1)), EOS(STATIC_2711(x0, x1)), x2)
COND_2711_0_MAIN_FIELDACCESS1(TRUE, EOS(STATIC_2711(x0, x1)), x2) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0, x1)), +(x2, 1))
R rules:

(43) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0]) → COND_2711_0_MAIN_FIELDACCESS(x2[0] > -1 && x2[0] < x0[0] && x1[0] > -1 && x1[0] < x0[0] && x0[0] > -1, EOS(STATIC_2711(x0[0], x1[0])), x2[0])
(1): COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], x1[1] + 1)), x2[1] + 1)
(2): 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[2], x1[2])), x2[2]) → COND_2711_0_MAIN_FIELDACCESS1(x2[2] > -1 && x2[2] < x0[2] && x1[2] >= x0[2] && x0[2] > -1, EOS(STATIC_2711(x0[2], x1[2])), x2[2])
(3): COND_2711_0_MAIN_FIELDACCESS1(TRUE, EOS(STATIC_2711(x0[3], x1[3])), x2[3]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[3], x1[3])), x2[3] + 1)

(0) -> (1), if (x2[0] > -1 && x2[0] < x0[0] && x1[0] > -1 && x1[0] < x0[0] && x0[0] > -1EOS(STATIC_2711(x0[0], x1[0])) →* EOS(STATIC_2711(x0[1], x1[1]))∧x2[0]* x2[1])


(1) -> (0), if (EOS(STATIC_2711(x0[1], x1[1] + 1)) →* EOS(STATIC_2711(x0[0], x1[0]))∧x2[1] + 1* x2[0])


(1) -> (2), if (EOS(STATIC_2711(x0[1], x1[1] + 1)) →* EOS(STATIC_2711(x0[2], x1[2]))∧x2[1] + 1* x2[2])


(2) -> (3), if (x2[2] > -1 && x2[2] < x0[2] && x1[2] >= x0[2] && x0[2] > -1EOS(STATIC_2711(x0[2], x1[2])) →* EOS(STATIC_2711(x0[3], x1[3]))∧x2[2]* x2[3])


(3) -> (0), if (EOS(STATIC_2711(x0[3], x1[3])) →* EOS(STATIC_2711(x0[0], x1[0]))∧x2[3] + 1* x2[0])


(3) -> (2), if (EOS(STATIC_2711(x0[3], x1[3])) →* EOS(STATIC_2711(x0[2], x1[2]))∧x2[3] + 1* x2[2])



The set Q is empty.

(44) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: false Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpCand1ShapeHeuristic@941593f Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 0 Max Right Steps: 0

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0, x1)), x2) → COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2, -1), <(x2, x0)), >(x1, -1)), <(x1, x0)), >(x0, -1)), EOS(STATIC_2711(x0, x1)), x2) the following chains were created:
  • We consider the chain 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0]) → COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0]), COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1)) which results in the following constraint:

    (1)    (&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1))=TRUEEOS(STATIC_2711(x0[0], x1[0]))=EOS(STATIC_2711(x0[1], x1[1]))∧x2[0]=x2[1]2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0])≥NonInfC∧2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0])≥COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])∧(UIncreasing(COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])), ≥))



    We simplified constraint (1) using rules (I), (II), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (2)    (>(x0[0], -1)=TRUE<(x1[0], x0[0])=TRUE>(x1[0], -1)=TRUE>(x2[0], -1)=TRUE<(x2[0], x0[0])=TRUE2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0])≥NonInfC∧2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0])≥COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])∧(UIncreasing(COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (x0[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] ≥ 0∧x2[0] ≥ 0∧x0[0] + [-1] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])), ≥)∧[(-1)Bound*bni_15] + [(-1)bni_15]x2[0] + [bni_15]x1[0] + [bni_15]x0[0] ≥ 0∧[(-1)bso_16] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (x0[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] ≥ 0∧x2[0] ≥ 0∧x0[0] + [-1] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])), ≥)∧[(-1)Bound*bni_15] + [(-1)bni_15]x2[0] + [bni_15]x1[0] + [bni_15]x0[0] ≥ 0∧[(-1)bso_16] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (x0[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] ≥ 0∧x2[0] ≥ 0∧x0[0] + [-1] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])), ≥)∧[(-1)Bound*bni_15] + [(-1)bni_15]x2[0] + [bni_15]x1[0] + [bni_15]x0[0] ≥ 0∧[(-1)bso_16] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    ([1] + x1[0] + x0[0] ≥ 0∧x0[0] ≥ 0∧x1[0] ≥ 0∧x2[0] ≥ 0∧x1[0] + x0[0] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])), ≥)∧[(-1)Bound*bni_15 + bni_15] + [(-1)bni_15]x2[0] + [(2)bni_15]x1[0] + [bni_15]x0[0] ≥ 0∧[(-1)bso_16] ≥ 0)







For Pair COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0, x1)), x2) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0, +(x1, 1))), +(x2, 1)) the following chains were created:
  • We consider the chain COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1)) which results in the following constraint:

    (7)    (COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1])≥NonInfC∧COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1])≥2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))∧(UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    ((UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))), ≥)∧[bni_17] = 0∧[(-1)bso_18] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    ((UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))), ≥)∧[bni_17] = 0∧[(-1)bso_18] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    ((UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))), ≥)∧[bni_17] = 0∧[(-1)bso_18] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    ((UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))), ≥)∧[bni_17] = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_18] ≥ 0)







For Pair 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0, x1)), x2) → COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2, -1), <(x2, x0)), >=(x1, x0)), >(x0, -1)), EOS(STATIC_2711(x0, x1)), x2) the following chains were created:
  • We consider the chain 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[2], x1[2])), x2[2]) → COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2[2], -1), <(x2[2], x0[2])), >=(x1[2], x0[2])), >(x0[2], -1)), EOS(STATIC_2711(x0[2], x1[2])), x2[2]), COND_2711_0_MAIN_FIELDACCESS1(TRUE, EOS(STATIC_2711(x0[3], x1[3])), x2[3]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[3], x1[3])), +(x2[3], 1)) which results in the following constraint:

    (12)    (&&(&&(&&(>(x2[2], -1), <(x2[2], x0[2])), >=(x1[2], x0[2])), >(x0[2], -1))=TRUEEOS(STATIC_2711(x0[2], x1[2]))=EOS(STATIC_2711(x0[3], x1[3]))∧x2[2]=x2[3]2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[2], x1[2])), x2[2])≥NonInfC∧2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[2], x1[2])), x2[2])≥COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2[2], -1), <(x2[2], x0[2])), >=(x1[2], x0[2])), >(x0[2], -1)), EOS(STATIC_2711(x0[2], x1[2])), x2[2])∧(UIncreasing(COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2[2], -1), <(x2[2], x0[2])), >=(x1[2], x0[2])), >(x0[2], -1)), EOS(STATIC_2711(x0[2], x1[2])), x2[2])), ≥))



    We simplified constraint (12) using rules (I), (II), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (13)    (>(x0[2], -1)=TRUE>=(x1[2], x0[2])=TRUE>(x2[2], -1)=TRUE<(x2[2], x0[2])=TRUE2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[2], x1[2])), x2[2])≥NonInfC∧2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[2], x1[2])), x2[2])≥COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2[2], -1), <(x2[2], x0[2])), >=(x1[2], x0[2])), >(x0[2], -1)), EOS(STATIC_2711(x0[2], x1[2])), x2[2])∧(UIncreasing(COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2[2], -1), <(x2[2], x0[2])), >=(x1[2], x0[2])), >(x0[2], -1)), EOS(STATIC_2711(x0[2], x1[2])), x2[2])), ≥))



    We simplified constraint (13) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (14)    (x0[2] ≥ 0∧x1[2] + [-1]x0[2] ≥ 0∧x2[2] ≥ 0∧x0[2] + [-1] + [-1]x2[2] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2[2], -1), <(x2[2], x0[2])), >=(x1[2], x0[2])), >(x0[2], -1)), EOS(STATIC_2711(x0[2], x1[2])), x2[2])), ≥)∧[(-1)Bound*bni_19] + [(-1)bni_19]x2[2] + [bni_19]x1[2] + [bni_19]x0[2] ≥ 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (14) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (15)    (x0[2] ≥ 0∧x1[2] + [-1]x0[2] ≥ 0∧x2[2] ≥ 0∧x0[2] + [-1] + [-1]x2[2] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2[2], -1), <(x2[2], x0[2])), >=(x1[2], x0[2])), >(x0[2], -1)), EOS(STATIC_2711(x0[2], x1[2])), x2[2])), ≥)∧[(-1)Bound*bni_19] + [(-1)bni_19]x2[2] + [bni_19]x1[2] + [bni_19]x0[2] ≥ 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (15) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (16)    (x0[2] ≥ 0∧x1[2] + [-1]x0[2] ≥ 0∧x2[2] ≥ 0∧x0[2] + [-1] + [-1]x2[2] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2[2], -1), <(x2[2], x0[2])), >=(x1[2], x0[2])), >(x0[2], -1)), EOS(STATIC_2711(x0[2], x1[2])), x2[2])), ≥)∧[(-1)Bound*bni_19] + [(-1)bni_19]x2[2] + [bni_19]x1[2] + [bni_19]x0[2] ≥ 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (16) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (17)    ([1] + x2[2] + x0[2] ≥ 0∧x1[2] + [-1] + [-1]x2[2] + [-1]x0[2] ≥ 0∧x2[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2[2], -1), <(x2[2], x0[2])), >=(x1[2], x0[2])), >(x0[2], -1)), EOS(STATIC_2711(x0[2], x1[2])), x2[2])), ≥)∧[(-1)Bound*bni_19 + bni_19] + [bni_19]x1[2] + [bni_19]x0[2] ≥ 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (17) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (18)    ([1] + x2[2] + x0[2] ≥ 0∧x1[2] ≥ 0∧x2[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2[2], -1), <(x2[2], x0[2])), >=(x1[2], x0[2])), >(x0[2], -1)), EOS(STATIC_2711(x0[2], x1[2])), x2[2])), ≥)∧[(-1)Bound*bni_19 + (2)bni_19] + [bni_19]x2[2] + [(2)bni_19]x0[2] + [bni_19]x1[2] ≥ 0∧[(-1)bso_20] ≥ 0)







For Pair COND_2711_0_MAIN_FIELDACCESS1(TRUE, EOS(STATIC_2711(x0, x1)), x2) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0, x1)), +(x2, 1)) the following chains were created:
  • We consider the chain COND_2711_0_MAIN_FIELDACCESS1(TRUE, EOS(STATIC_2711(x0[3], x1[3])), x2[3]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[3], x1[3])), +(x2[3], 1)) which results in the following constraint:

    (19)    (COND_2711_0_MAIN_FIELDACCESS1(TRUE, EOS(STATIC_2711(x0[3], x1[3])), x2[3])≥NonInfC∧COND_2711_0_MAIN_FIELDACCESS1(TRUE, EOS(STATIC_2711(x0[3], x1[3])), x2[3])≥2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[3], x1[3])), +(x2[3], 1))∧(UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[3], x1[3])), +(x2[3], 1))), ≥))



    We simplified constraint (19) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (20)    ((UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[3], x1[3])), +(x2[3], 1))), ≥)∧[bni_21] = 0∧[1 + (-1)bso_22] ≥ 0)



    We simplified constraint (20) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (21)    ((UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[3], x1[3])), +(x2[3], 1))), ≥)∧[bni_21] = 0∧[1 + (-1)bso_22] ≥ 0)



    We simplified constraint (21) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (22)    ((UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[3], x1[3])), +(x2[3], 1))), ≥)∧[bni_21] = 0∧[1 + (-1)bso_22] ≥ 0)



    We simplified constraint (22) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (23)    ((UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[3], x1[3])), +(x2[3], 1))), ≥)∧[bni_21] = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_22] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0, x1)), x2) → COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2, -1), <(x2, x0)), >(x1, -1)), <(x1, x0)), >(x0, -1)), EOS(STATIC_2711(x0, x1)), x2)
    • ([1] + x1[0] + x0[0] ≥ 0∧x0[0] ≥ 0∧x1[0] ≥ 0∧x2[0] ≥ 0∧x1[0] + x0[0] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])), ≥)∧[(-1)Bound*bni_15 + bni_15] + [(-1)bni_15]x2[0] + [(2)bni_15]x1[0] + [bni_15]x0[0] ≥ 0∧[(-1)bso_16] ≥ 0)

  • COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0, x1)), x2) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0, +(x1, 1))), +(x2, 1))
    • ((UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))), ≥)∧[bni_17] = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_18] ≥ 0)

  • 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0, x1)), x2) → COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2, -1), <(x2, x0)), >=(x1, x0)), >(x0, -1)), EOS(STATIC_2711(x0, x1)), x2)
    • ([1] + x2[2] + x0[2] ≥ 0∧x1[2] ≥ 0∧x2[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2[2], -1), <(x2[2], x0[2])), >=(x1[2], x0[2])), >(x0[2], -1)), EOS(STATIC_2711(x0[2], x1[2])), x2[2])), ≥)∧[(-1)Bound*bni_19 + (2)bni_19] + [bni_19]x2[2] + [(2)bni_19]x0[2] + [bni_19]x1[2] ≥ 0∧[(-1)bso_20] ≥ 0)

  • COND_2711_0_MAIN_FIELDACCESS1(TRUE, EOS(STATIC_2711(x0, x1)), x2) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0, x1)), +(x2, 1))
    • ((UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[3], x1[3])), +(x2[3], 1))), ≥)∧[bni_21] = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_22] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(2711_0_MAIN_FIELDACCESS(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(EOS(x1)) = x1   
POL(STATIC_2711(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(COND_2711_0_MAIN_FIELDACCESS(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(COND_2711_0_MAIN_FIELDACCESS1(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(>=(x1, x2)) = [-1]   

The following pairs are in P>:

COND_2711_0_MAIN_FIELDACCESS1(TRUE, EOS(STATIC_2711(x0[3], x1[3])), x2[3]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[3], x1[3])), +(x2[3], 1))

The following pairs are in Pbound:

2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0]) → COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])
2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[2], x1[2])), x2[2]) → COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2[2], -1), <(x2[2], x0[2])), >=(x1[2], x0[2])), >(x0[2], -1)), EOS(STATIC_2711(x0[2], x1[2])), x2[2])

The following pairs are in P:

2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0]) → COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])
COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))
2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[2], x1[2])), x2[2]) → COND_2711_0_MAIN_FIELDACCESS1(&&(&&(&&(>(x2[2], -1), <(x2[2], x0[2])), >=(x1[2], x0[2])), >(x0[2], -1)), EOS(STATIC_2711(x0[2], x1[2])), x2[2])

There are no usable rules.

(45) Complex Obligation (AND)

(46) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0]) → COND_2711_0_MAIN_FIELDACCESS(x2[0] > -1 && x2[0] < x0[0] && x1[0] > -1 && x1[0] < x0[0] && x0[0] > -1, EOS(STATIC_2711(x0[0], x1[0])), x2[0])
(1): COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], x1[1] + 1)), x2[1] + 1)
(2): 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[2], x1[2])), x2[2]) → COND_2711_0_MAIN_FIELDACCESS1(x2[2] > -1 && x2[2] < x0[2] && x1[2] >= x0[2] && x0[2] > -1, EOS(STATIC_2711(x0[2], x1[2])), x2[2])

(1) -> (0), if (EOS(STATIC_2711(x0[1], x1[1] + 1)) →* EOS(STATIC_2711(x0[0], x1[0]))∧x2[1] + 1* x2[0])


(0) -> (1), if (x2[0] > -1 && x2[0] < x0[0] && x1[0] > -1 && x1[0] < x0[0] && x0[0] > -1EOS(STATIC_2711(x0[0], x1[0])) →* EOS(STATIC_2711(x0[1], x1[1]))∧x2[0]* x2[1])


(1) -> (2), if (EOS(STATIC_2711(x0[1], x1[1] + 1)) →* EOS(STATIC_2711(x0[2], x1[2]))∧x2[1] + 1* x2[2])



The set Q is empty.

(47) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

(48) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], x1[1] + 1)), x2[1] + 1)
(0): 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0]) → COND_2711_0_MAIN_FIELDACCESS(x2[0] > -1 && x2[0] < x0[0] && x1[0] > -1 && x1[0] < x0[0] && x0[0] > -1, EOS(STATIC_2711(x0[0], x1[0])), x2[0])

(1) -> (0), if (EOS(STATIC_2711(x0[1], x1[1] + 1)) →* EOS(STATIC_2711(x0[0], x1[0]))∧x2[1] + 1* x2[0])


(0) -> (1), if (x2[0] > -1 && x2[0] < x0[0] && x1[0] > -1 && x1[0] < x0[0] && x0[0] > -1EOS(STATIC_2711(x0[0], x1[0])) →* EOS(STATIC_2711(x0[1], x1[1]))∧x2[0]* x2[1])



The set Q is empty.

(49) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: false Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpCand1ShapeHeuristic@941593f Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 0 Max Right Steps: 0

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1)) the following chains were created:
  • We consider the chain COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1)) which results in the following constraint:

    (1)    (COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1])≥NonInfC∧COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1])≥2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))∧(UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))), ≥))



    We simplified constraint (1) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (2)    ((UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))), ≥)∧[bni_9] = 0∧[1 + (-1)bso_10] ≥ 0)



    We simplified constraint (2) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (3)    ((UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))), ≥)∧[bni_9] = 0∧[1 + (-1)bso_10] ≥ 0)



    We simplified constraint (3) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (4)    ((UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))), ≥)∧[bni_9] = 0∧[1 + (-1)bso_10] ≥ 0)



    We simplified constraint (4) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (5)    ((UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))), ≥)∧[bni_9] = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_10] ≥ 0)







For Pair 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0]) → COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0]) the following chains were created:
  • We consider the chain 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0]) → COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0]), COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1)) which results in the following constraint:

    (6)    (&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1))=TRUEEOS(STATIC_2711(x0[0], x1[0]))=EOS(STATIC_2711(x0[1], x1[1]))∧x2[0]=x2[1]2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0])≥NonInfC∧2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0])≥COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])∧(UIncreasing(COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])), ≥))



    We simplified constraint (6) using rules (I), (II), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (7)    (>(x0[0], -1)=TRUE<(x1[0], x0[0])=TRUE>(x1[0], -1)=TRUE>(x2[0], -1)=TRUE<(x2[0], x0[0])=TRUE2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0])≥NonInfC∧2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0])≥COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])∧(UIncreasing(COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    (x0[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] ≥ 0∧x2[0] ≥ 0∧x0[0] + [-1] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])), ≥)∧[(2)bni_11 + (-1)Bound*bni_11] + [(-2)bni_11]x1[0] + [(2)bni_11]x0[0] ≥ 0∧[1 + (-1)bso_12] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    (x0[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] ≥ 0∧x2[0] ≥ 0∧x0[0] + [-1] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])), ≥)∧[(2)bni_11 + (-1)Bound*bni_11] + [(-2)bni_11]x1[0] + [(2)bni_11]x0[0] ≥ 0∧[1 + (-1)bso_12] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    (x0[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] ≥ 0∧x2[0] ≥ 0∧x0[0] + [-1] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])), ≥)∧[(2)bni_11 + (-1)Bound*bni_11] + [(-2)bni_11]x1[0] + [(2)bni_11]x0[0] ≥ 0∧[1 + (-1)bso_12] ≥ 0)



    We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (11)    ([1] + x1[0] + x0[0] ≥ 0∧x0[0] ≥ 0∧x1[0] ≥ 0∧x2[0] ≥ 0∧x1[0] + x0[0] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])), ≥)∧[(4)bni_11 + (-1)Bound*bni_11] + [(2)bni_11]x0[0] ≥ 0∧[1 + (-1)bso_12] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))
    • ((UIncreasing(2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))), ≥)∧[bni_9] = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_10] ≥ 0)

  • 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0]) → COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])
    • ([1] + x1[0] + x0[0] ≥ 0∧x0[0] ≥ 0∧x1[0] ≥ 0∧x2[0] ≥ 0∧x1[0] + x0[0] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])), ≥)∧[(4)bni_11 + (-1)Bound*bni_11] + [(2)bni_11]x0[0] ≥ 0∧[1 + (-1)bso_12] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(COND_2711_0_MAIN_FIELDACCESS(x1, x2, x3)) = [1] + [2]x2   
POL(EOS(x1)) = x1   
POL(STATIC_2711(x1, x2)) = [-1]x2 + x1   
POL(2711_0_MAIN_FIELDACCESS(x1, x2)) = [2] + [2]x1   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [1]   

The following pairs are in P>:

COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], +(x1[1], 1))), +(x2[1], 1))
2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0]) → COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])

The following pairs are in Pbound:

2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[0], x1[0])), x2[0]) → COND_2711_0_MAIN_FIELDACCESS(&&(&&(&&(&&(>(x2[0], -1), <(x2[0], x0[0])), >(x1[0], -1)), <(x1[0], x0[0])), >(x0[0], -1)), EOS(STATIC_2711(x0[0], x1[0])), x2[0])

The following pairs are in P:
none

There are no usable rules.

(50) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], x1[1] + 1)), x2[1] + 1)


The set Q is empty.

(51) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(52) TRUE

(53) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_2711_0_MAIN_FIELDACCESS(TRUE, EOS(STATIC_2711(x0[1], x1[1])), x2[1]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[1], x1[1] + 1)), x2[1] + 1)
(3): COND_2711_0_MAIN_FIELDACCESS1(TRUE, EOS(STATIC_2711(x0[3], x1[3])), x2[3]) → 2711_0_MAIN_FIELDACCESS(EOS(STATIC_2711(x0[3], x1[3])), x2[3] + 1)


The set Q is empty.

(54) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(55) TRUE