(0) Obligation:

JBC Problem based on JBC Program:
class Queen
{
static int n;
static int [] queen; // position (i,queen[i])
static int nbsol;

static void displayChessboard()
{
int i,j;

//System.out.println("");

for(i=0;i<n;i++) {
for(j=0;j<n;j++) {
if (queen[i]!=j) {} //System.out.print("0");
else {} //System.out.print("1");
}
//System.out.println("");
}
}

static boolean wrongPos(int i1, int j1, int i2, int j2) {
return (i1==i2 || j1==j2 || i1-i2 == j1-j2 || i1-i2 == j2-j1);
}

// Place safely queen i at column j?
static boolean safeMove(int i, int j) {
boolean result=true;

for(int k=0;k<i;k++)
result=result&&!wrongPos(i,j,k,queen[k]);

return result;
}

static boolean search(int row)
{
boolean result=false;

if (row>=n) {
displayChessboard();
nbsol++;
}
else {
int j=0;
while(!result && j<n) {
if (safeMove(row,j)) {
queen[row]=j;
result=search(row+1);
}
// Backtracking here
j++; // explore all columns
}
}

return result;
}

public static void main(String [] args)
{
n = args.length;
queen = new int[n];
nbsol=0;
search(0);
//System.out.println("Total number of solutions:"+nbsol);
}
}


(1) JBCToGraph (SOUND transformation)

Constructed TerminationGraph.

(2) Obligation:

Termination Graph based on JBC Program:
Queen.main([Ljava/lang/String;)V: Graph of 61 nodes with 0 SCCs.

Queen.search(I)Z: Graph of 131 nodes with 1 SCC.

Queen.displayChessboard()V: Graph of 63 nodes with 1 SCC.

Queen.safeMove(II)Z: Graph of 75 nodes with 1 SCC.

Queen.wrongPos(IIII)Z: Graph of 41 nodes with 0 SCCs.


(3) TerminationGraphToSCCProof (SOUND transformation)

Splitted TerminationGraph to 3 SCCss.

(4) Complex Obligation (AND)

(5) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Queen.safeMove(II)Z
SCC calls the following helper methods: Queen.wrongPos(IIII)Z
Performed SCC analyses:
  • Used field analysis yielded the following read fields:
  • Marker field analysis yielded the following relations that could be markers:

(6) SCCToIntTRSProof (SOUND transformation)

Transformed FIGraph SCCs to intTRSs. Log:

Generated rules. Obtained 44 IRules

P rules:
f5060_0_safeMove_Load(EOS, i1208, i1209, i1208, i1209, i1365, i1366, i1366) → f5065_0_safeMove_GE(EOS, i1208, i1209, i1208, i1209, i1365, i1366, i1366, i1208)
f5065_0_safeMove_GE(EOS, i1208, i1209, i1208, i1209, i1365, i1366, i1366, i1208) → f5077_0_safeMove_GE(EOS, i1208, i1209, i1208, i1209, i1365, i1366, i1366, i1208)
f5077_0_safeMove_GE(EOS, i1208, i1209, i1208, i1209, i1365, i1366, i1366, i1208) → f5088_0_safeMove_Load(EOS, i1208, i1209, i1208, i1209, i1365, i1366) | <(i1366, i1208)
f5088_0_safeMove_Load(EOS, i1208, i1209, i1208, i1209, i1365, i1366) → f5099_0_safeMove_EQ(EOS, i1208, i1209, i1208, i1209, i1366, i1365)
f5099_0_safeMove_EQ(EOS, i1208, i1209, i1208, i1209, i1366, i1384) → f5123_0_safeMove_EQ(EOS, i1208, i1209, i1208, i1209, i1366, i1384)
f5099_0_safeMove_EQ(EOS, i1208, i1209, i1208, i1209, i1366, matching1) → f5124_0_safeMove_EQ(EOS, i1208, i1209, i1208, i1209, i1366, 0) | =(matching1, 0)
f5123_0_safeMove_EQ(EOS, i1208, i1209, i1208, i1209, i1366, i1384) → f5144_0_safeMove_Load(EOS, i1208, i1209, i1208, i1209, i1366) | >(i1384, 0)
f5144_0_safeMove_Load(EOS, i1208, i1209, i1208, i1209, i1366) → f5158_0_safeMove_Load(EOS, i1208, i1209, i1208, i1209, i1366, i1208)
f5158_0_safeMove_Load(EOS, i1208, i1209, i1208, i1209, i1366, i1208) → f5179_0_safeMove_Load(EOS, i1208, i1209, i1208, i1209, i1366, i1208, i1209)
f5179_0_safeMove_Load(EOS, i1208, i1209, i1208, i1209, i1366, i1208, i1209) → f5191_0_safeMove_FieldAccess(EOS, i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366)
f5191_0_safeMove_FieldAccess(EOS, i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366) → f5207_0_safeMove_Load(EOS, i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)))
f5207_0_safeMove_Load(EOS, i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206))) → f5223_0_safeMove_ArrayAccess(EOS, i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5223_0_safeMove_ArrayAccess(EOS, i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5229_0_safeMove_ArrayAccess(EOS, i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5229_0_safeMove_ArrayAccess(EOS, i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5236_0_safeMove_InvokeMethod(EOS, i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, i1415) | <(i1366, i1206)
f5236_0_safeMove_InvokeMethod(EOS, i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, i1415) → f5254_0_wrongPos_Load(EOS, i1208, i1209, i1366, i1415, i1208, i1209, i1366, i1415)
f5236_0_safeMove_InvokeMethod(EOS, i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, i1415) → f5254_1_wrongPos_Load(EOS, i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, i1415, i1208, i1209, i1366, i1415)
f5254_0_wrongPos_Load(EOS, i1208, i1209, i1366, i1415, i1208, i1209, i1366, i1415) → f5269_0_wrongPos_Load(EOS, i1208, i1209, i1366, i1415, i1208, i1209, i1366, i1415)
f5555_0_wrongPos_Return(EOS, i1543, i1546, i1543, i1546, i1548, i1543, i1546, i1548, i1546, matching1) → f5556_0_wrongPos_Return(EOS, i1543, i1546, i1543, i1546, i1548, i1543, i1546, i1548, i1546, 1) | =(matching1, 1)
f5556_0_wrongPos_Return(EOS, i1555, i1556, i1555, i1556, i1557, i1555, i1556, i1557, i1558, matching1) → f5852_0_wrongPos_Return(EOS, i1555, i1556, i1555, i1556, i1557, i1555, i1556, i1557, i1558, 1) | =(matching1, 1)
f5852_0_wrongPos_Return(EOS, i1734, i1735, i1734, i1735, i1736, i1734, i1735, i1736, i1737, i1733) → f5882_0_safeMove_NE(EOS, i1734, i1735, i1734, i1735, i1736, i1733)
f5882_0_safeMove_NE(EOS, i1734, i1735, i1734, i1735, i1736, matching1) → f5901_0_safeMove_NE(EOS, i1734, i1735, i1734, i1735, i1736, 1) | =(matching1, 1)
f5882_0_safeMove_NE(EOS, i1734, i1735, i1734, i1735, i1736, matching1) → f5902_0_safeMove_NE(EOS, i1734, i1735, i1734, i1735, i1736, 0) | =(matching1, 0)
f5901_0_safeMove_NE(EOS, i1734, i1735, i1734, i1735, i1736, matching1) → f5916_0_safeMove_ConstantStackPush(EOS, i1734, i1735, i1734, i1735, i1736) | &&(>(1, 0), =(matching1, 1))
f5916_0_safeMove_ConstantStackPush(EOS, i1734, i1735, i1734, i1735, i1736) → f5957_0_safeMove_Store(EOS, i1734, i1735, i1734, i1735, i1736, 0)
f5957_0_safeMove_Store(EOS, i1734, i1735, i1734, i1735, i1736, matching1) → f5992_0_safeMove_Inc(EOS, i1734, i1735, i1734, i1735, 0, i1736) | =(matching1, 0)
f5992_0_safeMove_Inc(EOS, i1734, i1735, i1734, i1735, matching1, i1736) → f6003_0_safeMove_JMP(EOS, i1734, i1735, i1734, i1735, 0, +(i1736, 1)) | &&(>=(i1736, 0), =(matching1, 0))
f6003_0_safeMove_JMP(EOS, i1734, i1735, i1734, i1735, matching1, i1823) → f6022_0_safeMove_Load(EOS, i1734, i1735, i1734, i1735, 0, i1823) | =(matching1, 0)
f6022_0_safeMove_Load(EOS, i1734, i1735, i1734, i1735, matching1, i1823) → f5049_0_safeMove_Load(EOS, i1734, i1735, i1734, i1735, 0, i1823) | =(matching1, 0)
f5049_0_safeMove_Load(EOS, i1208, i1209, i1208, i1209, i1365, i1366) → f5060_0_safeMove_Load(EOS, i1208, i1209, i1208, i1209, i1365, i1366, i1366)
f5902_0_safeMove_NE(EOS, i1734, i1735, i1734, i1735, i1736, matching1) → f5938_0_safeMove_ConstantStackPush(EOS, i1734, i1735, i1734, i1735, i1736) | =(matching1, 0)
f5938_0_safeMove_ConstantStackPush(EOS, i1734, i1735, i1734, i1735, i1736) → f5982_0_safeMove_JMP(EOS, i1734, i1735, i1734, i1735, i1736, 1)
f5982_0_safeMove_JMP(EOS, i1734, i1735, i1734, i1735, i1736, matching1) → f5996_0_safeMove_Store(EOS, i1734, i1735, i1734, i1735, i1736, 1) | =(matching1, 1)
f5996_0_safeMove_Store(EOS, i1734, i1735, i1734, i1735, i1736, matching1) → f6014_0_safeMove_Inc(EOS, i1734, i1735, i1734, i1735, 1, i1736) | =(matching1, 1)
f6014_0_safeMove_Inc(EOS, i1734, i1735, i1734, i1735, matching1, i1736) → f6031_0_safeMove_JMP(EOS, i1734, i1735, i1734, i1735, 1, +(i1736, 1)) | &&(>=(i1736, 0), =(matching1, 1))
f6031_0_safeMove_JMP(EOS, i1734, i1735, i1734, i1735, matching1, i1831) → f6045_0_safeMove_Load(EOS, i1734, i1735, i1734, i1735, 1, i1831) | =(matching1, 1)
f6045_0_safeMove_Load(EOS, i1734, i1735, i1734, i1735, matching1, i1831) → f5049_0_safeMove_Load(EOS, i1734, i1735, i1734, i1735, 1, i1831) | =(matching1, 1)
f5851_0_wrongPos_Return(EOS, i1721, i1723, i1721, i1723, i1725, i1721, i1723, i1725, i1727, matching1) → f5852_0_wrongPos_Return(EOS, i1721, i1723, i1721, i1723, i1725, i1721, i1723, i1725, i1727, 0) | =(matching1, 0)
f5891_0_wrongPos_Return(EOS, i1777, i1779, i1777, i1779, i1781, i1777, i1779, i1781, i1783, matching1) → f5852_0_wrongPos_Return(EOS, i1777, i1779, i1777, i1779, i1781, i1777, i1779, i1781, i1783, 1) | =(matching1, 1)
f5124_0_safeMove_EQ(EOS, i1208, i1209, i1208, i1209, i1366, matching1) → f5151_0_safeMove_ConstantStackPush(EOS, i1208, i1209, i1208, i1209, i1366) | =(matching1, 0)
f5151_0_safeMove_ConstantStackPush(EOS, i1208, i1209, i1208, i1209, i1366) → f5635_0_safeMove_ConstantStackPush(EOS, i1208, i1209, i1208, i1209, i1366)
f5635_0_safeMove_ConstantStackPush(EOS, i1555, i1556, i1555, i1556, i1557) → f5916_0_safeMove_ConstantStackPush(EOS, i1555, i1556, i1555, i1556, i1557)
f5254_1_wrongPos_Load(EOS, i1543, i1546, i1543, i1546, i1548, i1543, i1546, i1548, i1546, i1543, i1546, i1548, i1546) → f5555_0_wrongPos_Return(EOS, i1543, i1546, i1543, i1546, i1548, i1543, i1546, i1548, i1546, 1)
f5254_1_wrongPos_Load(EOS, i1721, i1723, i1721, i1723, i1725, i1721, i1723, i1725, i1727, i1721, i1723, i1725, i1727) → f5851_0_wrongPos_Return(EOS, i1721, i1723, i1721, i1723, i1725, i1721, i1723, i1725, i1727, 0)
f5254_1_wrongPos_Load(EOS, i1777, i1779, i1777, i1779, i1781, i1777, i1779, i1781, i1783, i1777, i1779, i1781, i1783) → f5891_0_wrongPos_Return(EOS, i1777, i1779, i1777, i1779, i1781, i1777, i1779, i1781, i1783, 1)

Combined rules. Obtained 6 IRules

P rules:
f5060_0_safeMove_Load(EOS, x0, x1, x0, x1, x2, x3, x3) → f5269_0_wrongPos_Load(EOS, x0, x1, x3, x4, x0, x1, x3, x4) | &&(>(x2, 0), <(x3, x0))
f5882_0_safeMove_NE(EOS, x0, x1, x0, x1, x2, 1) → f5060_0_safeMove_Load(EOS, x0, x1, x0, x1, 0, +(x2, 1), +(x2, 1)) | >(+(x2, 1), 0)
f5882_0_safeMove_NE(EOS, x0, x1, x0, x1, x2, 0) → f5060_0_safeMove_Load(EOS, x0, x1, x0, x1, 1, +(x2, 1), +(x2, 1)) | >(+(x2, 1), 0)
f5060_0_safeMove_Load(EOS, x0, x1, x0, x1, 0, x3, x3) → f5060_0_safeMove_Load(EOS, x0, x1, x0, x1, 0, +(x3, 1), +(x3, 1)) | &&(<(x3, x0), >(+(x3, 1), 0))
f5060_0_safeMove_Load(EOS, x0, x1, x0, x1, x2, x3, x3) → f5882_0_safeMove_NE(EOS, x0, x1, x0, x1, x3, 1) | &&(>(x2, 0), <(x3, x0))
f5060_0_safeMove_Load(EOS, x0, x1, x0, x1, x2, x3, x3) → f5882_0_safeMove_NE(EOS, x0, x1, x0, x1, x3, 0) | &&(>(x2, 0), <(x3, x0))

Filtered ground terms:


f5060_0_safeMove_Load(x1, x2, x3, x4, x5, x6, x7, x8) → f5060_0_safeMove_Load(x2, x3, x4, x5, x6, x7, x8)
Cond_f5060_0_safeMove_Load(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → Cond_f5060_0_safeMove_Load(x1, x3, x4, x5, x6, x7, x8, x9, x10)
f5269_0_wrongPos_Load(x1, x2, x3, x4, x5, x6, x7, x8, x9) → f5269_0_wrongPos_Load(x2, x3, x4, x5, x6, x7, x8, x9)
f5882_0_safeMove_NE(x1, x2, x3, x4, x5, x6, x7) → f5882_0_safeMove_NE(x2, x3, x4, x5, x6, x7)
Cond_f5882_0_safeMove_NE(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f5882_0_safeMove_NE(x1, x3, x4, x5, x6, x7)
Cond_f5882_0_safeMove_NE1(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f5882_0_safeMove_NE1(x1, x3, x4, x5, x6, x7)
Cond_f5060_0_safeMove_Load1(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_f5060_0_safeMove_Load1(x1, x3, x4, x5, x6, x8, x9)
Cond_f5060_0_safeMove_Load2(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_f5060_0_safeMove_Load2(x1, x3, x4, x5, x6, x7, x8, x9)
Cond_f5060_0_safeMove_Load3(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_f5060_0_safeMove_Load3(x1, x3, x4, x5, x6, x7, x8, x9)

Filtered duplicate terms:


f5060_0_safeMove_Load(x1, x2, x3, x4, x5, x6, x7) → f5060_0_safeMove_Load(x3, x4, x5, x7)
Cond_f5060_0_safeMove_Load(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_f5060_0_safeMove_Load(x1, x4, x5, x6, x8, x9)
f5269_0_wrongPos_Load(x1, x2, x3, x4, x5, x6, x7, x8) → f5269_0_wrongPos_Load(x5, x6, x7, x8)
f5882_0_safeMove_NE(x1, x2, x3, x4, x5, x6) → f5882_0_safeMove_NE(x3, x4, x5, x6)
Cond_f5882_0_safeMove_NE(x1, x2, x3, x4, x5, x6) → Cond_f5882_0_safeMove_NE(x1, x4, x5, x6)
Cond_f5882_0_safeMove_NE1(x1, x2, x3, x4, x5, x6) → Cond_f5882_0_safeMove_NE1(x1, x4, x5, x6)
Cond_f5060_0_safeMove_Load1(x1, x2, x3, x4, x5, x6, x7) → Cond_f5060_0_safeMove_Load1(x1, x4, x5, x7)
Cond_f5060_0_safeMove_Load2(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f5060_0_safeMove_Load2(x1, x4, x5, x6, x8)
Cond_f5060_0_safeMove_Load3(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f5060_0_safeMove_Load3(x1, x4, x5, x6, x8)

Filtered unneeded terms:


Cond_f5060_0_safeMove_Load(x1, x2, x3, x4, x5, x6) → Cond_f5060_0_safeMove_Load(x1)
f5882_0_safeMove_NE(x1, x2, x3, x4) → f5882_0_safeMove_NE(x1, x3, x4)
Cond_f5882_0_safeMove_NE(x1, x2, x3, x4) → Cond_f5882_0_safeMove_NE(x1, x2, x4)
Cond_f5882_0_safeMove_NE1(x1, x2, x3, x4) → Cond_f5882_0_safeMove_NE1(x1, x2, x4)
f5060_0_safeMove_Load(x1, x2, x3, x4) → f5060_0_safeMove_Load(x1, x3, x4)
Cond_f5060_0_safeMove_Load1(x1, x2, x3, x4) → Cond_f5060_0_safeMove_Load1(x1, x2, x4)
Cond_f5060_0_safeMove_Load2(x1, x2, x3, x4, x5) → Cond_f5060_0_safeMove_Load2(x1, x2, x5)
Cond_f5060_0_safeMove_Load3(x1, x2, x3, x4, x5) → Cond_f5060_0_safeMove_Load3(x1, x2, x5)

Prepared 6 rules for path length conversion:

P rules:
f5060_0_safeMove_Load(x0, x2, x3) → f5269_0_wrongPos_Load(x0, x1, x3, x4) | &&(>(x2, 0), <(x3, x0))
f5882_0_safeMove_NE(x0, x2, 1) → f5060_0_safeMove_Load(x0, 0, +(x2, 1)) | >(+(x2, 1), 0)
f5882_0_safeMove_NE(x0, x2, 0) → f5060_0_safeMove_Load(x0, 1, +(x2, 1)) | >(+(x2, 1), 0)
f5060_0_safeMove_Load(x0, 0, x3) → f5060_0_safeMove_Load(x0, 0, +(x3, 1)) | &&(<(x3, x0), >(+(x3, 1), 0))
f5060_0_safeMove_Load(x0, x2, x3) → f5882_0_safeMove_NE(x0, x3, 1) | &&(>(x2, 0), <(x3, x0))
f5060_0_safeMove_Load(x0, x2, x3) → f5882_0_safeMove_NE(x0, x3, 0) | &&(>(x2, 0), <(x3, x0))

Finished conversion. Obtained 5 rules.

P rules:
f5882_0_safeMove_NE(x5, x6, c1) → f5060_0_safeMove_Load(x5, 0, +(x6, 1)) | &&(>(x6, -1), =(1, c1))
f5882_0_safeMove_NE(x7, x8, c0) → f5060_0_safeMove_Load(x7, 1, +(x8, 1)) | &&(>(x8, -1), =(0, c0))
f5060_0_safeMove_Load(x9, c0, x10) → f5060_0_safeMove_Load(x9, 0, +(x10, 1)) | &&(&&(>(x10, -1), >(x9, x10)), =(0, c0))
f5060_0_safeMove_Load(x11, x12, x13) → f5882_0_safeMove_NE(x11, x13, 1) | &&(>(x12, 0), <(x13, x11))
f5060_0_safeMove_Load(x14, x15, x16) → f5882_0_safeMove_NE(x14, x16, 0) | &&(>(x15, 0), <(x16, x14))

(7) Obligation:

Rules:
f5882_0_safeMove_NE(x5, x6, c1) → f5060_0_safeMove_Load(x5, 0, +(x6, 1)) | &&(>(x6, -1), =(1, c1))
f5882_0_safeMove_NE(x7, x8, c0) → f5060_0_safeMove_Load(x7, 1, +(x8, 1)) | &&(>(x8, -1), =(0, c0))
f5060_0_safeMove_Load(x9, c0, x10) → f5060_0_safeMove_Load(x9, 0, +(x10, 1)) | &&(&&(>(x10, -1), >(x9, x10)), =(0, c0))
f5060_0_safeMove_Load(x11, x12, x13) → f5882_0_safeMove_NE(x11, x13, 1) | &&(>(x12, 0), <(x13, x11))
f5060_0_safeMove_Load(x14, x15, x16) → f5882_0_safeMove_NE(x14, x16, 0) | &&(>(x15, 0), <(x16, x14))

(8) TerminationGraphProcessor (SOUND transformation)

Constructed the termination graph and obtained 2 non-trivial SCCs.


(9) Complex Obligation (AND)

(10) Obligation:

Rules:
f5882_0_safeMove_NE(x3, x4, x5) → f5060_0_safeMove_Load(x3, 1, +(x4, 1)) | &&(>(x4, -1), =(0, x5))
f5060_0_safeMove_Load(x12, x13, x14) → f5882_0_safeMove_NE(x12, x14, 0) | &&(>(x13, 0), <(x14, x12))

(11) PolynomialOrderProcessor (SOUND transformation)

Found the following polynomial interpretation:


[f5882_0_safeMove_NE(x7, x9, x11)] = -1 + c12·x11 + x7 - x9
[f5060_0_safeMove_Load(x14, x16, x18)] = x14 - x18

Therefore the following rule(s) have been dropped:


f5060_0_safeMove_Load(x3, x4, x5) → f5882_0_safeMove_NE(x3, x5, 0) | &&(>(x4, 0), <(x5, x3))

(12) Obligation:

Rules:
f5882_0_safeMove_NE(x0, x1, x2) → f5060_0_safeMove_Load(x0, 1, +(x1, 1)) | &&(>(x1, -1), =(0, x2))

(13) TerminationGraphProcessor (EQUIVALENT transformation)

Constructed the termination graph and obtained no non-trivial SCC(s).


(14) YES

(15) Obligation:

Rules:
f5060_0_safeMove_Load(x6, x7, x8) → f5060_0_safeMove_Load(x6, 0, +(x8, 1)) | &&(&&(>(x8, -1), >(x6, x8)), =(0, x7))

(16) PolynomialOrderProcessor (EQUIVALENT transformation)

Found the following polynomial interpretation:


[f5060_0_safeMove_Load(x4, x6, x8)] = x4 + c7·x6 - x8

Therefore the following rule(s) have been dropped:


f5060_0_safeMove_Load(x0, x1, x2) → f5060_0_safeMove_Load(x0, 0, +(x2, 1)) | &&(&&(>(x2, -1), >(x0, x2)), =(0, x1))

(17) YES

(18) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Queen.displayChessboard()V
SCC calls the following helper methods:
Performed SCC analyses:
  • Used field analysis yielded the following read fields:
  • Marker field analysis yielded the following relations that could be markers:

(19) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 32 rules for P and 0 rules for R.


P rules:
f4604_0_displayChessboard_FieldAccess(EOS(STATIC_4604(i1246)), i1247, i1247) → f4612_0_displayChessboard_GE(EOS(STATIC_4612(i1246)), i1247, i1247, i1246)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(i1246)), i1247, i1247, i1246) → f4619_0_displayChessboard_GE(EOS(STATIC_4619(i1246)), i1247, i1247, i1246)
f4619_0_displayChessboard_GE(EOS(STATIC_4619(i1246)), i1247, i1247, i1246) → f4632_0_displayChessboard_ConstantStackPush(EOS(STATIC_4632(i1246)), i1247) | <(i1247, i1246)
f4632_0_displayChessboard_ConstantStackPush(EOS(STATIC_4632(i1246)), i1247) → f4660_0_displayChessboard_Store(EOS(STATIC_4660(i1246)), i1247, 0)
f4660_0_displayChessboard_Store(EOS(STATIC_4660(i1246)), i1247, matching1) → f4696_0_displayChessboard_Load(EOS(STATIC_4696(i1246)), i1247, 0) | =(matching1, 0)
f4696_0_displayChessboard_Load(EOS(STATIC_4696(i1246)), i1247, matching1) → f4904_0_displayChessboard_Load(EOS(STATIC_4904(i1246)), i1247, 0) | =(matching1, 0)
f4904_0_displayChessboard_Load(EOS(STATIC_4904(i1326)), i1247, i1327) → f5113_0_displayChessboard_Load(EOS(STATIC_5113(i1326)), i1247, i1327)
f5113_0_displayChessboard_Load(EOS(STATIC_5113(i1326)), i1247, i1382) → f5312_0_displayChessboard_Load(EOS(STATIC_5312(i1326)), i1247, i1382)
f5312_0_displayChessboard_Load(EOS(STATIC_5312(i1326)), i1247, i1441) → f5584_0_displayChessboard_Load(EOS(STATIC_5584(i1326)), i1247, i1441)
f5584_0_displayChessboard_Load(EOS(STATIC_5584(i1326)), i1247, i1571) → f5610_0_displayChessboard_FieldAccess(EOS(STATIC_5610(i1326)), i1247, i1571, i1571)
f5610_0_displayChessboard_FieldAccess(EOS(STATIC_5610(i1326)), i1247, i1571, i1571) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(i1326)), i1247, i1571, i1571, i1326)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(i1326)), i1247, i1571, i1571, i1326) → f5627_0_displayChessboard_GE(EOS(STATIC_5627(i1326)), i1247, i1571, i1571, i1326)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(i1326)), i1247, i1571, i1571, i1326) → f5628_0_displayChessboard_GE(EOS(STATIC_5628(i1326)), i1247, i1571, i1571, i1326)
f5627_0_displayChessboard_GE(EOS(STATIC_5627(i1326)), i1247, i1571, i1571, i1326) → f5642_0_displayChessboard_Inc(EOS(STATIC_5642(i1326)), i1247) | >=(i1571, i1326)
f5642_0_displayChessboard_Inc(EOS(STATIC_5642(i1326)), i1247) → f5661_0_displayChessboard_JMP(EOS(STATIC_5661(i1326)), +(i1247, 1)) | >=(i1247, 0)
f5661_0_displayChessboard_JMP(EOS(STATIC_5661(i1326)), i1600) → f5680_0_displayChessboard_Load(EOS(STATIC_5680(i1326)), i1600)
f5680_0_displayChessboard_Load(EOS(STATIC_5680(i1326)), i1600) → f4591_0_displayChessboard_Load(EOS(STATIC_4591(i1326)), i1600)
f4591_0_displayChessboard_Load(EOS(STATIC_4591(i1246)), i1247) → f4604_0_displayChessboard_FieldAccess(EOS(STATIC_4604(i1246)), i1247, i1247)
f5628_0_displayChessboard_GE(EOS(STATIC_5628(i1326)), i1247, i1571, i1571, i1326) → f5652_0_displayChessboard_FieldAccess(EOS(STATIC_5652(i1326)), i1247, i1571) | <(i1571, i1326)
f5652_0_displayChessboard_FieldAccess(EOS(STATIC_5652(i1326)), i1247, i1571) → f5667_0_displayChessboard_Load(EOS(STATIC_5667(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)))
f5667_0_displayChessboard_Load(EOS(STATIC_5667(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326))) → f5705_0_displayChessboard_ArrayAccess(EOS(STATIC_5705(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f5705_0_displayChessboard_ArrayAccess(EOS(STATIC_5705(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f5715_0_displayChessboard_ArrayAccess(EOS(STATIC_5715(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f5715_0_displayChessboard_ArrayAccess(EOS(STATIC_5715(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f5722_0_displayChessboard_Load(EOS(STATIC_5722(i1326)), i1247, i1571, i1644) | <(i1247, i1326)
f5722_0_displayChessboard_Load(EOS(STATIC_5722(i1326)), i1247, i1571, i1644) → f5754_0_displayChessboard_EQ(EOS(STATIC_5754(i1326)), i1247, i1571, i1644, i1571)
f5754_0_displayChessboard_EQ(EOS(STATIC_5754(i1326)), i1247, i1571, i1571, i1571) → f5783_0_displayChessboard_EQ(EOS(STATIC_5783(i1326)), i1247, i1571, i1571, i1571)
f5754_0_displayChessboard_EQ(EOS(STATIC_5754(i1326)), i1247, i1571, i1644, i1571) → f5784_0_displayChessboard_EQ(EOS(STATIC_5784(i1326)), i1247, i1571, i1644, i1571)
f5783_0_displayChessboard_EQ(EOS(STATIC_5783(i1326)), i1247, i1571, i1571, i1571) → f5799_0_displayChessboard_Inc(EOS(STATIC_5799(i1326)), i1247, i1571)
f5799_0_displayChessboard_Inc(EOS(STATIC_5799(i1326)), i1247, i1571) → f5811_0_displayChessboard_Inc(EOS(STATIC_5811(i1326)), i1247, i1571)
f5811_0_displayChessboard_Inc(EOS(STATIC_5811(i1326)), i1247, i1571) → f5863_0_displayChessboard_JMP(EOS(STATIC_5863(i1326)), i1247, +(i1571, 1)) | >=(i1571, 0)
f5863_0_displayChessboard_JMP(EOS(STATIC_5863(i1326)), i1247, i1759) → f5898_0_displayChessboard_Load(EOS(STATIC_5898(i1326)), i1247, i1759)
f5898_0_displayChessboard_Load(EOS(STATIC_5898(i1326)), i1247, i1759) → f5584_0_displayChessboard_Load(EOS(STATIC_5584(i1326)), i1247, i1759)
f5784_0_displayChessboard_EQ(EOS(STATIC_5784(i1326)), i1247, i1571, i1644, i1571) → f5811_0_displayChessboard_Inc(EOS(STATIC_5811(i1326)), i1247, i1571) | !(=(i1644, i1571))
R rules:

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


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

Filtered duplicate args:



f5617_0_displayChessboard_GE(x1, x2, x3, x4, x5) → f5617_0_displayChessboard_GE(x1, x2, x4)
Cond_f5617_0_displayChessboard_GE(x1, x2, x3, x4, x5, x6) → Cond_f5617_0_displayChessboard_GE(x1, x2, x3, x5)
Cond_f5617_0_displayChessboard_GE1(x1, x2, x3, x4, x5, x6) → Cond_f5617_0_displayChessboard_GE1(x1, x2, x3, x5)

Filtered unneeded arguments:



Cond_f5617_0_displayChessboard_GE(x1, x2, x3, x4) → Cond_f5617_0_displayChessboard_GE(x1, x2, x3)

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


P rules:
F5617_0_DISPLAYCHESSBOARD_GE(EOS(STATIC_5617(x0)), x1, x2) → F5617_0_DISPLAYCHESSBOARD_GE(EOS(STATIC_5617(x0)), +(x1, 1), 0) | &&(&&(>=(x2, x0), <(+(x1, 1), x0)), >(x1, -1))
F5617_0_DISPLAYCHESSBOARD_GE(EOS(STATIC_5617(x0)), x1, x2) → F5617_0_DISPLAYCHESSBOARD_GE(EOS(STATIC_5617(x0)), x1, +(x2, 1)) | &&(&&(>(x2, -1), <(x1, x0)), <(x2, x0))
R rules:

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


P rules:
F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0)), x1, x2) → COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2, x0), <(+(x1, 1), x0)), >(x1, -1)), EOS(STATIC_5617(x0)), x1, x2)
COND_F5617_0_DISPLAYCHESSBOARD_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0)), +(x1, 1), 0)
F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0)), x1, x2) → COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2, -1), <(x1, x0)), <(x2, x0)), EOS(STATIC_5617(x0)), x1, x2)
COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0)), x1, +(x2, 1))
R rules:

(20) 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): F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[0])), x1[0], x2[0]) → COND_F5617_0_DISPLAYCHESSBOARD_GE(x2[0] >= x0[0] && x1[0] + 1 < x0[0] && x1[0] > -1, EOS(STATIC_5617(x0[0])), x1[0], x2[0])
(1): COND_F5617_0_DISPLAYCHESSBOARD_GE(TRUE, EOS(STATIC_5617(x0[1])), x1[1], x2[1]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[1])), x1[1] + 1, 0)
(2): F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2]) → COND_F5617_0_DISPLAYCHESSBOARD_GE1(x2[2] > -1 && x1[2] < x0[2] && x2[2] < x0[2], EOS(STATIC_5617(x0[2])), x1[2], x2[2])
(3): COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], x2[3] + 1)

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


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


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


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


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


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



The set Q is empty.

(21) 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@4652a73c 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 F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0)), x1, x2) → COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2, x0), <(+(x1, 1), x0)), >(x1, -1)), EOS(STATIC_5617(x0)), x1, x2) the following chains were created:
  • We consider the chain F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[0])), x1[0], x2[0]) → COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2[0], x0[0]), <(+(x1[0], 1), x0[0])), >(x1[0], -1)), EOS(STATIC_5617(x0[0])), x1[0], x2[0]), COND_F5617_0_DISPLAYCHESSBOARD_GE(TRUE, EOS(STATIC_5617(x0[1])), x1[1], x2[1]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[1])), +(x1[1], 1), 0) which results in the following constraint:

    (1)    (&&(&&(>=(x2[0], x0[0]), <(+(x1[0], 1), x0[0])), >(x1[0], -1))=TRUEEOS(STATIC_5617(x0[0]))=EOS(STATIC_5617(x0[1]))∧x1[0]=x1[1]x2[0]=x2[1]F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[0])), x1[0], x2[0])≥NonInfC∧F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[0])), x1[0], x2[0])≥COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2[0], x0[0]), <(+(x1[0], 1), x0[0])), >(x1[0], -1)), EOS(STATIC_5617(x0[0])), x1[0], x2[0])∧(UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2[0], x0[0]), <(+(x1[0], 1), x0[0])), >(x1[0], -1)), EOS(STATIC_5617(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)    (>(x1[0], -1)=TRUE>=(x2[0], x0[0])=TRUE<(+(x1[0], 1), x0[0])=TRUEF5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[0])), x1[0], x2[0])≥NonInfC∧F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[0])), x1[0], x2[0])≥COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2[0], x0[0]), <(+(x1[0], 1), x0[0])), >(x1[0], -1)), EOS(STATIC_5617(x0[0])), x1[0], x2[0])∧(UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2[0], x0[0]), <(+(x1[0], 1), x0[0])), >(x1[0], -1)), EOS(STATIC_5617(x0[0])), x1[0], x2[0])), ≥))



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

    (3)    (x1[0] ≥ 0∧x2[0] + [-1]x0[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2[0], x0[0]), <(+(x1[0], 1), x0[0])), >(x1[0], -1)), EOS(STATIC_5617(x0[0])), x1[0], x2[0])), ≥)∧[(-1)bni_13 + (-1)Bound*bni_13] + [(-1)bni_13]x1[0] + [bni_13]x0[0] ≥ 0∧[(-1)bso_14] ≥ 0)



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

    (4)    (x1[0] ≥ 0∧x2[0] + [-1]x0[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2[0], x0[0]), <(+(x1[0], 1), x0[0])), >(x1[0], -1)), EOS(STATIC_5617(x0[0])), x1[0], x2[0])), ≥)∧[(-1)bni_13 + (-1)Bound*bni_13] + [(-1)bni_13]x1[0] + [bni_13]x0[0] ≥ 0∧[(-1)bso_14] ≥ 0)



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

    (5)    (x1[0] ≥ 0∧x2[0] + [-1]x0[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2[0], x0[0]), <(+(x1[0], 1), x0[0])), >(x1[0], -1)), EOS(STATIC_5617(x0[0])), x1[0], x2[0])), ≥)∧[(-1)bni_13 + (-1)Bound*bni_13] + [(-1)bni_13]x1[0] + [bni_13]x0[0] ≥ 0∧[(-1)bso_14] ≥ 0)



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

    (6)    (x1[0] ≥ 0∧x2[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2[0], x0[0]), <(+(x1[0], 1), x0[0])), >(x1[0], -1)), EOS(STATIC_5617(x0[0])), x1[0], x2[0])), ≥)∧[(-1)bni_13 + (-1)Bound*bni_13] + [bni_13]x0[0] + [(-1)bni_13]x1[0] ≥ 0∧[(-1)bso_14] ≥ 0)



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

    (7)    (x1[0] ≥ 0∧x2[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2[0], x0[0]), <(+(x1[0], 1), x0[0])), >(x1[0], -1)), EOS(STATIC_5617(x0[0])), x1[0], x2[0])), ≥)∧[bni_13 + (-1)Bound*bni_13] + [bni_13]x0[0] ≥ 0∧[(-1)bso_14] ≥ 0)







For Pair COND_F5617_0_DISPLAYCHESSBOARD_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0)), +(x1, 1), 0) the following chains were created:
  • We consider the chain COND_F5617_0_DISPLAYCHESSBOARD_GE(TRUE, EOS(STATIC_5617(x0[1])), x1[1], x2[1]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[1])), +(x1[1], 1), 0) which results in the following constraint:

    (8)    (COND_F5617_0_DISPLAYCHESSBOARD_GE(TRUE, EOS(STATIC_5617(x0[1])), x1[1], x2[1])≥NonInfC∧COND_F5617_0_DISPLAYCHESSBOARD_GE(TRUE, EOS(STATIC_5617(x0[1])), x1[1], x2[1])≥F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[1])), +(x1[1], 1), 0)∧(UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[1])), +(x1[1], 1), 0)), ≥))



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

    (9)    ((UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[1])), +(x1[1], 1), 0)), ≥)∧[bni_15] = 0∧[1 + (-1)bso_16] ≥ 0)



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

    (10)    ((UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[1])), +(x1[1], 1), 0)), ≥)∧[bni_15] = 0∧[1 + (-1)bso_16] ≥ 0)



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

    (11)    ((UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[1])), +(x1[1], 1), 0)), ≥)∧[bni_15] = 0∧[1 + (-1)bso_16] ≥ 0)



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

    (12)    ((UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[1])), +(x1[1], 1), 0)), ≥)∧[bni_15] = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_16] ≥ 0)







For Pair F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0)), x1, x2) → COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2, -1), <(x1, x0)), <(x2, x0)), EOS(STATIC_5617(x0)), x1, x2) the following chains were created:
  • We consider the chain F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2]) → COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2]), COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1)) which results in the following constraint:

    (13)    (&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2]))=TRUEEOS(STATIC_5617(x0[2]))=EOS(STATIC_5617(x0[3]))∧x1[2]=x1[3]x2[2]=x2[3]F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2])≥NonInfC∧F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2])≥COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])∧(UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥))



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

    (14)    (<(x2[2], x0[2])=TRUE>(x2[2], -1)=TRUE<(x1[2], x0[2])=TRUEF5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2])≥NonInfC∧F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2])≥COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])∧(UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥))



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

    (15)    (x0[2] + [-1] + [-1]x2[2] ≥ 0∧x2[2] ≥ 0∧x0[2] + [-1] + [-1]x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]x1[2] + [bni_17]x0[2] ≥ 0∧[(-1)bso_18] ≥ 0)



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

    (16)    (x0[2] + [-1] + [-1]x2[2] ≥ 0∧x2[2] ≥ 0∧x0[2] + [-1] + [-1]x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]x1[2] + [bni_17]x0[2] ≥ 0∧[(-1)bso_18] ≥ 0)



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

    (17)    (x0[2] + [-1] + [-1]x2[2] ≥ 0∧x2[2] ≥ 0∧x0[2] + [-1] + [-1]x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]x1[2] + [bni_17]x0[2] ≥ 0∧[(-1)bso_18] ≥ 0)



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

    (18)    (x0[2] ≥ 0∧x2[2] ≥ 0∧x2[2] + x0[2] + [-1]x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[(-1)Bound*bni_17] + [bni_17]x2[2] + [(-1)bni_17]x1[2] + [bni_17]x0[2] ≥ 0∧[(-1)bso_18] ≥ 0)



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

    (19)    (x0[2] ≥ 0∧x2[2] ≥ 0∧x2[2] + x0[2] + x1[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[(-1)Bound*bni_17] + [bni_17]x2[2] + [bni_17]x1[2] + [bni_17]x0[2] ≥ 0∧[(-1)bso_18] ≥ 0)


    (20)    (x0[2] ≥ 0∧x2[2] ≥ 0∧x2[2] + x0[2] + [-1]x1[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[(-1)Bound*bni_17] + [bni_17]x2[2] + [(-1)bni_17]x1[2] + [bni_17]x0[2] ≥ 0∧[(-1)bso_18] ≥ 0)







For Pair COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0)), x1, +(x2, 1)) the following chains were created:
  • We consider the chain COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1)) which results in the following constraint:

    (21)    (COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3])≥NonInfC∧COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3])≥F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))∧(UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))), ≥))



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

    (22)    ((UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))), ≥)∧[bni_19] = 0∧[(-1)bso_20] ≥ 0)



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

    (23)    ((UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))), ≥)∧[bni_19] = 0∧[(-1)bso_20] ≥ 0)



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

    (24)    ((UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))), ≥)∧[bni_19] = 0∧[(-1)bso_20] ≥ 0)



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

    (25)    ((UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))), ≥)∧[bni_19] = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_20] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0)), x1, x2) → COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2, x0), <(+(x1, 1), x0)), >(x1, -1)), EOS(STATIC_5617(x0)), x1, x2)
    • (x1[0] ≥ 0∧x2[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2[0], x0[0]), <(+(x1[0], 1), x0[0])), >(x1[0], -1)), EOS(STATIC_5617(x0[0])), x1[0], x2[0])), ≥)∧[bni_13 + (-1)Bound*bni_13] + [bni_13]x0[0] ≥ 0∧[(-1)bso_14] ≥ 0)

  • COND_F5617_0_DISPLAYCHESSBOARD_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0)), +(x1, 1), 0)
    • ((UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[1])), +(x1[1], 1), 0)), ≥)∧[bni_15] = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_16] ≥ 0)

  • F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0)), x1, x2) → COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2, -1), <(x1, x0)), <(x2, x0)), EOS(STATIC_5617(x0)), x1, x2)
    • (x0[2] ≥ 0∧x2[2] ≥ 0∧x2[2] + x0[2] + x1[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[(-1)Bound*bni_17] + [bni_17]x2[2] + [bni_17]x1[2] + [bni_17]x0[2] ≥ 0∧[(-1)bso_18] ≥ 0)
    • (x0[2] ≥ 0∧x2[2] ≥ 0∧x2[2] + x0[2] + [-1]x1[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[(-1)Bound*bni_17] + [bni_17]x2[2] + [(-1)bni_17]x1[2] + [bni_17]x0[2] ≥ 0∧[(-1)bso_18] ≥ 0)

  • COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0)), x1, +(x2, 1))
    • ((UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))), ≥)∧[bni_19] = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_20] ≥ 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(F5617_0_DISPLAYCHESSBOARD_GE'(x1, x2, x3)) = [-1] + [-1]x2 + x1   
POL(EOS(x1)) = x1   
POL(STATIC_5617(x1)) = x1   
POL(COND_F5617_0_DISPLAYCHESSBOARD_GE(x1, x2, x3, x4)) = [-1] + [-1]x3 + x2   
POL(&&(x1, x2)) = [-1]   
POL(>=(x1, x2)) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(0) = 0   
POL(COND_F5617_0_DISPLAYCHESSBOARD_GE1(x1, x2, x3, x4)) = [-1] + [-1]x3 + x2   

The following pairs are in P>:

COND_F5617_0_DISPLAYCHESSBOARD_GE(TRUE, EOS(STATIC_5617(x0[1])), x1[1], x2[1]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[1])), +(x1[1], 1), 0)

The following pairs are in Pbound:

F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[0])), x1[0], x2[0]) → COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2[0], x0[0]), <(+(x1[0], 1), x0[0])), >(x1[0], -1)), EOS(STATIC_5617(x0[0])), x1[0], x2[0])
F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2]) → COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])

The following pairs are in P:

F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[0])), x1[0], x2[0]) → COND_F5617_0_DISPLAYCHESSBOARD_GE(&&(&&(>=(x2[0], x0[0]), <(+(x1[0], 1), x0[0])), >(x1[0], -1)), EOS(STATIC_5617(x0[0])), x1[0], x2[0])
F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2]) → COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])
COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))

There are no usable rules.

(22) Complex Obligation (AND)

(23) 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): F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[0])), x1[0], x2[0]) → COND_F5617_0_DISPLAYCHESSBOARD_GE(x2[0] >= x0[0] && x1[0] + 1 < x0[0] && x1[0] > -1, EOS(STATIC_5617(x0[0])), x1[0], x2[0])
(2): F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2]) → COND_F5617_0_DISPLAYCHESSBOARD_GE1(x2[2] > -1 && x1[2] < x0[2] && x2[2] < x0[2], EOS(STATIC_5617(x0[2])), x1[2], x2[2])
(3): COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], x2[3] + 1)

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


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


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



The set Q is empty.

(24) IDependencyGraphProof (EQUIVALENT transformation)

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

(25) 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:
(3): COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], x2[3] + 1)
(2): F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2]) → COND_F5617_0_DISPLAYCHESSBOARD_GE1(x2[2] > -1 && x1[2] < x0[2] && x2[2] < x0[2], EOS(STATIC_5617(x0[2])), x1[2], x2[2])

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


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



The set Q is empty.

(26) 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@4652a73c 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_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1)) the following chains were created:
  • We consider the chain COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1)) which results in the following constraint:

    (1)    (COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3])≥NonInfC∧COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3])≥F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))∧(UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))), ≥))



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

    (2)    ((UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))), ≥)∧[bni_10] = 0∧[1 + (-1)bso_11] ≥ 0)



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

    (3)    ((UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))), ≥)∧[bni_10] = 0∧[1 + (-1)bso_11] ≥ 0)



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

    (4)    ((UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))), ≥)∧[bni_10] = 0∧[1 + (-1)bso_11] ≥ 0)



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

    (5)    ((UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))), ≥)∧[bni_10] = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_11] ≥ 0)







For Pair F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2]) → COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2]) the following chains were created:
  • We consider the chain F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2]) → COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2]), COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1)) which results in the following constraint:

    (6)    (&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2]))=TRUEEOS(STATIC_5617(x0[2]))=EOS(STATIC_5617(x0[3]))∧x1[2]=x1[3]x2[2]=x2[3]F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2])≥NonInfC∧F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2])≥COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])∧(UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥))



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

    (7)    (<(x2[2], x0[2])=TRUE>(x2[2], -1)=TRUE<(x1[2], x0[2])=TRUEF5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2])≥NonInfC∧F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2])≥COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])∧(UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥))



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

    (8)    (x0[2] + [-1] + [-1]x2[2] ≥ 0∧x2[2] ≥ 0∧x0[2] + [-1] + [-1]x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[(-1)bni_12 + (-1)Bound*bni_12] + [(-1)bni_12]x2[2] + [(-1)bni_12]x1[2] + [(2)bni_12]x0[2] ≥ 0∧[(-1)bso_13] ≥ 0)



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

    (9)    (x0[2] + [-1] + [-1]x2[2] ≥ 0∧x2[2] ≥ 0∧x0[2] + [-1] + [-1]x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[(-1)bni_12 + (-1)Bound*bni_12] + [(-1)bni_12]x2[2] + [(-1)bni_12]x1[2] + [(2)bni_12]x0[2] ≥ 0∧[(-1)bso_13] ≥ 0)



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

    (10)    (x0[2] + [-1] + [-1]x2[2] ≥ 0∧x2[2] ≥ 0∧x0[2] + [-1] + [-1]x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[(-1)bni_12 + (-1)Bound*bni_12] + [(-1)bni_12]x2[2] + [(-1)bni_12]x1[2] + [(2)bni_12]x0[2] ≥ 0∧[(-1)bso_13] ≥ 0)



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

    (11)    (x0[2] ≥ 0∧x2[2] ≥ 0∧x2[2] + x0[2] + [-1]x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[bni_12 + (-1)Bound*bni_12] + [bni_12]x2[2] + [(-1)bni_12]x1[2] + [(2)bni_12]x0[2] ≥ 0∧[(-1)bso_13] ≥ 0)



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

    (12)    (x0[2] ≥ 0∧x2[2] ≥ 0∧x2[2] + x0[2] + x1[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[bni_12 + (-1)Bound*bni_12] + [bni_12]x2[2] + [bni_12]x1[2] + [(2)bni_12]x0[2] ≥ 0∧[(-1)bso_13] ≥ 0)


    (13)    (x0[2] ≥ 0∧x2[2] ≥ 0∧x2[2] + x0[2] + [-1]x1[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[bni_12 + (-1)Bound*bni_12] + [bni_12]x2[2] + [(-1)bni_12]x1[2] + [(2)bni_12]x0[2] ≥ 0∧[(-1)bso_13] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))
    • ((UIncreasing(F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))), ≥)∧[bni_10] = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_11] ≥ 0)

  • F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2]) → COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])
    • (x0[2] ≥ 0∧x2[2] ≥ 0∧x2[2] + x0[2] + x1[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[bni_12 + (-1)Bound*bni_12] + [bni_12]x2[2] + [bni_12]x1[2] + [(2)bni_12]x0[2] ≥ 0∧[(-1)bso_13] ≥ 0)
    • (x0[2] ≥ 0∧x2[2] ≥ 0∧x2[2] + x0[2] + [-1]x1[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])), ≥)∧[bni_12 + (-1)Bound*bni_12] + [bni_12]x2[2] + [(-1)bni_12]x1[2] + [(2)bni_12]x0[2] ≥ 0∧[(-1)bso_13] ≥ 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_F5617_0_DISPLAYCHESSBOARD_GE1(x1, x2, x3, x4)) = [-1] + [-1]x3 + [2]x2 + [-1]x4   
POL(EOS(x1)) = x1   
POL(STATIC_5617(x1)) = x1   
POL(F5617_0_DISPLAYCHESSBOARD_GE'(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2 + [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_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], +(x2[3], 1))

The following pairs are in Pbound:

F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2]) → COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])

The following pairs are in P:

F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2]) → COND_F5617_0_DISPLAYCHESSBOARD_GE1(&&(&&(>(x2[2], -1), <(x1[2], x0[2])), <(x2[2], x0[2])), EOS(STATIC_5617(x0[2])), x1[2], x2[2])

There are no usable rules.

(27) Complex Obligation (AND)

(28) 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:
(2): F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[2])), x1[2], x2[2]) → COND_F5617_0_DISPLAYCHESSBOARD_GE1(x2[2] > -1 && x1[2] < x0[2] && x2[2] < x0[2], EOS(STATIC_5617(x0[2])), x1[2], x2[2])


The set Q is empty.

(29) IDependencyGraphProof (EQUIVALENT transformation)

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

(30) TRUE

(31) 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:
(3): COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], x2[3] + 1)


The set Q is empty.

(32) IDependencyGraphProof (EQUIVALENT transformation)

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

(33) TRUE

(34) 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_F5617_0_DISPLAYCHESSBOARD_GE(TRUE, EOS(STATIC_5617(x0[1])), x1[1], x2[1]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[1])), x1[1] + 1, 0)
(3): COND_F5617_0_DISPLAYCHESSBOARD_GE1(TRUE, EOS(STATIC_5617(x0[3])), x1[3], x2[3]) → F5617_0_DISPLAYCHESSBOARD_GE'(EOS(STATIC_5617(x0[3])), x1[3], x2[3] + 1)


The set Q is empty.

(35) IDependencyGraphProof (EQUIVALENT transformation)

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

(36) TRUE

(37) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Queen.search(I)Z
SCC calls the following helper methods: Queen.safeMove(II)Z, Queen.search(I)Z, Queen.wrongPos(IIII)Z, Queen.displayChessboard()V
Performed SCC analyses:
  • Used field analysis yielded the following read fields:
  • Marker field analysis yielded the following relations that could be markers:

(38) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 51 rules for P and 314 rules for R.


P rules:
f3918_0_search_Store(EOS(STATIC_3918(i962)), i964, i964, matching1) → f3924_0_search_Load(EOS(STATIC_3924(i962)), i964, i964, 0) | =(matching1, 0)
f3924_0_search_Load(EOS(STATIC_3924(i962)), i964, i964, matching1) → f3928_0_search_FieldAccess(EOS(STATIC_3928(i962)), i964, i964, 0, i964) | =(matching1, 0)
f3928_0_search_FieldAccess(EOS(STATIC_3928(i962)), i964, i964, matching1, i964) → f3932_0_search_LT(EOS(STATIC_3932(i962)), i964, i964, 0, i964, i962) | =(matching1, 0)
f3932_0_search_LT(EOS(STATIC_3932(i962)), i964, i964, matching1, i964, i962) → f3937_0_search_LT(EOS(STATIC_3937(i962)), i964, i964, 0, i964, i962) | =(matching1, 0)
f3937_0_search_LT(EOS(STATIC_3937(i962)), i964, i964, matching1, i964, i962) → f3947_0_search_ConstantStackPush(EOS(STATIC_3947(i962)), i964, i964, 0) | &&(<(i964, i962), =(matching1, 0))
f3947_0_search_ConstantStackPush(EOS(STATIC_3947(i962)), i964, i964, matching1) → f3959_0_search_Store(EOS(STATIC_3959(i962)), i964, i964, 0, 0) | =(matching1, 0)
f3959_0_search_Store(EOS(STATIC_3959(i962)), i964, i964, matching1, matching2) → f3970_0_search_Load(EOS(STATIC_3970(i962)), i964, i964, 0, 0) | &&(=(matching1, 0), =(matching2, 0))
f3970_0_search_Load(EOS(STATIC_3970(i962)), i964, i964, matching1, matching2) → f4551_0_search_Load(EOS(STATIC_4551(i962)), i964, i964, 0, 0) | &&(=(matching1, 0), =(matching2, 0))
f4551_0_search_Load(EOS(STATIC_4551(i1235)), i1237, i1237, matching1, i1238) → f4840_0_search_Load(EOS(STATIC_4840(i1235)), i1237, i1237, 0, i1238) | =(matching1, 0)
f4840_0_search_Load(EOS(STATIC_4840(i1308)), i1310, i1310, matching1, i1311) → f4872_0_search_NE(EOS(STATIC_4872(i1308)), i1310, i1310, 0, i1311, 0) | =(matching1, 0)
f4872_0_search_NE(EOS(STATIC_4872(i1308)), i1310, i1310, matching1, i1311, matching2) → f4877_0_search_Load(EOS(STATIC_4877(i1308)), i1310, i1310, 0, i1311) | &&(=(matching1, 0), =(matching2, 0))
f4877_0_search_Load(EOS(STATIC_4877(i1308)), i1310, i1310, matching1, i1311) → f4883_0_search_FieldAccess(EOS(STATIC_4883(i1308)), i1310, i1310, 0, i1311, i1311) | =(matching1, 0)
f4883_0_search_FieldAccess(EOS(STATIC_4883(i1308)), i1310, i1310, matching1, i1311, i1311) → f4889_0_search_GE(EOS(STATIC_4889(i1308)), i1310, i1310, 0, i1311, i1311, i1308) | =(matching1, 0)
f4889_0_search_GE(EOS(STATIC_4889(i1308)), i1310, i1310, matching1, i1311, i1311, i1308) → f4912_0_search_GE(EOS(STATIC_4912(i1308)), i1310, i1310, 0, i1311, i1311, i1308) | =(matching1, 0)
f4912_0_search_GE(EOS(STATIC_4912(i1308)), i1310, i1310, matching1, i1311, i1311, i1308) → f4924_0_search_Load(EOS(STATIC_4924(i1308)), i1310, i1310, 0, i1311) | &&(<(i1311, i1308), =(matching1, 0))
f4924_0_search_Load(EOS(STATIC_4924(i1308)), i1310, i1310, matching1, i1311) → f4939_0_search_Load(EOS(STATIC_4939(i1308)), i1310, i1310, 0, i1311, i1310) | =(matching1, 0)
f4939_0_search_Load(EOS(STATIC_4939(i1308)), i1310, i1310, matching1, i1311, i1310) → f4953_0_search_InvokeMethod(EOS(STATIC_4953(i1308)), i1310, i1310, 0, i1311, i1310, i1311) | =(matching1, 0)
f4953_0_search_InvokeMethod(EOS(STATIC_4953(i1308)), i1310, i1310, matching1, i1311, i1310, i1311) → f4976_1_search_InvokeMethod(f4976_0_safeMove_ConstantStackPush(EOS(STATIC_4976(i1308)), i1310, i1311, i1310, i1311), i1310, i1310, 0, i1311, i1310, i1311) | =(matching1, 0)
f4976_0_safeMove_ConstantStackPush(EOS(STATIC_4976(i1308)), i1310, i1311, i1310, i1311) → f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(i1308)), i1310, i1311, i1310, i1311)
f5168_0_safeMove_Return(EOS(STATIC_5168(i1391)), i1395, i1395, matching1, i1397, i1395, i1397, i1387) → f5169_0_safeMove_Return(EOS(STATIC_5169(i1391)), i1395, i1395, 0, i1397, i1395, i1397, i1387) | =(matching1, 0)
f5169_0_safeMove_Return(EOS(STATIC_5169(i1398)), i1401, i1401, matching1, i1402, i1401, i1402, i1400) → f5194_0_search_EQ(EOS(STATIC_5194(i1398)), i1401, i1401, 0, i1402, i1400) | =(matching1, 0)
f5194_0_search_EQ(EOS(STATIC_5194(i1398)), i1401, i1401, matching1, i1402, i1410) → f5200_0_search_EQ(EOS(STATIC_5200(i1398)), i1401, i1401, 0, i1402, i1410) | =(matching1, 0)
f5194_0_search_EQ(EOS(STATIC_5194(i1398)), i1401, i1401, matching1, i1402, matching2) → f5201_0_search_EQ(EOS(STATIC_5201(i1398)), i1401, i1401, 0, i1402, 0) | &&(=(matching1, 0), =(matching2, 0))
f5200_0_search_EQ(EOS(STATIC_5200(i1398)), i1401, i1401, matching1, i1402, i1410) → f5209_0_search_FieldAccess(EOS(STATIC_5209(i1398)), i1401, i1401, i1402) | &&(>(i1410, 0), =(matching1, 0))
f5209_0_search_FieldAccess(EOS(STATIC_5209(i1398)), i1401, i1401, i1402) → f5224_0_search_Load(EOS(STATIC_5224(i1398)), i1401, i1401, i1402, java.lang.Object(ARRAY(i1398)))
f5224_0_search_Load(EOS(STATIC_5224(i1398)), i1401, i1401, i1402, java.lang.Object(ARRAY(i1398))) → f5238_0_search_Load(EOS(STATIC_5238(i1398)), i1401, i1401, i1402, java.lang.Object(ARRAY(i1398)), i1401)
f5238_0_search_Load(EOS(STATIC_5238(i1398)), i1401, i1401, i1402, java.lang.Object(ARRAY(i1398)), i1401) → f5257_0_search_ArrayAccess(EOS(STATIC_5257(i1398)), i1401, i1401, i1402, java.lang.Object(ARRAY(i1398)), i1401, i1402)
f5257_0_search_ArrayAccess(EOS(STATIC_5257(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5262_0_search_ArrayAccess(EOS(STATIC_5262(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5262_0_search_ArrayAccess(EOS(STATIC_5262(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5277_0_search_ArrayAccess(EOS(STATIC_5277(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5277_0_search_ArrayAccess(EOS(STATIC_5277(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5286_0_search_Load(EOS(STATIC_5286(i1398)), i1423, i1423, i1402) | <(i1423, i1398)
f5286_0_search_Load(EOS(STATIC_5286(i1398)), i1423, i1423, i1402) → f5327_0_search_ConstantStackPush(EOS(STATIC_5327(i1398)), i1423, i1423, i1402, i1423)
f5327_0_search_ConstantStackPush(EOS(STATIC_5327(i1398)), i1423, i1423, i1402, i1423) → f5349_0_search_IntArithmetic(EOS(STATIC_5349(i1398)), i1423, i1423, i1402, i1423, 1)
f5349_0_search_IntArithmetic(EOS(STATIC_5349(i1398)), i1423, i1423, i1402, i1423, matching1) → f5372_0_search_InvokeMethod(EOS(STATIC_5372(i1398)), i1423, i1423, i1402, +(i1423, 1)) | &&(>=(i1423, 0), =(matching1, 1))
f5372_0_search_InvokeMethod(EOS(STATIC_5372(i1398)), i1423, i1423, i1402, i1459) → f5396_1_search_InvokeMethod(f5396_0_search_ConstantStackPush(EOS(STATIC_5396(i1398)), i1459, i1459), i1423, i1423, i1402, i1459)
f5396_0_search_ConstantStackPush(EOS(STATIC_5396(i1398)), i1459, i1459) → f5428_0_search_ConstantStackPush(EOS(STATIC_5428(i1398)), i1459, i1459)
f5428_0_search_ConstantStackPush(EOS(STATIC_5428(i1398)), i1459, i1459) → f3913_0_search_ConstantStackPush(EOS(STATIC_3913(i1398)), i1459, i1459)
f3913_0_search_ConstantStackPush(EOS(STATIC_3913(i962)), i964, i964) → f3918_0_search_Store(EOS(STATIC_3918(i962)), i964, i964, 0)
f5544_0_search_Return(EOS(STATIC_5544(i1521)), i1423, i1423, i1402, i1523, matching1) → f5571_0_search_Return(EOS(STATIC_5571(i1521)), i1423, i1423, i1402, i1523, 0) | =(matching1, 0)
f5571_0_search_Return(EOS(STATIC_5571(i1562)), i1423, i1423, i1402, i1564, matching1) → f5624_0_search_Store(EOS(STATIC_5624(i1562)), i1423, i1423, i1402, 0) | =(matching1, 0)
f5624_0_search_Store(EOS(STATIC_5624(i1562)), i1423, i1423, i1402, matching1) → f5660_0_search_Inc(EOS(STATIC_5660(i1562)), i1423, i1423, 0, i1402) | =(matching1, 0)
f5660_0_search_Inc(EOS(STATIC_5660(i1562)), i1423, i1423, matching1, i1402) → f5701_0_search_JMP(EOS(STATIC_5701(i1562)), i1423, i1423, 0, +(i1402, 1)) | &&(>=(i1402, 0), =(matching1, 0))
f5701_0_search_JMP(EOS(STATIC_5701(i1562)), i1423, i1423, matching1, i1631) → f5738_0_search_Load(EOS(STATIC_5738(i1562)), i1423, i1423, 0, i1631) | =(matching1, 0)
f5738_0_search_Load(EOS(STATIC_5738(i1562)), i1423, i1423, matching1, i1631) → f4840_0_search_Load(EOS(STATIC_4840(i1562)), i1423, i1423, 0, i1631) | =(matching1, 0)
f5570_0_search_Return(EOS(STATIC_5570(i1528)), i1423, i1423, i1402, i1532, matching1) → f5571_0_search_Return(EOS(STATIC_5571(i1528)), i1423, i1423, i1402, i1532, 0) | =(matching1, 0)
f5201_0_search_EQ(EOS(STATIC_5201(i1398)), i1401, i1401, matching1, i1402, matching2) → f5219_0_search_Inc(EOS(STATIC_5219(i1398)), i1401, i1401, 0, i1402) | &&(=(matching1, 0), =(matching2, 0))
f5219_0_search_Inc(EOS(STATIC_5219(i1398)), i1401, i1401, matching1, i1402) → f5234_0_search_JMP(EOS(STATIC_5234(i1398)), i1401, i1401, 0, +(i1402, 1)) | &&(>=(i1402, 0), =(matching1, 0))
f5234_0_search_JMP(EOS(STATIC_5234(i1398)), i1401, i1401, matching1, i1414) → f5250_0_search_Load(EOS(STATIC_5250(i1398)), i1401, i1401, 0, i1414) | =(matching1, 0)
f5250_0_search_Load(EOS(STATIC_5250(i1398)), i1401, i1401, matching1, i1414) → f4840_0_search_Load(EOS(STATIC_4840(i1398)), i1401, i1401, 0, i1414) | =(matching1, 0)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(i1391)), i1395, i1397, i1387), i1395, i1395, matching1, i1397, i1395, i1397) → f5168_0_safeMove_Return(EOS(STATIC_5168(i1391)), i1395, i1395, 0, i1397, i1395, i1397, i1387) | =(matching1, 0)
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(i1521)), i1523, matching1), i1423, i1423, i1402, i1523) → f5544_0_search_Return(EOS(STATIC_5544(i1521)), i1423, i1423, i1402, i1523, 0) | =(matching1, 0)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(i1528)), i1532, matching1), i1423, i1423, i1402, i1532) → f5570_0_search_Return(EOS(STATIC_5570(i1528)), i1423, i1423, i1402, i1532, 0) | =(matching1, 0)
R rules:
f4976_0_safeMove_ConstantStackPush(EOS(STATIC_4976(i1308)), i1310, i1311, i1310, i1311) → f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(i1308)), i1310, i1311, i1310, i1311)
f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(i1308)), i1310, i1311, i1310, i1311) → f4141_0_safeMove_ConstantStackPush(EOS(STATIC_4141(i1308)), i1310, i1311, i1310, i1311)
f5269_0_wrongPos_Load(EOS(STATIC_5269(i1206)), i1208, i1209, i1366, i1415, i1208, i1209, i1366, i1415) → f5297_0_wrongPos_Load(EOS(STATIC_5297(i1206)), i1208, i1209, i1366, i1415, i1208, i1209, i1366, i1415)
f3974_0_displayChessboard_ConstantStackPush(EOS(STATIC_3974(i962))) → f4001_0_displayChessboard_ConstantStackPush(EOS(STATIC_4001(i962)))
f4141_0_safeMove_ConstantStackPush(EOS(STATIC_4141(i1039)), i1041, i1042, i1041, i1042) → f4153_0_safeMove_Store(EOS(STATIC_4153(i1039)), i1041, i1042, i1041, i1042, 1)
f4153_0_safeMove_Store(EOS(STATIC_4153(i1039)), i1041, i1042, i1041, i1042, matching1) → f4160_0_safeMove_ConstantStackPush(EOS(STATIC_4160(i1039)), i1041, i1042, i1041, i1042, 1) | =(matching1, 1)
f4160_0_safeMove_ConstantStackPush(EOS(STATIC_4160(i1039)), i1041, i1042, i1041, i1042, matching1) → f4168_0_safeMove_Store(EOS(STATIC_4168(i1039)), i1041, i1042, i1041, i1042, 1, 0) | =(matching1, 1)
f4168_0_safeMove_Store(EOS(STATIC_4168(i1039)), i1041, i1042, i1041, i1042, matching1, matching2) → f4172_0_safeMove_Load(EOS(STATIC_4172(i1039)), i1041, i1042, i1041, i1042, 1, 0) | &&(=(matching1, 1), =(matching2, 0))
f4172_0_safeMove_Load(EOS(STATIC_4172(i1039)), i1041, i1042, i1041, i1042, matching1, matching2) → f4459_0_safeMove_Load(EOS(STATIC_4459(i1039)), i1041, i1042, i1041, i1042, 1, 0) | &&(=(matching1, 1), =(matching2, 0))
f4459_0_safeMove_Load(EOS(STATIC_4459(i1206)), i1208, i1209, i1208, i1209, i1210, i1211) → f4655_0_safeMove_Load(EOS(STATIC_4655(i1206)), i1208, i1209, i1208, i1209, i1210, i1211)
f4655_0_safeMove_Load(EOS(STATIC_4655(i1206)), i1208, i1209, i1208, i1209, i1259, i1260) → f4865_0_safeMove_Load(EOS(STATIC_4865(i1206)), i1208, i1209, i1208, i1209, i1259, i1260)
f4865_0_safeMove_Load(EOS(STATIC_4865(i1206)), i1208, i1209, i1208, i1209, i1321, i1322) → f5049_0_safeMove_Load(EOS(STATIC_5049(i1206)), i1208, i1209, i1208, i1209, i1321, i1322)
f5049_0_safeMove_Load(EOS(STATIC_5049(i1206)), i1208, i1209, i1208, i1209, i1365, i1366) → f5060_0_safeMove_Load(EOS(STATIC_5060(i1206)), i1208, i1209, i1208, i1209, i1365, i1366, i1366)
f5060_0_safeMove_Load(EOS(STATIC_5060(i1206)), i1208, i1209, i1208, i1209, i1365, i1366, i1366) → f5065_0_safeMove_GE(EOS(STATIC_5065(i1206)), i1208, i1209, i1208, i1209, i1365, i1366, i1366, i1208)
f5065_0_safeMove_GE(EOS(STATIC_5065(i1206)), i1208, i1209, i1208, i1209, i1365, i1366, i1366, i1208) → f5075_0_safeMove_GE(EOS(STATIC_5075(i1206)), i1208, i1209, i1208, i1209, i1365, i1366, i1366, i1208)
f5065_0_safeMove_GE(EOS(STATIC_5065(i1206)), i1208, i1209, i1208, i1209, i1365, i1366, i1366, i1208) → f5077_0_safeMove_GE(EOS(STATIC_5077(i1206)), i1208, i1209, i1208, i1209, i1365, i1366, i1366, i1208)
f5075_0_safeMove_GE(EOS(STATIC_5075(i1206)), i1208, i1209, i1208, i1209, i1365, i1366, i1366, i1208) → f5081_0_safeMove_Load(EOS(STATIC_5081(i1206)), i1208, i1209, i1365) | >=(i1366, i1208)
f5077_0_safeMove_GE(EOS(STATIC_5077(i1206)), i1208, i1209, i1208, i1209, i1365, i1366, i1366, i1208) → f5088_0_safeMove_Load(EOS(STATIC_5088(i1206)), i1208, i1209, i1208, i1209, i1365, i1366) | <(i1366, i1208)
f5081_0_safeMove_Load(EOS(STATIC_5081(i1206)), i1208, i1209, i1365) → f5094_0_safeMove_Return(EOS(STATIC_5094(i1206)), i1208, i1209, i1365)
f5088_0_safeMove_Load(EOS(STATIC_5088(i1206)), i1208, i1209, i1208, i1209, i1365, i1366) → f5099_0_safeMove_EQ(EOS(STATIC_5099(i1206)), i1208, i1209, i1208, i1209, i1366, i1365)
f5099_0_safeMove_EQ(EOS(STATIC_5099(i1206)), i1208, i1209, i1208, i1209, i1366, i1384) → f5123_0_safeMove_EQ(EOS(STATIC_5123(i1206)), i1208, i1209, i1208, i1209, i1366, i1384)
f5099_0_safeMove_EQ(EOS(STATIC_5099(i1206)), i1208, i1209, i1208, i1209, i1366, matching1) → f5124_0_safeMove_EQ(EOS(STATIC_5124(i1206)), i1208, i1209, i1208, i1209, i1366, 0) | =(matching1, 0)
f5123_0_safeMove_EQ(EOS(STATIC_5123(i1206)), i1208, i1209, i1208, i1209, i1366, i1384) → f5144_0_safeMove_Load(EOS(STATIC_5144(i1206)), i1208, i1209, i1208, i1209, i1366) | >(i1384, 0)
f5124_0_safeMove_EQ(EOS(STATIC_5124(i1206)), i1208, i1209, i1208, i1209, i1366, matching1) → f5151_0_safeMove_ConstantStackPush(EOS(STATIC_5151(i1206)), i1208, i1209, i1208, i1209, i1366) | =(matching1, 0)
f5144_0_safeMove_Load(EOS(STATIC_5144(i1206)), i1208, i1209, i1208, i1209, i1366) → f5158_0_safeMove_Load(EOS(STATIC_5158(i1206)), i1208, i1209, i1208, i1209, i1366, i1208)
f5151_0_safeMove_ConstantStackPush(EOS(STATIC_5151(i1206)), i1208, i1209, i1208, i1209, i1366) → f5635_0_safeMove_ConstantStackPush(EOS(STATIC_5635(i1206)), i1208, i1209, i1208, i1209, i1366)
f5158_0_safeMove_Load(EOS(STATIC_5158(i1206)), i1208, i1209, i1208, i1209, i1366, i1208) → f5179_0_safeMove_Load(EOS(STATIC_5179(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209)
f5179_0_safeMove_Load(EOS(STATIC_5179(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209) → f5191_0_safeMove_FieldAccess(EOS(STATIC_5191(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366)
f5191_0_safeMove_FieldAccess(EOS(STATIC_5191(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366) → f5207_0_safeMove_Load(EOS(STATIC_5207(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)))
f5207_0_safeMove_Load(EOS(STATIC_5207(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206))) → f5223_0_safeMove_ArrayAccess(EOS(STATIC_5223(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5223_0_safeMove_ArrayAccess(EOS(STATIC_5223(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5229_0_safeMove_ArrayAccess(EOS(STATIC_5229(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5223_0_safeMove_ArrayAccess(EOS(STATIC_5223(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5230_0_safeMove_ArrayAccess(EOS(STATIC_5230(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5229_0_safeMove_ArrayAccess(EOS(STATIC_5229(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5236_0_safeMove_InvokeMethod(EOS(STATIC_5236(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, i1415) | <(i1366, i1206)
f5230_0_safeMove_ArrayAccess(EOS(STATIC_5230(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5244_0__init__Load(EOS(STATIC_5244(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) | >=(i1366, i1206)
f5236_0_safeMove_InvokeMethod(EOS(STATIC_5236(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, i1415) → f5254_1_safeMove_InvokeMethod(f5254_0_wrongPos_Load(EOS(STATIC_5254(i1206)), i1208, i1209, i1366, i1415, i1208, i1209, i1366, i1415), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, i1415)
f5244_0__init__Load(EOS(STATIC_5244(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5275_0__init__InvokeMethod(EOS(STATIC_5275(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5254_0_wrongPos_Load(EOS(STATIC_5254(i1206)), i1208, i1209, i1366, i1415, i1208, i1209, i1366, i1415) → f5269_0_wrongPos_Load(EOS(STATIC_5269(i1206)), i1208, i1209, i1366, i1415, i1208, i1209, i1366, i1415)
f5275_0__init__InvokeMethod(EOS(STATIC_5275(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5284_0__init__Load(EOS(STATIC_5284(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5284_0__init__Load(EOS(STATIC_5284(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5323_0__init__InvokeMethod(EOS(STATIC_5323(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5323_0__init__InvokeMethod(EOS(STATIC_5323(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5331_0__init__Load(EOS(STATIC_5331(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5331_0__init__Load(EOS(STATIC_5331(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5345_0__init__InvokeMethod(EOS(STATIC_5345(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5345_0__init__InvokeMethod(EOS(STATIC_5345(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5352_0__init__Load(EOS(STATIC_5352(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5352_0__init__Load(EOS(STATIC_5352(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5368_0__init__InvokeMethod(EOS(STATIC_5368(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5368_0__init__InvokeMethod(EOS(STATIC_5368(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5376_0__init__Load(EOS(STATIC_5376(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5376_0__init__Load(EOS(STATIC_5376(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5392_0__init__InvokeMethod(EOS(STATIC_5392(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5392_0__init__InvokeMethod(EOS(STATIC_5392(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5401_0__init__Load(EOS(STATIC_5401(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5401_0__init__Load(EOS(STATIC_5401(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5416_0__init__Load(EOS(STATIC_5416(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5416_0__init__Load(EOS(STATIC_5416(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5432_0__init__FieldAccess(EOS(STATIC_5432(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5432_0__init__FieldAccess(EOS(STATIC_5432(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5450_0__init__Load(EOS(STATIC_5450(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5450_0__init__Load(EOS(STATIC_5450(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5467_0__init__InvokeMethod(EOS(STATIC_5467(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5467_0__init__InvokeMethod(EOS(STATIC_5467(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5512_0__init__StackPop(EOS(STATIC_5512(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5512_0__init__StackPop(EOS(STATIC_5512(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5540_0__init__Return(EOS(STATIC_5540(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5540_0__init__Return(EOS(STATIC_5540(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5598_0__init__Return(EOS(STATIC_5598(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5555_0_wrongPos_Return(EOS(STATIC_5555(i1539)), i1543, i1546, i1543, i1546, i1548, i1543, i1546, i1548, i1546, matching1) → f5556_0_wrongPos_Return(EOS(STATIC_5556(i1539)), i1543, i1546, i1543, i1546, i1548, i1543, i1546, i1548, i1546, 1) | =(matching1, 1)
f5556_0_wrongPos_Return(EOS(STATIC_5556(i1553)), i1555, i1556, i1555, i1556, i1557, i1555, i1556, i1557, i1558, matching1) → f5852_0_wrongPos_Return(EOS(STATIC_5852(i1553)), i1555, i1556, i1555, i1556, i1557, i1555, i1556, i1557, i1558, 1) | =(matching1, 1)
f5598_0__init__Return(EOS(STATIC_5598(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5618_0__init__Return(EOS(STATIC_5618(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5618_0__init__Return(EOS(STATIC_5618(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5645_0__init__Return(EOS(STATIC_5645(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5635_0_safeMove_ConstantStackPush(EOS(STATIC_5635(i1553)), i1555, i1556, i1555, i1556, i1557) → f5916_0_safeMove_ConstantStackPush(EOS(STATIC_5916(i1553)), i1555, i1556, i1555, i1556, i1557)
f5645_0__init__Return(EOS(STATIC_5645(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5665_0__init__Return(EOS(STATIC_5665(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5665_0__init__Return(EOS(STATIC_5665(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366) → f5683_0_safeMove_ArrayAccess(EOS(STATIC_5683(i1206)), i1208, i1209, i1208, i1209, i1366, i1208, i1209, i1366, java.lang.Object(ARRAY(i1206)), i1366)
f5851_0_wrongPos_Return(EOS(STATIC_5851(i1717)), i1721, i1723, i1721, i1723, i1725, i1721, i1723, i1725, i1727, matching1) → f5852_0_wrongPos_Return(EOS(STATIC_5852(i1717)), i1721, i1723, i1721, i1723, i1725, i1721, i1723, i1725, i1727, 0) | =(matching1, 0)
f5852_0_wrongPos_Return(EOS(STATIC_5852(i1731)), i1734, i1735, i1734, i1735, i1736, i1734, i1735, i1736, i1737, i1733) → f5882_0_safeMove_NE(EOS(STATIC_5882(i1731)), i1734, i1735, i1734, i1735, i1736, i1733)
f5882_0_safeMove_NE(EOS(STATIC_5882(i1731)), i1734, i1735, i1734, i1735, i1736, matching1) → f5901_0_safeMove_NE(EOS(STATIC_5901(i1731)), i1734, i1735, i1734, i1735, i1736, 1) | =(matching1, 1)
f5882_0_safeMove_NE(EOS(STATIC_5882(i1731)), i1734, i1735, i1734, i1735, i1736, matching1) → f5902_0_safeMove_NE(EOS(STATIC_5902(i1731)), i1734, i1735, i1734, i1735, i1736, 0) | =(matching1, 0)
f5891_0_wrongPos_Return(EOS(STATIC_5891(i1773)), i1777, i1779, i1777, i1779, i1781, i1777, i1779, i1781, i1783, matching1) → f5852_0_wrongPos_Return(EOS(STATIC_5852(i1773)), i1777, i1779, i1777, i1779, i1781, i1777, i1779, i1781, i1783, 1) | =(matching1, 1)
f5901_0_safeMove_NE(EOS(STATIC_5901(i1731)), i1734, i1735, i1734, i1735, i1736, matching1) → f5916_0_safeMove_ConstantStackPush(EOS(STATIC_5916(i1731)), i1734, i1735, i1734, i1735, i1736) | &&(>(1, 0), =(matching1, 1))
f5902_0_safeMove_NE(EOS(STATIC_5902(i1731)), i1734, i1735, i1734, i1735, i1736, matching1) → f5938_0_safeMove_ConstantStackPush(EOS(STATIC_5938(i1731)), i1734, i1735, i1734, i1735, i1736) | =(matching1, 0)
f5916_0_safeMove_ConstantStackPush(EOS(STATIC_5916(i1731)), i1734, i1735, i1734, i1735, i1736) → f5957_0_safeMove_Store(EOS(STATIC_5957(i1731)), i1734, i1735, i1734, i1735, i1736, 0)
f5938_0_safeMove_ConstantStackPush(EOS(STATIC_5938(i1731)), i1734, i1735, i1734, i1735, i1736) → f5982_0_safeMove_JMP(EOS(STATIC_5982(i1731)), i1734, i1735, i1734, i1735, i1736, 1)
f5957_0_safeMove_Store(EOS(STATIC_5957(i1731)), i1734, i1735, i1734, i1735, i1736, matching1) → f5992_0_safeMove_Inc(EOS(STATIC_5992(i1731)), i1734, i1735, i1734, i1735, 0, i1736) | =(matching1, 0)
f5982_0_safeMove_JMP(EOS(STATIC_5982(i1731)), i1734, i1735, i1734, i1735, i1736, matching1) → f5996_0_safeMove_Store(EOS(STATIC_5996(i1731)), i1734, i1735, i1734, i1735, i1736, 1) | =(matching1, 1)
f5992_0_safeMove_Inc(EOS(STATIC_5992(i1731)), i1734, i1735, i1734, i1735, matching1, i1736) → f6003_0_safeMove_JMP(EOS(STATIC_6003(i1731)), i1734, i1735, i1734, i1735, 0, +(i1736, 1)) | &&(>=(i1736, 0), =(matching1, 0))
f5996_0_safeMove_Store(EOS(STATIC_5996(i1731)), i1734, i1735, i1734, i1735, i1736, matching1) → f6014_0_safeMove_Inc(EOS(STATIC_6014(i1731)), i1734, i1735, i1734, i1735, 1, i1736) | =(matching1, 1)
f6003_0_safeMove_JMP(EOS(STATIC_6003(i1731)), i1734, i1735, i1734, i1735, matching1, i1823) → f6022_0_safeMove_Load(EOS(STATIC_6022(i1731)), i1734, i1735, i1734, i1735, 0, i1823) | =(matching1, 0)
f6014_0_safeMove_Inc(EOS(STATIC_6014(i1731)), i1734, i1735, i1734, i1735, matching1, i1736) → f6031_0_safeMove_JMP(EOS(STATIC_6031(i1731)), i1734, i1735, i1734, i1735, 1, +(i1736, 1)) | &&(>=(i1736, 0), =(matching1, 1))
f6022_0_safeMove_Load(EOS(STATIC_6022(i1731)), i1734, i1735, i1734, i1735, matching1, i1823) → f5049_0_safeMove_Load(EOS(STATIC_5049(i1731)), i1734, i1735, i1734, i1735, 0, i1823) | =(matching1, 0)
f6031_0_safeMove_JMP(EOS(STATIC_6031(i1731)), i1734, i1735, i1734, i1735, matching1, i1831) → f6045_0_safeMove_Load(EOS(STATIC_6045(i1731)), i1734, i1735, i1734, i1735, 1, i1831) | =(matching1, 1)
f6045_0_safeMove_Load(EOS(STATIC_6045(i1731)), i1734, i1735, i1734, i1735, matching1, i1831) → f5049_0_safeMove_Load(EOS(STATIC_5049(i1731)), i1734, i1735, i1734, i1735, 1, i1831) | =(matching1, 1)
f3913_0_search_ConstantStackPush(EOS(STATIC_3913(i962)), i964, i964) → f3918_0_search_Store(EOS(STATIC_3918(i962)), i964, i964, 0)
f3918_0_search_Store(EOS(STATIC_3918(i962)), i964, i964, matching1) → f3924_0_search_Load(EOS(STATIC_3924(i962)), i964, i964, 0) | =(matching1, 0)
f3924_0_search_Load(EOS(STATIC_3924(i962)), i964, i964, matching1) → f3928_0_search_FieldAccess(EOS(STATIC_3928(i962)), i964, i964, 0, i964) | =(matching1, 0)
f3928_0_search_FieldAccess(EOS(STATIC_3928(i962)), i964, i964, matching1, i964) → f3932_0_search_LT(EOS(STATIC_3932(i962)), i964, i964, 0, i964, i962) | =(matching1, 0)
f3932_0_search_LT(EOS(STATIC_3932(i962)), i964, i964, matching1, i964, i962) → f3937_0_search_LT(EOS(STATIC_3937(i962)), i964, i964, 0, i964, i962) | =(matching1, 0)
f3932_0_search_LT(EOS(STATIC_3932(i962)), i964, i964, matching1, i964, i962) → f3938_0_search_LT(EOS(STATIC_3938(i962)), i964, i964, 0, i964, i962) | =(matching1, 0)
f3937_0_search_LT(EOS(STATIC_3937(i962)), i964, i964, matching1, i964, i962) → f3947_0_search_ConstantStackPush(EOS(STATIC_3947(i962)), i964, i964, 0) | &&(<(i964, i962), =(matching1, 0))
f3938_0_search_LT(EOS(STATIC_3938(i962)), i964, i964, matching1, i964, i962) → f3954_0_search_InvokeMethod(EOS(STATIC_3954(i962)), i964, 0) | &&(>=(i964, i962), =(matching1, 0))
f3947_0_search_ConstantStackPush(EOS(STATIC_3947(i962)), i964, i964, matching1) → f3959_0_search_Store(EOS(STATIC_3959(i962)), i964, i964, 0, 0) | =(matching1, 0)
f3954_0_search_InvokeMethod(EOS(STATIC_3954(i962)), i964, matching1) → f3965_1_search_InvokeMethod(f3965_0_displayChessboard_ConstantStackPush(EOS(STATIC_3965(i962))), i964, 0) | =(matching1, 0)
f3959_0_search_Store(EOS(STATIC_3959(i962)), i964, i964, matching1, matching2) → f3970_0_search_Load(EOS(STATIC_3970(i962)), i964, i964, 0, 0) | &&(=(matching1, 0), =(matching2, 0))
f3965_0_displayChessboard_ConstantStackPush(EOS(STATIC_3965(i962))) → f3974_0_displayChessboard_ConstantStackPush(EOS(STATIC_3974(i962)))
f3970_0_search_Load(EOS(STATIC_3970(i962)), i964, i964, matching1, matching2) → f4551_0_search_Load(EOS(STATIC_4551(i962)), i964, i964, 0, 0) | &&(=(matching1, 0), =(matching2, 0))
f4297_0_displayChessboard_Return(EOS(STATIC_4297(i1096)), i964, matching1) → f4312_0_search_FieldAccess(EOS(STATIC_4312(i1096)), i964, 0) | =(matching1, 0)
f4312_0_search_FieldAccess(EOS(STATIC_4312(i1096)), i964, matching1) → f4329_0_search_ConstantStackPush(EOS(STATIC_4329(i1096)), i964, 0) | =(matching1, 0)
f4329_0_search_ConstantStackPush(EOS(STATIC_4329(i1096)), i964, matching1) → f4347_0_search_IntArithmetic(EOS(STATIC_4347(i1096)), i964, 0) | =(matching1, 0)
f4347_0_search_IntArithmetic(EOS(STATIC_4347(i1096)), i964, matching1) → f4360_0_search_FieldAccess(EOS(STATIC_4360(i1096)), i964, 0) | =(matching1, 0)
f4360_0_search_FieldAccess(EOS(STATIC_4360(i1096)), i964, matching1) → f4372_0_search_JMP(EOS(STATIC_4372(i1096)), i964, 0) | =(matching1, 0)
f4372_0_search_JMP(EOS(STATIC_4372(i1096)), i964, matching1) → f4383_0_search_Load(EOS(STATIC_4383(i1096)), i964, 0) | =(matching1, 0)
f4383_0_search_Load(EOS(STATIC_4383(i1096)), i964, matching1) → f4400_0_search_Return(EOS(STATIC_4400(i1096)), i964, 0) | =(matching1, 0)
f4551_0_search_Load(EOS(STATIC_4551(i1235)), i1237, i1237, matching1, i1238) → f4840_0_search_Load(EOS(STATIC_4840(i1235)), i1237, i1237, 0, i1238) | =(matching1, 0)
f4705_0_displayChessboard_Return(EOS(STATIC_4705(i1272)), i964, matching1) → f4297_0_displayChessboard_Return(EOS(STATIC_4297(i1272)), i964, 0) | =(matching1, 0)
f4840_0_search_Load(EOS(STATIC_4840(i1308)), i1310, i1310, matching1, i1311) → f4872_0_search_NE(EOS(STATIC_4872(i1308)), i1310, i1310, 0, i1311, 0) | =(matching1, 0)
f4872_0_search_NE(EOS(STATIC_4872(i1308)), i1310, i1310, matching1, i1311, matching2) → f4877_0_search_Load(EOS(STATIC_4877(i1308)), i1310, i1310, 0, i1311) | &&(=(matching1, 0), =(matching2, 0))
f4877_0_search_Load(EOS(STATIC_4877(i1308)), i1310, i1310, matching1, i1311) → f4883_0_search_FieldAccess(EOS(STATIC_4883(i1308)), i1310, i1310, 0, i1311, i1311) | =(matching1, 0)
f4883_0_search_FieldAccess(EOS(STATIC_4883(i1308)), i1310, i1310, matching1, i1311, i1311) → f4889_0_search_GE(EOS(STATIC_4889(i1308)), i1310, i1310, 0, i1311, i1311, i1308) | =(matching1, 0)
f4889_0_search_GE(EOS(STATIC_4889(i1308)), i1310, i1310, matching1, i1311, i1311, i1308) → f4911_0_search_GE(EOS(STATIC_4911(i1308)), i1310, i1310, 0, i1311, i1311, i1308) | =(matching1, 0)
f4889_0_search_GE(EOS(STATIC_4889(i1308)), i1310, i1310, matching1, i1311, i1311, i1308) → f4912_0_search_GE(EOS(STATIC_4912(i1308)), i1310, i1310, 0, i1311, i1311, i1308) | =(matching1, 0)
f4911_0_search_GE(EOS(STATIC_4911(i1308)), i1310, i1310, matching1, i1311, i1311, i1308) → f4918_0_search_Load(EOS(STATIC_4918(i1308)), i1310, 0) | &&(>=(i1311, i1308), =(matching1, 0))
f4912_0_search_GE(EOS(STATIC_4912(i1308)), i1310, i1310, matching1, i1311, i1311, i1308) → f4924_0_search_Load(EOS(STATIC_4924(i1308)), i1310, i1310, 0, i1311) | &&(<(i1311, i1308), =(matching1, 0))
f4918_0_search_Load(EOS(STATIC_4918(i1308)), i1310, matching1) → f4932_0_search_Return(EOS(STATIC_4932(i1308)), i1310, 0) | =(matching1, 0)
f4924_0_search_Load(EOS(STATIC_4924(i1308)), i1310, i1310, matching1, i1311) → f4939_0_search_Load(EOS(STATIC_4939(i1308)), i1310, i1310, 0, i1311, i1310) | =(matching1, 0)
f4939_0_search_Load(EOS(STATIC_4939(i1308)), i1310, i1310, matching1, i1311, i1310) → f4953_0_search_InvokeMethod(EOS(STATIC_4953(i1308)), i1310, i1310, 0, i1311, i1310, i1311) | =(matching1, 0)
f4953_0_search_InvokeMethod(EOS(STATIC_4953(i1308)), i1310, i1310, matching1, i1311, i1310, i1311) → f4976_1_search_InvokeMethod(f4976_0_safeMove_ConstantStackPush(EOS(STATIC_4976(i1308)), i1310, i1311, i1310, i1311), i1310, i1310, 0, i1311, i1310, i1311) | =(matching1, 0)
f5168_0_safeMove_Return(EOS(STATIC_5168(i1391)), i1395, i1395, matching1, i1397, i1395, i1397, i1387) → f5169_0_safeMove_Return(EOS(STATIC_5169(i1391)), i1395, i1395, 0, i1397, i1395, i1397, i1387) | =(matching1, 0)
f5169_0_safeMove_Return(EOS(STATIC_5169(i1398)), i1401, i1401, matching1, i1402, i1401, i1402, i1400) → f5194_0_search_EQ(EOS(STATIC_5194(i1398)), i1401, i1401, 0, i1402, i1400) | =(matching1, 0)
f5194_0_search_EQ(EOS(STATIC_5194(i1398)), i1401, i1401, matching1, i1402, i1410) → f5200_0_search_EQ(EOS(STATIC_5200(i1398)), i1401, i1401, 0, i1402, i1410) | =(matching1, 0)
f5194_0_search_EQ(EOS(STATIC_5194(i1398)), i1401, i1401, matching1, i1402, matching2) → f5201_0_search_EQ(EOS(STATIC_5201(i1398)), i1401, i1401, 0, i1402, 0) | &&(=(matching1, 0), =(matching2, 0))
f5200_0_search_EQ(EOS(STATIC_5200(i1398)), i1401, i1401, matching1, i1402, i1410) → f5209_0_search_FieldAccess(EOS(STATIC_5209(i1398)), i1401, i1401, i1402) | &&(>(i1410, 0), =(matching1, 0))
f5201_0_search_EQ(EOS(STATIC_5201(i1398)), i1401, i1401, matching1, i1402, matching2) → f5219_0_search_Inc(EOS(STATIC_5219(i1398)), i1401, i1401, 0, i1402) | &&(=(matching1, 0), =(matching2, 0))
f5209_0_search_FieldAccess(EOS(STATIC_5209(i1398)), i1401, i1401, i1402) → f5224_0_search_Load(EOS(STATIC_5224(i1398)), i1401, i1401, i1402, java.lang.Object(ARRAY(i1398)))
f5219_0_search_Inc(EOS(STATIC_5219(i1398)), i1401, i1401, matching1, i1402) → f5234_0_search_JMP(EOS(STATIC_5234(i1398)), i1401, i1401, 0, +(i1402, 1)) | &&(>=(i1402, 0), =(matching1, 0))
f5224_0_search_Load(EOS(STATIC_5224(i1398)), i1401, i1401, i1402, java.lang.Object(ARRAY(i1398))) → f5238_0_search_Load(EOS(STATIC_5238(i1398)), i1401, i1401, i1402, java.lang.Object(ARRAY(i1398)), i1401)
f5234_0_search_JMP(EOS(STATIC_5234(i1398)), i1401, i1401, matching1, i1414) → f5250_0_search_Load(EOS(STATIC_5250(i1398)), i1401, i1401, 0, i1414) | =(matching1, 0)
f5238_0_search_Load(EOS(STATIC_5238(i1398)), i1401, i1401, i1402, java.lang.Object(ARRAY(i1398)), i1401) → f5257_0_search_ArrayAccess(EOS(STATIC_5257(i1398)), i1401, i1401, i1402, java.lang.Object(ARRAY(i1398)), i1401, i1402)
f5250_0_search_Load(EOS(STATIC_5250(i1398)), i1401, i1401, matching1, i1414) → f4840_0_search_Load(EOS(STATIC_4840(i1398)), i1401, i1401, 0, i1414) | =(matching1, 0)
f5257_0_search_ArrayAccess(EOS(STATIC_5257(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5261_0_search_ArrayAccess(EOS(STATIC_5261(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f5257_0_search_ArrayAccess(EOS(STATIC_5257(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5262_0_search_ArrayAccess(EOS(STATIC_5262(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5261_0_search_ArrayAccess(EOS(STATIC_5261(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5271_0__init__Load(EOS(STATIC_5271(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) | <=(i1422, -1)
f5262_0_search_ArrayAccess(EOS(STATIC_5262(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5277_0_search_ArrayAccess(EOS(STATIC_5277(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5262_0_search_ArrayAccess(EOS(STATIC_5262(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5278_0_search_ArrayAccess(EOS(STATIC_5278(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5271_0__init__Load(EOS(STATIC_5271(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5320_0__init__InvokeMethod(EOS(STATIC_5320(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f5277_0_search_ArrayAccess(EOS(STATIC_5277(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5286_0_search_Load(EOS(STATIC_5286(i1398)), i1423, i1423, i1402) | <(i1423, i1398)
f5278_0_search_ArrayAccess(EOS(STATIC_5278(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5299_0__init__Load(EOS(STATIC_5299(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) | >=(i1423, i1398)
f5286_0_search_Load(EOS(STATIC_5286(i1398)), i1423, i1423, i1402) → f5327_0_search_ConstantStackPush(EOS(STATIC_5327(i1398)), i1423, i1423, i1402, i1423)
f5299_0__init__Load(EOS(STATIC_5299(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5359_0__init__InvokeMethod(EOS(STATIC_5359(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5320_0__init__InvokeMethod(EOS(STATIC_5320(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5341_0__init__Load(EOS(STATIC_5341(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f5327_0_search_ConstantStackPush(EOS(STATIC_5327(i1398)), i1423, i1423, i1402, i1423) → f5349_0_search_IntArithmetic(EOS(STATIC_5349(i1398)), i1423, i1423, i1402, i1423, 1)
f5341_0__init__Load(EOS(STATIC_5341(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5388_0__init__InvokeMethod(EOS(STATIC_5388(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f5349_0_search_IntArithmetic(EOS(STATIC_5349(i1398)), i1423, i1423, i1402, i1423, matching1) → f5372_0_search_InvokeMethod(EOS(STATIC_5372(i1398)), i1423, i1423, i1402, +(i1423, 1)) | &&(>=(i1423, 0), =(matching1, 1))
f5359_0__init__InvokeMethod(EOS(STATIC_5359(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5379_0__init__Load(EOS(STATIC_5379(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5372_0_search_InvokeMethod(EOS(STATIC_5372(i1398)), i1423, i1423, i1402, i1459) → f5396_1_search_InvokeMethod(f5396_0_search_ConstantStackPush(EOS(STATIC_5396(i1398)), i1459, i1459), i1423, i1423, i1402, i1459)
f5379_0__init__Load(EOS(STATIC_5379(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5438_0__init__InvokeMethod(EOS(STATIC_5438(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5388_0__init__InvokeMethod(EOS(STATIC_5388(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5422_0__init__Load(EOS(STATIC_5422(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f5396_0_search_ConstantStackPush(EOS(STATIC_5396(i1398)), i1459, i1459) → f5428_0_search_ConstantStackPush(EOS(STATIC_5428(i1398)), i1459, i1459)
f5422_0__init__Load(EOS(STATIC_5422(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5471_0__init__InvokeMethod(EOS(STATIC_5471(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f5438_0__init__InvokeMethod(EOS(STATIC_5438(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5462_0__init__Load(EOS(STATIC_5462(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5462_0__init__Load(EOS(STATIC_5462(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5596_0__init__InvokeMethod(EOS(STATIC_5596(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5471_0__init__InvokeMethod(EOS(STATIC_5471(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5535_0__init__Load(EOS(STATIC_5535(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f5535_0__init__Load(EOS(STATIC_5535(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5650_0__init__InvokeMethod(EOS(STATIC_5650(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f5544_0_search_Return(EOS(STATIC_5544(i1521)), i1423, i1423, i1402, i1523, matching1) → f5571_0_search_Return(EOS(STATIC_5571(i1521)), i1423, i1423, i1402, i1523, 0) | =(matching1, 0)
f5570_0_search_Return(EOS(STATIC_5570(i1528)), i1423, i1423, i1402, i1532, matching1) → f5571_0_search_Return(EOS(STATIC_5571(i1528)), i1423, i1423, i1402, i1532, 0) | =(matching1, 0)
f5571_0_search_Return(EOS(STATIC_5571(i1562)), i1423, i1423, i1402, i1564, matching1) → f5624_0_search_Store(EOS(STATIC_5624(i1562)), i1423, i1423, i1402, 0) | =(matching1, 0)
f5596_0__init__InvokeMethod(EOS(STATIC_5596(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5640_0__init__Load(EOS(STATIC_5640(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5624_0_search_Store(EOS(STATIC_5624(i1562)), i1423, i1423, i1402, matching1) → f5660_0_search_Inc(EOS(STATIC_5660(i1562)), i1423, i1423, 0, i1402) | =(matching1, 0)
f5640_0__init__Load(EOS(STATIC_5640(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5714_0__init__InvokeMethod(EOS(STATIC_5714(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5650_0__init__InvokeMethod(EOS(STATIC_5650(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5673_0__init__Load(EOS(STATIC_5673(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f5660_0_search_Inc(EOS(STATIC_5660(i1562)), i1423, i1423, matching1, i1402) → f5701_0_search_JMP(EOS(STATIC_5701(i1562)), i1423, i1423, 0, +(i1402, 1)) | &&(>=(i1402, 0), =(matching1, 0))
f5673_0__init__Load(EOS(STATIC_5673(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5775_0__init__InvokeMethod(EOS(STATIC_5775(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f5701_0_search_JMP(EOS(STATIC_5701(i1562)), i1423, i1423, matching1, i1631) → f5738_0_search_Load(EOS(STATIC_5738(i1562)), i1423, i1423, 0, i1631) | =(matching1, 0)
f5714_0__init__InvokeMethod(EOS(STATIC_5714(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5752_0__init__Load(EOS(STATIC_5752(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5738_0_search_Load(EOS(STATIC_5738(i1562)), i1423, i1423, matching1, i1631) → f4840_0_search_Load(EOS(STATIC_4840(i1562)), i1423, i1423, 0, i1631) | =(matching1, 0)
f5752_0__init__Load(EOS(STATIC_5752(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5807_0__init__InvokeMethod(EOS(STATIC_5807(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5775_0__init__InvokeMethod(EOS(STATIC_5775(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5798_0__init__Load(EOS(STATIC_5798(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f5789_0_safeMove_ArrayAccess(EOS(STATIC_5789(i1679)), i1683, i1683, matching1, i1685, i1683, i1685, i1683, i1685, i1675, i1683, i1685, i1675, java.lang.Object(ARRAY(i1679)), i1675) → f5816_0_search_InvokeMethod(EOS(STATIC_5816(i1679)), i1683, i1683, 0, i1685, i1683, i1685) | =(matching1, 0)
f5798_0__init__Load(EOS(STATIC_5798(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5836_0__init__Load(EOS(STATIC_5836(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f5807_0__init__InvokeMethod(EOS(STATIC_5807(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5859_0__init__Load(EOS(STATIC_5859(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5836_0__init__Load(EOS(STATIC_5836(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5893_0__init__FieldAccess(EOS(STATIC_5893(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f5859_0__init__Load(EOS(STATIC_5859(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5908_0__init__Load(EOS(STATIC_5908(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5893_0__init__FieldAccess(EOS(STATIC_5893(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5962_0__init__Load(EOS(STATIC_5962(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f5908_0__init__Load(EOS(STATIC_5908(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f5986_0__init__FieldAccess(EOS(STATIC_5986(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5962_0__init__Load(EOS(STATIC_5962(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f5999_0__init__InvokeMethod(EOS(STATIC_5999(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f5986_0__init__FieldAccess(EOS(STATIC_5986(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f6009_0__init__Load(EOS(STATIC_6009(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f5993_0_search_InvokeMethod(EOS(STATIC_5993(i1815)), i1423, i1423, i1402, i1819, i1819, matching1, i1811, i1819, i1811) → f6016_0_search_InvokeMethod(EOS(STATIC_6016(i1815)), i1423, i1423, i1402, i1819) | =(matching1, 0)
f5999_0__init__InvokeMethod(EOS(STATIC_5999(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f6025_0__init__StackPop(EOS(STATIC_6025(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f6009_0__init__Load(EOS(STATIC_6009(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f6034_0__init__InvokeMethod(EOS(STATIC_6034(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f6016_0_search_InvokeMethod(EOS(STATIC_6016(i1815)), i1423, i1423, i1402, i1819) → f6156_0_search_InvokeMethod(EOS(STATIC_6156(i1815)), i1423, i1423, i1402, i1819)
f6025_0__init__StackPop(EOS(STATIC_6025(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f6051_0__init__Return(EOS(STATIC_6051(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f6034_0__init__InvokeMethod(EOS(STATIC_6034(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f6057_0__init__StackPop(EOS(STATIC_6057(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f6051_0__init__Return(EOS(STATIC_6051(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f6120_0__init__Return(EOS(STATIC_6120(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f6057_0__init__StackPop(EOS(STATIC_6057(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f6131_0__init__Return(EOS(STATIC_6131(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f6120_0__init__Return(EOS(STATIC_6120(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f6140_0__init__Return(EOS(STATIC_6140(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f6131_0__init__Return(EOS(STATIC_6131(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f6146_0__init__Return(EOS(STATIC_6146(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f6136_0_search_InvokeMethod(EOS(STATIC_6136(i1853)), i1423, i1423, i1402, i1857, i1857, i1849, i1848) → f6156_0_search_InvokeMethod(EOS(STATIC_6156(i1853)), i1423, i1423, i1402, i1857)
f6140_0__init__Return(EOS(STATIC_6140(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f6161_0__init__Return(EOS(STATIC_6161(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f6146_0__init__Return(EOS(STATIC_6146(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f6166_0__init__Return(EOS(STATIC_6166(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f6156_0_search_InvokeMethod(EOS(STATIC_6156(i1853)), i1423, i1423, i1402, i1857) → f6388_0_search_InvokeMethod(EOS(STATIC_6388(i1853)), i1423, i1423, i1402, i1857)
f6161_0__init__Return(EOS(STATIC_6161(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f6187_0__init__Return(EOS(STATIC_6187(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f6166_0__init__Return(EOS(STATIC_6166(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f6190_0__init__Return(EOS(STATIC_6190(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f6187_0__init__Return(EOS(STATIC_6187(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402) → f6235_0_search_ArrayAccess(EOS(STATIC_6235(i1398)), i1422, i1422, i1402, java.lang.Object(ARRAY(i1398)), i1422, i1402)
f6190_0__init__Return(EOS(STATIC_6190(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f6238_0__init__Return(EOS(STATIC_6238(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f6192_0_displayChessboard_ArrayAccess(EOS(STATIC_6192(i1875)), i964, matching1, i1869, i1870, java.lang.Object(ARRAY(i1875)), i1869) → f6241_0_search_InvokeMethod(EOS(STATIC_6241(i1875)), i964, 0) | =(matching1, 0)
f6238_0__init__Return(EOS(STATIC_6238(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402) → f6255_0_search_ArrayAccess(EOS(STATIC_6255(i1398)), i1423, i1423, i1402, java.lang.Object(ARRAY(i1398)), i1423, i1402)
f6249_0_search_InvokeMethod(EOS(STATIC_6249(i1891)), i1423, i1423, i1402, i1895, i1895, i1887, i1886) → f6136_0_search_InvokeMethod(EOS(STATIC_6136(i1891)), i1423, i1423, i1402, i1895, i1895, i1887, i1886)
f6374_0_search_InvokeMethod(EOS(STATIC_6374(i1930)), i1423, i1423, i1402, i1934, matching1) → f6388_0_search_InvokeMethod(EOS(STATIC_6388(i1930)), i1423, i1423, i1402, i1934) | =(matching1, 0)
f6378_0_search_ArrayAccess(EOS(STATIC_6378(i1947)), i1423, i1423, i1402, i1951, i1951, i1943, java.lang.Object(ARRAY(i1947)), i1951, i1943) → f6397_0_search_InvokeMethod(EOS(STATIC_6397(i1947)), i1423, i1423, i1402, i1951)
f6388_0_search_InvokeMethod(EOS(STATIC_6388(i1930)), i1423, i1423, i1402, i1934) → f6397_0_search_InvokeMethod(EOS(STATIC_6397(i1930)), i1423, i1423, i1402, i1934)
f6452_0_search_InvokeMethod(EOS(STATIC_6452(i1979)), i1423, i1423, i1402, i1983, i1983, i1975, i1974) → f6136_0_search_InvokeMethod(EOS(STATIC_6136(i1979)), i1423, i1423, i1402, i1983, i1983, i1975, i1974)
f5428_0_search_ConstantStackPush(EOS(STATIC_5428(i1398)), i1459, i1459) → f3913_0_search_ConstantStackPush(EOS(STATIC_3913(i1398)), i1459, i1459)
f5297_0_wrongPos_Load(EOS(STATIC_5297(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431) → f5317_0_wrongPos_Load(EOS(STATIC_5317(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1428)
f5317_0_wrongPos_Load(EOS(STATIC_5317(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1428) → f5326_0_wrongPos_EQ(EOS(STATIC_5326(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1428, i1430)
f5326_0_wrongPos_EQ(EOS(STATIC_5326(i1426)), i1430, i1429, i1430, i1431, i1430, i1429, i1430, i1431, i1430, i1430) → f5334_0_wrongPos_EQ(EOS(STATIC_5334(i1426)), i1430, i1429, i1430, i1431, i1430, i1429, i1430, i1431, i1430, i1430)
f5326_0_wrongPos_EQ(EOS(STATIC_5326(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1428, i1430) → f5335_0_wrongPos_EQ(EOS(STATIC_5335(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1428, i1430)
f5334_0_wrongPos_EQ(EOS(STATIC_5334(i1426)), i1430, i1429, i1430, i1431, i1430, i1429, i1430, i1431, i1430, i1430) → f5339_0_wrongPos_ConstantStackPush(EOS(STATIC_5339(i1426)), i1430, i1429, i1430, i1431)
f5335_0_wrongPos_EQ(EOS(STATIC_5335(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1428, i1430) → f5347_0_wrongPos_Load(EOS(STATIC_5347(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431) | !(=(i1428, i1430))
f5339_0_wrongPos_ConstantStackPush(EOS(STATIC_5339(i1426)), i1430, i1429, i1430, i1431) → f5608_0_wrongPos_ConstantStackPush(EOS(STATIC_5608(i1426)), i1430, i1429, i1430, i1431)
f5347_0_wrongPos_Load(EOS(STATIC_5347(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431) → f5363_0_wrongPos_Load(EOS(STATIC_5363(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1429)
f5363_0_wrongPos_Load(EOS(STATIC_5363(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1429) → f5378_0_wrongPos_EQ(EOS(STATIC_5378(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1429, i1431)
f5378_0_wrongPos_EQ(EOS(STATIC_5378(i1426)), i1428, i1431, i1430, i1431, i1428, i1431, i1430, i1431, i1431, i1431) → f5393_0_wrongPos_EQ(EOS(STATIC_5393(i1426)), i1428, i1431, i1430, i1431, i1428, i1431, i1430, i1431, i1431, i1431)
f5378_0_wrongPos_EQ(EOS(STATIC_5378(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1429, i1431) → f5394_0_wrongPos_EQ(EOS(STATIC_5394(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1429, i1431)
f5393_0_wrongPos_EQ(EOS(STATIC_5393(i1426)), i1428, i1431, i1430, i1431, i1428, i1431, i1430, i1431, i1431, i1431) → f5420_0_wrongPos_ConstantStackPush(EOS(STATIC_5420(i1426)), i1428, i1431, i1430, i1431)
f5394_0_wrongPos_EQ(EOS(STATIC_5394(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1429, i1431) → f5426_0_wrongPos_Load(EOS(STATIC_5426(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431) | !(=(i1429, i1431))
f5420_0_wrongPos_ConstantStackPush(EOS(STATIC_5420(i1426)), i1428, i1431, i1430, i1431) → f5434_0_wrongPos_JMP(EOS(STATIC_5434(i1426)), i1428, i1431, i1430, i1431, 1)
f5426_0_wrongPos_Load(EOS(STATIC_5426(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431) → f5442_0_wrongPos_Load(EOS(STATIC_5442(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1428)
f5434_0_wrongPos_JMP(EOS(STATIC_5434(i1426)), i1428, i1431, i1430, i1431, matching1) → f5454_0_wrongPos_Return(EOS(STATIC_5454(i1426)), i1428, i1431, i1430, i1431, 1) | =(matching1, 1)
f5442_0_wrongPos_Load(EOS(STATIC_5442(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1428) → f5460_0_wrongPos_IntArithmetic(EOS(STATIC_5460(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1428, i1430)
f5460_0_wrongPos_IntArithmetic(EOS(STATIC_5460(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1428, i1430) → f5482_0_wrongPos_Load(EOS(STATIC_5482(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, -(i1428, i1430)) | >=(i1430, 0)
f5482_0_wrongPos_Load(EOS(STATIC_5482(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1513) → f5533_0_wrongPos_Load(EOS(STATIC_5533(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1513, i1429)
f5533_0_wrongPos_Load(EOS(STATIC_5533(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1513, i1429) → f5542_0_wrongPos_IntArithmetic(EOS(STATIC_5542(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1513, i1429, i1431)
f5542_0_wrongPos_IntArithmetic(EOS(STATIC_5542(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1513, i1429, i1431) → f5559_0_wrongPos_EQ(EOS(STATIC_5559(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1513, -(i1429, i1431)) | >=(i1429, 0)
f5559_0_wrongPos_EQ(EOS(STATIC_5559(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1561, i1561) → f5589_0_wrongPos_EQ(EOS(STATIC_5589(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1561, i1561)
f5559_0_wrongPos_EQ(EOS(STATIC_5559(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1513, i1561) → f5590_0_wrongPos_EQ(EOS(STATIC_5590(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1513, i1561)
f5589_0_wrongPos_EQ(EOS(STATIC_5589(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1561, i1561) → f5608_0_wrongPos_ConstantStackPush(EOS(STATIC_5608(i1426)), i1428, i1429, i1430, i1431)
f5590_0_wrongPos_EQ(EOS(STATIC_5590(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431, i1513, i1561) → f5615_0_wrongPos_Load(EOS(STATIC_5615(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431) | !(=(i1513, i1561))
f5608_0_wrongPos_ConstantStackPush(EOS(STATIC_5608(i1426)), i1428, i1429, i1430, i1431) → f5782_0_wrongPos_ConstantStackPush(EOS(STATIC_5782(i1426)), i1428, i1429, i1430, i1431)
f5615_0_wrongPos_Load(EOS(STATIC_5615(i1426)), i1428, i1429, i1430, i1431, i1428, i1429, i1430, i1431) → f5639_0_wrongPos_Load(EOS(STATIC_5639(i1426)), i1428, i1429, i1430, i1431, i1429, i1430, i1431, i1428)
f5639_0_wrongPos_Load(EOS(STATIC_5639(i1426)), i1428, i1429, i1430, i1431, i1429, i1430, i1431, i1428) → f5656_0_wrongPos_IntArithmetic(EOS(STATIC_5656(i1426)), i1428, i1429, i1430, i1431, i1429, i1431, i1428, i1430)
f5656_0_wrongPos_IntArithmetic(EOS(STATIC_5656(i1426)), i1428, i1429, i1430, i1431, i1429, i1431, i1428, i1430) → f5672_0_wrongPos_Load(EOS(STATIC_5672(i1426)), i1428, i1429, i1430, i1431, i1429, i1431, -(i1428, i1430)) | >=(i1430, 0)
f5672_0_wrongPos_Load(EOS(STATIC_5672(i1426)), i1428, i1429, i1430, i1431, i1429, i1431, i1605) → f5710_0_wrongPos_Load(EOS(STATIC_5710(i1426)), i1428, i1429, i1430, i1431, i1429, i1605, i1431)
f5710_0_wrongPos_Load(EOS(STATIC_5710(i1426)), i1428, i1429, i1430, i1431, i1429, i1605, i1431) → f5721_0_wrongPos_IntArithmetic(EOS(STATIC_5721(i1426)), i1428, i1429, i1430, i1431, i1605, i1431, i1429)
f5721_0_wrongPos_IntArithmetic(EOS(STATIC_5721(i1426)), i1428, i1429, i1430, i1431, i1605, i1431, i1429) → f5733_0_wrongPos_NE(EOS(STATIC_5733(i1426)), i1428, i1429, i1430, i1431, i1605, -(i1431, i1429)) | >=(i1429, 0)
f5733_0_wrongPos_NE(EOS(STATIC_5733(i1426)), i1428, i1429, i1430, i1431, i1605, i1656) → f5749_0_wrongPos_NE(EOS(STATIC_5749(i1426)), i1428, i1429, i1430, i1431, i1605, i1656)
f5733_0_wrongPos_NE(EOS(STATIC_5733(i1426)), i1428, i1429, i1430, i1431, i1656, i1656) → f5750_0_wrongPos_NE(EOS(STATIC_5750(i1426)), i1428, i1429, i1430, i1431, i1656, i1656)
f5749_0_wrongPos_NE(EOS(STATIC_5749(i1426)), i1428, i1429, i1430, i1431, i1605, i1656) → f5772_0_wrongPos_ConstantStackPush(EOS(STATIC_5772(i1426)), i1428, i1429, i1430, i1431) | !(=(i1605, i1656))
f5750_0_wrongPos_NE(EOS(STATIC_5750(i1426)), i1428, i1429, i1430, i1431, i1656, i1656) → f5782_0_wrongPos_ConstantStackPush(EOS(STATIC_5782(i1426)), i1428, i1429, i1430, i1431)
f5772_0_wrongPos_ConstantStackPush(EOS(STATIC_5772(i1426)), i1428, i1429, i1430, i1431) → f5788_0_wrongPos_Return(EOS(STATIC_5788(i1426)), i1428, i1429, i1430, i1431, 0)
f5782_0_wrongPos_ConstantStackPush(EOS(STATIC_5782(i1426)), i1428, i1429, i1430, i1431) → f5794_0_wrongPos_JMP(EOS(STATIC_5794(i1426)), i1428, i1429, i1430, i1431, 1)
f5794_0_wrongPos_JMP(EOS(STATIC_5794(i1426)), i1428, i1429, i1430, i1431, matching1) → f5815_0_wrongPos_Return(EOS(STATIC_5815(i1426)), i1428, i1429, i1430, i1431, 1) | =(matching1, 1)
f4001_0_displayChessboard_ConstantStackPush(EOS(STATIC_4001(i994))) → f4008_0_displayChessboard_Store(EOS(STATIC_4008(i994)), 0)
f4008_0_displayChessboard_Store(EOS(STATIC_4008(i994)), matching1) → f4016_0_displayChessboard_Load(EOS(STATIC_4016(i994)), 0) | =(matching1, 0)
f4016_0_displayChessboard_Load(EOS(STATIC_4016(i994)), matching1) → f4236_0_displayChessboard_Load(EOS(STATIC_4236(i994)), 0) | =(matching1, 0)
f4236_0_displayChessboard_Load(EOS(STATIC_4236(i1068)), i1069) → f4334_0_displayChessboard_Load(EOS(STATIC_4334(i1068)), i1069)
f4334_0_displayChessboard_Load(EOS(STATIC_4334(i1151)), i1152) → f4416_0_displayChessboard_Load(EOS(STATIC_4416(i1151)), i1152)
f4416_0_displayChessboard_Load(EOS(STATIC_4416(i1189)), i1190) → f4591_0_displayChessboard_Load(EOS(STATIC_4591(i1189)), i1190)
f4591_0_displayChessboard_Load(EOS(STATIC_4591(i1246)), i1247) → f4604_0_displayChessboard_FieldAccess(EOS(STATIC_4604(i1246)), i1247, i1247)
f4604_0_displayChessboard_FieldAccess(EOS(STATIC_4604(i1246)), i1247, i1247) → f4612_0_displayChessboard_GE(EOS(STATIC_4612(i1246)), i1247, i1247, i1246)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(i1246)), i1247, i1247, i1246) → f4618_0_displayChessboard_GE(EOS(STATIC_4618(i1246)), i1247, i1247, i1246)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(i1246)), i1247, i1247, i1246) → f4619_0_displayChessboard_GE(EOS(STATIC_4619(i1246)), i1247, i1247, i1246)
f4618_0_displayChessboard_GE(EOS(STATIC_4618(i1246)), i1247, i1247, i1246) → f4626_0_displayChessboard_Return(EOS(STATIC_4626(i1246))) | >=(i1247, i1246)
f4619_0_displayChessboard_GE(EOS(STATIC_4619(i1246)), i1247, i1247, i1246) → f4632_0_displayChessboard_ConstantStackPush(EOS(STATIC_4632(i1246)), i1247) | <(i1247, i1246)
f4632_0_displayChessboard_ConstantStackPush(EOS(STATIC_4632(i1246)), i1247) → f4660_0_displayChessboard_Store(EOS(STATIC_4660(i1246)), i1247, 0)
f4660_0_displayChessboard_Store(EOS(STATIC_4660(i1246)), i1247, matching1) → f4696_0_displayChessboard_Load(EOS(STATIC_4696(i1246)), i1247, 0) | =(matching1, 0)
f4696_0_displayChessboard_Load(EOS(STATIC_4696(i1246)), i1247, matching1) → f4904_0_displayChessboard_Load(EOS(STATIC_4904(i1246)), i1247, 0) | =(matching1, 0)
f4904_0_displayChessboard_Load(EOS(STATIC_4904(i1326)), i1247, i1327) → f5113_0_displayChessboard_Load(EOS(STATIC_5113(i1326)), i1247, i1327)
f5113_0_displayChessboard_Load(EOS(STATIC_5113(i1326)), i1247, i1382) → f5312_0_displayChessboard_Load(EOS(STATIC_5312(i1326)), i1247, i1382)
f5312_0_displayChessboard_Load(EOS(STATIC_5312(i1326)), i1247, i1441) → f5584_0_displayChessboard_Load(EOS(STATIC_5584(i1326)), i1247, i1441)
f5584_0_displayChessboard_Load(EOS(STATIC_5584(i1326)), i1247, i1571) → f5610_0_displayChessboard_FieldAccess(EOS(STATIC_5610(i1326)), i1247, i1571, i1571)
f5610_0_displayChessboard_FieldAccess(EOS(STATIC_5610(i1326)), i1247, i1571, i1571) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(i1326)), i1247, i1571, i1571, i1326)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(i1326)), i1247, i1571, i1571, i1326) → f5627_0_displayChessboard_GE(EOS(STATIC_5627(i1326)), i1247, i1571, i1571, i1326)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(i1326)), i1247, i1571, i1571, i1326) → f5628_0_displayChessboard_GE(EOS(STATIC_5628(i1326)), i1247, i1571, i1571, i1326)
f5627_0_displayChessboard_GE(EOS(STATIC_5627(i1326)), i1247, i1571, i1571, i1326) → f5642_0_displayChessboard_Inc(EOS(STATIC_5642(i1326)), i1247) | >=(i1571, i1326)
f5628_0_displayChessboard_GE(EOS(STATIC_5628(i1326)), i1247, i1571, i1571, i1326) → f5652_0_displayChessboard_FieldAccess(EOS(STATIC_5652(i1326)), i1247, i1571) | <(i1571, i1326)
f5642_0_displayChessboard_Inc(EOS(STATIC_5642(i1326)), i1247) → f5661_0_displayChessboard_JMP(EOS(STATIC_5661(i1326)), +(i1247, 1)) | >=(i1247, 0)
f5652_0_displayChessboard_FieldAccess(EOS(STATIC_5652(i1326)), i1247, i1571) → f5667_0_displayChessboard_Load(EOS(STATIC_5667(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)))
f5661_0_displayChessboard_JMP(EOS(STATIC_5661(i1326)), i1600) → f5680_0_displayChessboard_Load(EOS(STATIC_5680(i1326)), i1600)
f5667_0_displayChessboard_Load(EOS(STATIC_5667(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326))) → f5705_0_displayChessboard_ArrayAccess(EOS(STATIC_5705(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f5680_0_displayChessboard_Load(EOS(STATIC_5680(i1326)), i1600) → f4591_0_displayChessboard_Load(EOS(STATIC_4591(i1326)), i1600)
f5705_0_displayChessboard_ArrayAccess(EOS(STATIC_5705(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f5715_0_displayChessboard_ArrayAccess(EOS(STATIC_5715(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f5705_0_displayChessboard_ArrayAccess(EOS(STATIC_5705(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f5716_0_displayChessboard_ArrayAccess(EOS(STATIC_5716(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f5715_0_displayChessboard_ArrayAccess(EOS(STATIC_5715(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f5722_0_displayChessboard_Load(EOS(STATIC_5722(i1326)), i1247, i1571, i1644) | <(i1247, i1326)
f5716_0_displayChessboard_ArrayAccess(EOS(STATIC_5716(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f5741_0__init__Load(EOS(STATIC_5741(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) | >=(i1247, i1326)
f5722_0_displayChessboard_Load(EOS(STATIC_5722(i1326)), i1247, i1571, i1644) → f5754_0_displayChessboard_EQ(EOS(STATIC_5754(i1326)), i1247, i1571, i1644, i1571)
f5741_0__init__Load(EOS(STATIC_5741(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f5793_0__init__InvokeMethod(EOS(STATIC_5793(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f5754_0_displayChessboard_EQ(EOS(STATIC_5754(i1326)), i1247, i1571, i1571, i1571) → f5783_0_displayChessboard_EQ(EOS(STATIC_5783(i1326)), i1247, i1571, i1571, i1571)
f5754_0_displayChessboard_EQ(EOS(STATIC_5754(i1326)), i1247, i1571, i1644, i1571) → f5784_0_displayChessboard_EQ(EOS(STATIC_5784(i1326)), i1247, i1571, i1644, i1571)
f5783_0_displayChessboard_EQ(EOS(STATIC_5783(i1326)), i1247, i1571, i1571, i1571) → f5799_0_displayChessboard_Inc(EOS(STATIC_5799(i1326)), i1247, i1571)
f5784_0_displayChessboard_EQ(EOS(STATIC_5784(i1326)), i1247, i1571, i1644, i1571) → f5811_0_displayChessboard_Inc(EOS(STATIC_5811(i1326)), i1247, i1571) | !(=(i1644, i1571))
f5793_0__init__InvokeMethod(EOS(STATIC_5793(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f5820_0__init__Load(EOS(STATIC_5820(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f5799_0_displayChessboard_Inc(EOS(STATIC_5799(i1326)), i1247, i1571) → f5811_0_displayChessboard_Inc(EOS(STATIC_5811(i1326)), i1247, i1571)
f5811_0_displayChessboard_Inc(EOS(STATIC_5811(i1326)), i1247, i1571) → f5863_0_displayChessboard_JMP(EOS(STATIC_5863(i1326)), i1247, +(i1571, 1)) | >=(i1571, 0)
f5820_0__init__Load(EOS(STATIC_5820(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f5910_0__init__InvokeMethod(EOS(STATIC_5910(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f5863_0_displayChessboard_JMP(EOS(STATIC_5863(i1326)), i1247, i1759) → f5898_0_displayChessboard_Load(EOS(STATIC_5898(i1326)), i1247, i1759)
f5898_0_displayChessboard_Load(EOS(STATIC_5898(i1326)), i1247, i1759) → f5584_0_displayChessboard_Load(EOS(STATIC_5584(i1326)), i1247, i1759)
f5910_0__init__InvokeMethod(EOS(STATIC_5910(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f5936_0__init__Load(EOS(STATIC_5936(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f5936_0__init__Load(EOS(STATIC_5936(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f5980_0__init__InvokeMethod(EOS(STATIC_5980(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f5980_0__init__InvokeMethod(EOS(STATIC_5980(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f5990_0__init__Load(EOS(STATIC_5990(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f5990_0__init__Load(EOS(STATIC_5990(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f6001_0__init__InvokeMethod(EOS(STATIC_6001(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f6001_0__init__InvokeMethod(EOS(STATIC_6001(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f6011_0__init__Load(EOS(STATIC_6011(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f6011_0__init__Load(EOS(STATIC_6011(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f6028_0__init__InvokeMethod(EOS(STATIC_6028(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f6028_0__init__InvokeMethod(EOS(STATIC_6028(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f6038_0__init__Load(EOS(STATIC_6038(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f6038_0__init__Load(EOS(STATIC_6038(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f6049_0__init__Load(EOS(STATIC_6049(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f6049_0__init__Load(EOS(STATIC_6049(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f6053_0__init__FieldAccess(EOS(STATIC_6053(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f6053_0__init__FieldAccess(EOS(STATIC_6053(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f6065_0__init__Load(EOS(STATIC_6065(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f6065_0__init__Load(EOS(STATIC_6065(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f6084_0__init__InvokeMethod(EOS(STATIC_6084(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f6084_0__init__InvokeMethod(EOS(STATIC_6084(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f6116_0__init__StackPop(EOS(STATIC_6116(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f6116_0__init__StackPop(EOS(STATIC_6116(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f6128_0__init__Return(EOS(STATIC_6128(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f6128_0__init__Return(EOS(STATIC_6128(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f6135_0__init__Return(EOS(STATIC_6135(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f6135_0__init__Return(EOS(STATIC_6135(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f6138_0__init__Return(EOS(STATIC_6138(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f6138_0__init__Return(EOS(STATIC_6138(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f6142_0__init__Return(EOS(STATIC_6142(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f6142_0__init__Return(EOS(STATIC_6142(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f6148_0__init__Return(EOS(STATIC_6148(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f6148_0__init__Return(EOS(STATIC_6148(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247) → f6159_0_displayChessboard_ArrayAccess(EOS(STATIC_6159(i1326)), i1247, i1571, java.lang.Object(ARRAY(i1326)), i1247)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(i1539)), i1543, i1546, i1548, i1546, matching1), i1543, i1546, i1543, i1546, i1548, i1543, i1546, i1548, i1546) → f5555_0_wrongPos_Return(EOS(STATIC_5555(i1539)), i1543, i1546, i1543, i1546, i1548, i1543, i1546, i1548, i1546, 1) | =(matching1, 1)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(i1717)), i1721, i1723, i1725, i1727, matching1), i1721, i1723, i1721, i1723, i1725, i1721, i1723, i1725, i1727) → f5851_0_wrongPos_Return(EOS(STATIC_5851(i1717)), i1721, i1723, i1721, i1723, i1725, i1721, i1723, i1725, i1727, 0) | =(matching1, 0)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(i1773)), i1777, i1779, i1781, i1783, matching1), i1777, i1779, i1777, i1779, i1781, i1777, i1779, i1781, i1783) → f5891_0_wrongPos_Return(EOS(STATIC_5891(i1773)), i1777, i1779, i1777, i1779, i1781, i1777, i1779, i1781, i1783, 1) | =(matching1, 1)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(i1272))), i964, matching1) → f4705_0_displayChessboard_Return(EOS(STATIC_4705(i1272)), i964, 0) | =(matching1, 0)
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(EOS(STATIC_6159(i1875)), i1869, i1870, java.lang.Object(ARRAY(i1875)), i1869), i964, matching1) → f6192_0_displayChessboard_ArrayAccess(EOS(STATIC_6192(i1875)), i964, 0, i1869, i1870, java.lang.Object(ARRAY(i1875)), i1869) | =(matching1, 0)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(i1391)), i1395, i1397, i1387), i1395, i1395, matching1, i1397, i1395, i1397) → f5168_0_safeMove_Return(EOS(STATIC_5168(i1391)), i1395, i1395, 0, i1397, i1395, i1397, i1387) | =(matching1, 0)
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(EOS(STATIC_5683(i1679)), i1683, i1685, i1683, i1685, i1675, i1683, i1685, i1675, java.lang.Object(ARRAY(i1679)), i1675), i1683, i1683, matching1, i1685, i1683, i1685) → f5789_0_safeMove_ArrayAccess(EOS(STATIC_5789(i1679)), i1683, i1683, 0, i1685, i1683, i1685, i1683, i1685, i1675, i1683, i1685, i1675, java.lang.Object(ARRAY(i1679)), i1675) | =(matching1, 0)
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(i1521)), i1523, matching1), i1423, i1423, i1402, i1523) → f5544_0_search_Return(EOS(STATIC_5544(i1521)), i1423, i1423, i1402, i1523, 0) | =(matching1, 0)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(i1528)), i1532, matching1), i1423, i1423, i1402, i1532) → f5570_0_search_Return(EOS(STATIC_5570(i1528)), i1423, i1423, i1402, i1532, 0) | =(matching1, 0)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(EOS(STATIC_5816(i1815)), i1819, i1819, matching1, i1811, i1819, i1811), i1423, i1423, i1402, i1819) → f5993_0_search_InvokeMethod(EOS(STATIC_5993(i1815)), i1423, i1423, i1402, i1819, i1819, 0, i1811, i1819, i1811) | =(matching1, 0)
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(EOS(STATIC_6016(i1853)), i1857, i1857, i1849, i1848), i1423, i1423, i1402, i1857) → f6136_0_search_InvokeMethod(EOS(STATIC_6136(i1853)), i1423, i1423, i1402, i1857, i1857, i1849, i1848)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(EOS(STATIC_6156(i1891)), i1895, i1895, i1887, i1886), i1423, i1423, i1402, i1895) → f6249_0_search_InvokeMethod(EOS(STATIC_6249(i1891)), i1423, i1423, i1402, i1895, i1895, i1887, i1886)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(i1930)), i1934, matching1), i1423, i1423, i1402, i1934) → f6374_0_search_InvokeMethod(EOS(STATIC_6374(i1930)), i1423, i1423, i1402, i1934, 0) | =(matching1, 0)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(EOS(STATIC_6255(i1947)), i1951, i1951, i1943, java.lang.Object(ARRAY(i1947)), i1951, i1943), i1423, i1423, i1402, i1951) → f6378_0_search_ArrayAccess(EOS(STATIC_6378(i1947)), i1423, i1423, i1402, i1951, i1951, i1943, java.lang.Object(ARRAY(i1947)), i1951, i1943)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(EOS(STATIC_6397(i1979)), i1983, i1983, i1975, i1974), i1423, i1423, i1402, i1983) → f6452_0_search_InvokeMethod(EOS(STATIC_6452(i1979)), i1423, i1423, i1402, i1983, i1983, i1975, i1974)

Combined rules. Obtained 4 conditional rules for P and 37 conditional rules for R.


P rules:
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3), x1, x1, 0, x2, x1, x2) → f5396_1_search_InvokeMethod(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), +(x1, 1), 0, +(x1, 1), 0), +(x1, 1), +(x1, 1), 0, 0, +(x1, 1), 0), x1, x1, x2, +(x1, 1)) | &&(&&(&&(>(x3, 0), >(+(x1, 1), 0)), >(x0, 0)), <(+(x1, 1), x0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0), x1, x1, 0, x2, x1, x2) → f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x1, +(x2, 1), x1, +(x2, 1)), x1, x1, 0, +(x2, 1), x1, +(x2, 1)) | &&(<(+(x2, 1), x0), >(+(x2, 1), 0))
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0)), x1, 0), x3, x3, x4, x1) → f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x3, +(x4, 1), x3, +(x4, 1)), x3, x3, 0, +(x4, 1), x3, +(x4, 1)) | &&(<(+(x4, 1), x0), >(+(x4, 1), 0))
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0)), x1, 0), x3, x3, x4, x1) → f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x3, +(x4, 1), x3, +(x4, 1)), x3, x3, 0, +(x4, 1), x3, +(x4, 1)) | &&(<(+(x4, 1), x0), >(+(x4, 1), 0))
R rules:
f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x1, x2, x1, x2) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x1, x2, 1, 0, 0, x1)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x1, x2, x3, x4, x4, x1) → f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3) | >=(x4, x1)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x1, x2, x3, x4, x4, x1) → f5683_0_safeMove_ArrayAccess(EOS(STATIC_5683(x0)), x1, x2, x1, x2, x4, x1, x2, x4, java.lang.Object(ARRAY(x0)), x4) | &&(&&(>=(x4, x0), >(x3, 0)), <(x4, x1))
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x1, x2, 0, x4, x4, x1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x1, x2, 0, +(x4, 1), +(x4, 1), x1) | &&(<(x4, x1), >(+(x4, 1), 0))
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(EOS(STATIC_6016(x0)), x1, x1, x2, x3), x4, x4, x5, x1) → f6397_0_search_InvokeMethod(EOS(STATIC_6397(x0)), x4, x4, x5, x1)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x1, x2, x3, x4, x4, x1) → f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x2, x4, x2, 1), x1, x2, x1, x2, x4, x1, x2, x4, x2) | &&(&&(<(x4, x1), >(x3, 0)), <(x4, x0))
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x1, x2, x3, x4, x4, x1) → f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x4, x5, 0), x1, x2, x1, x2, x4, x1, x2, x4, x5) | &&(&&(&&(&&(&&(&&(&&(>(+(x4, 1), 0), <(x4, x1)), <(x4, x0)), >(x3, 0)), >(+(x2, 1), 0)), !(=(x2, x5))), !(=(-(x1, x4), -(x2, x5)))), !(=(-(x1, x4), -(x5, x2))))
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x1, x2, x3, x1, x1, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x1, x4, 1), x1, x2, x1, x2, x1, x1, x2, x1, x4) | &&(&&(>(x3, 0), <(x1, x0)), <(x1, x1))
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x1, x1, x1, x2, x3, x3, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x1, x3, x3, 1), x1, x1, x1, x1, x3, x1, x1, x3, x3) | &&(&&(&&(&&(>(+(x3, 1), 0), <(x3, x1)), <(x3, x0)), >(+(x1, 1), 0)), >(x2, 0))
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x1, x2, x3, x2, x2, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x2, x1, 1), x1, x2, x1, x2, x2, x1, x2, x2, x1) | &&(&&(&&(&&(>(x3, 0), >(+(x2, 1), 0)), <(x2, x1)), !(=(-(x1, x2), -(x2, x1)))), <(x2, x0))
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x2, x3, x2, 1), x1, x2, x1, x2, x3, x1, x2, x3, x2) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x1, x2, x3, 1)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3, x4, 0), x1, x2, x1, x2, x3, x1, x2, x3, x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x1, x2, x3, 0)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3, x4, 1), x1, x2, x1, x2, x3, x1, x2, x3, x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x1, x2, x3, 1)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0), x1, x1, 0, x2, x1, x2) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x1, 0, +(x2, 1), +(x2, 1), x0) | >(+(x2, 1), 0)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3), x1, x1, 0, x2, x1, x2) → f6235_0_search_ArrayAccess(EOS(STATIC_6235(x0)), x1, x1, x2, java.lang.Object(ARRAY(x0)), x1, x2) | &&(<=(x1, -1), >(x3, 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3), x1, x1, 0, x2, x1, x2) → f6255_0_search_ArrayAccess(EOS(STATIC_6255(x0)), x1, x1, x2, java.lang.Object(ARRAY(x0)), x1, x2) | &&(>=(x1, x0), >(x3, 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3), x1, x1, 0, x2, x1, x2) → f5396_1_search_InvokeMethod(f4889_0_search_GE(EOS(STATIC_4889(x0)), +(x1, 1), +(x1, 1), 0, 0, 0, x0), x1, x1, x2, +(x1, 1)) | &&(&&(>(x3, 0), <(+(x1, 1), x0)), >(+(x1, 1), 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3), x1, x1, 0, x2, x1, x2) → f5396_1_search_InvokeMethod(f3965_1_search_InvokeMethod(f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), 0, 0, x0), +(x1, 1), 0), x1, x1, x2, +(x1, 1)) | &&(&&(&&(>(x3, 0), >(+(x1, 1), 0)), >=(+(x1, 1), x0)), <(x1, x0))
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(EOS(STATIC_5683(x0)), x1, x2, x1, x2, x3, x1, x2, x3, java.lang.Object(ARRAY(x0)), x3), x1, x1, 0, x2, x1, x2) → f5816_0_search_InvokeMethod(EOS(STATIC_5816(x0)), x1, x1, 0, x2, x1, x2)
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0)), x1, 0), x3, x3, x4, x1) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, x3, 0, +(x4, 1), +(x4, 1), x0) | >(+(x4, 1), 0)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0)), x1, 0), x3, x3, x4, x1) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, x3, 0, +(x4, 1), +(x4, 1), x0) | >(+(x4, 1), 0)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(EOS(STATIC_5816(x0)), x1, x1, 0, x3, x1, x3), x4, x4, x5, x1) → f6397_0_search_InvokeMethod(EOS(STATIC_6397(x0)), x4, x4, x5, x1)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(EOS(STATIC_6156(x0)), x1, x1, x2, x3), x4, x4, x5, x1) → f6397_0_search_InvokeMethod(EOS(STATIC_6397(x0)), x4, x4, x5, x1)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1, 0), x3, x3, x4, x1) → f6397_0_search_InvokeMethod(EOS(STATIC_6397(x0)), x3, x3, x4, x1)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(EOS(STATIC_6255(x0)), x1, x1, x2, java.lang.Object(ARRAY(x0)), x1, x2), x3, x3, x4, x1) → f6397_0_search_InvokeMethod(EOS(STATIC_6397(x0)), x3, x3, x4, x1)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(EOS(STATIC_6397(x0)), x1, x1, x2, x3), x4, x4, x5, x1) → f6397_0_search_InvokeMethod(EOS(STATIC_6397(x0)), x4, x4, x5, x1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x1, x2, x3, 1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x1, x2, 0, +(x3, 1), +(x3, 1), x1) | >(+(x3, 1), 0)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x1, x2, x3, 0) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x1, x2, 1, +(x3, 1), +(x3, 1), x1) | >(+(x3, 1), 0)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x1, 0, x3, x3, x0) → f4932_0_search_Return(EOS(STATIC_4932(x0)), x1, 0) | >=(x3, x0)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x1, 0, x3, x3, x0) → f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x1, x3, x1, x3), x1, x1, 0, x3, x1, x3) | <(x3, x0)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1, x1, x0) → f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0))) | >=(x1, x0)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1, x1, x0) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, 0, 0, x0) | <(x1, x0)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2, x2, x0) → f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), +(x1, 1), +(x1, 1), x0) | &&(>(+(x1, 1), 0), >=(x2, x0))
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2, x2, x0) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, +(x2, 1), +(x2, 1), x0) | &&(&&(>(+(x2, 1), 0), <(x1, x0)), <(x2, x0))
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2, x2, x0) → f6159_0_displayChessboard_ArrayAccess(EOS(STATIC_6159(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x1) | &&(>=(x1, x0), <(x2, x0))
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0))), x1, 0) → f4400_0_search_Return(EOS(STATIC_4400(x0)), x1, 0)
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(EOS(STATIC_6159(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x1), x3, 0) → f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x3, 0)

Filtered ground terms:



f4976_1_search_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → f4976_1_search_InvokeMethod(x1, x2, x3, x5, x6, x7)
Cond_f4976_1_search_InvokeMethod(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f4976_1_search_InvokeMethod(x1, x2, x3, x4, x6, x7, x8)
Cond_f4976_1_search_InvokeMethod1(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f4976_1_search_InvokeMethod1(x1, x2, x3, x4, x6, x7, x8)
f4400_0_search_Return(x1, x2, x3) → f4400_0_search_Return(x1, x2)
f4932_0_search_Return(x1, x2, x3) → f4932_0_search_Return(x1, x2)
Cond_f5065_0_safeMove_GE2(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → Cond_f5065_0_safeMove_GE2(x1, x2, x3, x4, x5, x6, x8, x9, x10)
f4889_0_search_GE(x1, x2, x3, x4, x5, x6, x7) → f4889_0_search_GE(x1, x2, x3, x5, x6, x7)
Cond_f4976_1_search_InvokeMethod2(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f4976_1_search_InvokeMethod2(x1, x2, x3, x4, x6, x7, x8)
Cond_f4976_1_search_InvokeMethod3(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f4976_1_search_InvokeMethod3(x1, x2, x3, x4, x6, x7, x8)
Cond_f4976_1_search_InvokeMethod4(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f4976_1_search_InvokeMethod4(x1, x2, x3, x4, x6, x7, x8)
f5816_0_search_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → f5816_0_search_InvokeMethod(x1, x2, x3, x5, x6, x7)
Cond_f5882_0_safeMove_NE(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f5882_0_safeMove_NE(x1, x2, x3, x4, x5, x6, x7)
Cond_f5882_0_safeMove_NE1(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f5882_0_safeMove_NE1(x1, x2, x3, x4, x5, x6, x7)
Cond_f4889_0_search_GE(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f4889_0_search_GE(x1, x2, x3, x4, x6, x7, x8)
Cond_f4889_0_search_GE1(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f4889_0_search_GE1(x1, x2, x3, x4, x6, x7, x8)
f3965_1_search_InvokeMethod(x1, x2, x3) → f3965_1_search_InvokeMethod(x1, x2)
f6241_0_search_InvokeMethod(x1, x2, x3) → f6241_0_search_InvokeMethod(x1, x2)
f5454_0_wrongPos_Return(x1, x2, x3, x4, x5, x6) → f5454_0_wrongPos_Return(x1, x2, x3, x4, x5)
f5788_0_wrongPos_Return(x1, x2, x3, x4, x5, x6) → f5788_0_wrongPos_Return(x1, x2, x3, x4, x5)
f5815_0_wrongPos_Return(x1, x2, x3, x4, x5, x6) → f5815_0_wrongPos_Return(x1, x2, x3, x4, x5)

Filtered unneeded arguments:



Cond_f5396_1_search_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_f5396_1_search_InvokeMethod(x1, x2, x3, x4, x5)
Cond_f5396_1_search_InvokeMethod1(x1, x2, x3, x4, x5, x6) → Cond_f5396_1_search_InvokeMethod1(x1, x2, x3, x4, x5)
Cond_f5065_0_safeMove_GE1(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → Cond_f5065_0_safeMove_GE1(x1, x3, x4, x5, x6, x8, x9, x10)
f6016_0_search_InvokeMethod(x1, x2, x3, x4, x5) → f6016_0_search_InvokeMethod(x2, x3)
Cond_f5065_0_safeMove_GE3(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → Cond_f5065_0_safeMove_GE3(x1, x2, x3, x4, x5, x6, x8, x9, x10)
Cond_f5065_0_safeMove_GE4(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) → Cond_f5065_0_safeMove_GE4(x1, x2, x3, x4, x5, x6, x8, x9, x10, x11)
Cond_f5065_0_safeMove_GE5(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) → Cond_f5065_0_safeMove_GE5(x1, x2, x3, x4, x5, x6, x8, x9, x10, x11)
Cond_f5065_0_safeMove_GE6(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → Cond_f5065_0_safeMove_GE6(x1, x2, x3, x4, x5, x6, x8, x9, x10)
Cond_f5065_0_safeMove_GE7(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → Cond_f5065_0_safeMove_GE7(x1, x2, x3, x4, x5, x6, x8, x9, x10)
f5683_0_safeMove_ArrayAccess(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) → f5683_0_safeMove_ArrayAccess(x2, x3, x4, x5, x6, x7, x8, x9, x11)
f5816_0_search_InvokeMethod(x1, x2, x3, x4, x5, x6) → f5816_0_search_InvokeMethod(x2, x3, x4, x5, x6)
f6156_0_search_InvokeMethod(x1, x2, x3, x4, x5) → f6156_0_search_InvokeMethod(x2, x3)
f6255_0_search_ArrayAccess(x1, x2, x3, x4, x5, x6, x7) → f6255_0_search_ArrayAccess(x2, x3, x4, x6, x7)
f6397_0_search_InvokeMethod(x1, x2, x3, x4, x5) → f6397_0_search_InvokeMethod(x2, x3)
f3965_1_search_InvokeMethod(x1, x2) → f3965_1_search_InvokeMethod(x1)
f6159_0_displayChessboard_ArrayAccess(x1, x2, x3, x4, x5) → f6159_0_displayChessboard_ArrayAccess(x2, x5)
f4400_0_search_Return(x1, x2) → f4400_0_search_Return(x1)
f4932_0_search_Return(x1, x2) → f4932_0_search_Return(x1)
f5788_0_wrongPos_Return(x1, x2, x3, x4, x5) → f5788_0_wrongPos_Return(x1, x2, x3, x4)
f5815_0_wrongPos_Return(x1, x2, x3, x4, x5) → f5815_0_wrongPos_Return(x1, x2, x3, x4)

Filtered duplicate args:



f4976_1_search_InvokeMethod(x1, x2, x3, x4, x5, x6) → f4976_1_search_InvokeMethod(x1)
Cond_f4976_1_search_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_f4976_1_search_InvokeMethod(x1, x2)
f5396_1_search_InvokeMethod(x1, x2, x3, x4, x5) → f5396_1_search_InvokeMethod(x1, x3, x4, x5)
f4993_0_safeMove_ConstantStackPush(x1, x2, x3, x4, x5) → f4993_0_safeMove_ConstantStackPush(x1, x4, x5)
Cond_f4976_1_search_InvokeMethod1(x1, x2, x3, x4, x5, x6, x7) → Cond_f4976_1_search_InvokeMethod1(x1, x2)
Cond_f5396_1_search_InvokeMethod(x1, x2, x3, x4, x5) → Cond_f5396_1_search_InvokeMethod(x1, x2, x4, x5)
Cond_f5396_1_search_InvokeMethod1(x1, x2, x3, x4, x5) → Cond_f5396_1_search_InvokeMethod1(x1, x2, x4, x5)
f5065_0_safeMove_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9) → f5065_0_safeMove_GE(x1, x5, x6, x8, x9)
Cond_f5065_0_safeMove_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → Cond_f5065_0_safeMove_GE(x1, x2, x6, x7, x9, x10)
Cond_f5065_0_safeMove_GE1(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f5065_0_safeMove_GE1(x1, x5, x7, x8)
f5683_0_safeMove_ArrayAccess(x1, x2, x3, x4, x5, x6, x7, x8, x9) → f5683_0_safeMove_ArrayAccess(x6, x7, x9)
Cond_f5065_0_safeMove_GE2(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_f5065_0_safeMove_GE2(x1, x2, x6, x8, x9)
f6016_0_search_InvokeMethod(x1, x2) → f6016_0_search_InvokeMethod(x2)
f6397_0_search_InvokeMethod(x1, x2) → f6397_0_search_InvokeMethod(x2)
Cond_f5065_0_safeMove_GE3(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_f5065_0_safeMove_GE3(x1, x2, x6, x8, x9)
f5254_1_safeMove_InvokeMethod(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → f5254_1_safeMove_InvokeMethod(x1, x10)
f5454_0_wrongPos_Return(x1, x2, x3, x4, x5) → f5454_0_wrongPos_Return(x1, x2, x4, x5)
Cond_f5065_0_safeMove_GE4(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → Cond_f5065_0_safeMove_GE4(x1, x2, x6, x8, x9, x10)
Cond_f5065_0_safeMove_GE5(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → Cond_f5065_0_safeMove_GE5(x1, x2, x6, x9, x10)
Cond_f5065_0_safeMove_GE6(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_f5065_0_safeMove_GE6(x1, x2, x8, x9)
Cond_f5065_0_safeMove_GE7(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_f5065_0_safeMove_GE7(x1, x2, x8, x9)
f5882_0_safeMove_NE(x1, x2, x3, x4, x5, x6, x7) → f5882_0_safeMove_NE(x1, x4, x5, x6, x7)
f4889_0_search_GE(x1, x2, x3, x4, x5, x6) → f4889_0_search_GE(x1, x3, x5)
f6235_0_search_ArrayAccess(x1, x2, x3, x4, x5, x6, x7) → f6235_0_search_ArrayAccess(x1, x5, x6, x7)
Cond_f4976_1_search_InvokeMethod2(x1, x2, x3, x4, x5, x6, x7) → Cond_f4976_1_search_InvokeMethod2(x1, x2)
f6255_0_search_ArrayAccess(x1, x2, x3, x4, x5) → f6255_0_search_ArrayAccess(x4, x5)
Cond_f4976_1_search_InvokeMethod3(x1, x2, x3, x4, x5, x6, x7) → Cond_f4976_1_search_InvokeMethod3(x1, x2)
Cond_f4976_1_search_InvokeMethod4(x1, x2, x3, x4, x5, x6, x7) → Cond_f4976_1_search_InvokeMethod4(x1, x2)
f4612_0_displayChessboard_GE(x1, x2, x3, x4) → f4612_0_displayChessboard_GE(x1, x3)
f5816_0_search_InvokeMethod(x1, x2, x3, x4, x5) → f5816_0_search_InvokeMethod(x4, x5)
f6156_0_search_InvokeMethod(x1, x2) → f6156_0_search_InvokeMethod(x2)
Cond_f5882_0_safeMove_NE(x1, x2, x3, x4, x5, x6, x7) → Cond_f5882_0_safeMove_NE(x1, x2, x5, x6, x7)
Cond_f5882_0_safeMove_NE1(x1, x2, x3, x4, x5, x6, x7) → Cond_f5882_0_safeMove_NE1(x1, x2, x5, x6, x7)
Cond_f4889_0_search_GE(x1, x2, x3, x4, x5, x6, x7) → Cond_f4889_0_search_GE(x1, x2, x4, x6)
Cond_f4889_0_search_GE1(x1, x2, x3, x4, x5, x6, x7) → Cond_f4889_0_search_GE1(x1, x2, x4, x6)
Cond_f4612_0_displayChessboard_GE(x1, x2, x3, x4, x5) → Cond_f4612_0_displayChessboard_GE(x1, x2, x4)
Cond_f4612_0_displayChessboard_GE1(x1, x2, x3, x4, x5) → Cond_f4612_0_displayChessboard_GE1(x1, x2, x4)
f5617_0_displayChessboard_GE(x1, x2, x3, x4, x5) → f5617_0_displayChessboard_GE(x1, x2, x4)
Cond_f5617_0_displayChessboard_GE(x1, x2, x3, x4, x5, x6) → Cond_f5617_0_displayChessboard_GE(x1, x2, x3, x5)
Cond_f5617_0_displayChessboard_GE1(x1, x2, x3, x4, x5, x6) → Cond_f5617_0_displayChessboard_GE1(x1, x2, x3, x5)
Cond_f5617_0_displayChessboard_GE2(x1, x2, x3, x4, x5, x6) → Cond_f5617_0_displayChessboard_GE2(x1, x2, x3, x5)
f6159_0_displayChessboard_ArrayAccess(x1, x2) → f6159_0_displayChessboard_ArrayAccess(x2)

Filtered unneeded arguments:



f5396_1_search_InvokeMethod(x1, x2, x3, x4) → f5396_1_search_InvokeMethod(x1, x2, x3)
Cond_f5065_0_safeMove_GE(x1, x2, x3, x4, x5, x6) → Cond_f5065_0_safeMove_GE(x1, x2, x3, x4, x6)
Cond_f5065_0_safeMove_GE1(x1, x2, x3, x4) → Cond_f5065_0_safeMove_GE1(x1)
Cond_f4976_1_search_InvokeMethod2(x1, x2) → Cond_f4976_1_search_InvokeMethod2(x1)
Cond_f4889_0_search_GE(x1, x2, x3, x4) → Cond_f4889_0_search_GE(x1, x2)
Cond_f4612_0_displayChessboard_GE(x1, x2, x3) → Cond_f4612_0_displayChessboard_GE(x1, x2)
Cond_f5617_0_displayChessboard_GE(x1, x2, x3, x4) → Cond_f5617_0_displayChessboard_GE(x1, x2, x3)
Cond_f5617_0_displayChessboard_GE2(x1, x2, x3, x4) → Cond_f5617_0_displayChessboard_GE2(x1)

Combined rules. Obtained 5 conditional rules for P and 36 conditional rules for R.


P rules:
F4976_1_SEARCH_INVOKEMETHOD(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → F5396_1_SEARCH_INVOKEMETHOD(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), +(x1, 1), 0)), x1, x2) | &&(&&(&&(>(x3, 0), >(x1, -1)), >(x0, 0)), <(+(x1, 1), x0))
F4976_1_SEARCH_INVOKEMETHOD(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → F4976_1_SEARCH_INVOKEMETHOD(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), +(x1, 1), 0)) | &&(&&(&&(>(x3, 0), >(x1, -1)), >(x0, 0)), <(+(x1, 1), x0))
F4976_1_SEARCH_INVOKEMETHOD(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → F4976_1_SEARCH_INVOKEMETHOD(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x1, +(x2, 1))) | &&(<(+(x2, 1), x0), >(x2, -1))
F5396_1_SEARCH_INVOKEMETHOD(f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → F4976_1_SEARCH_INVOKEMETHOD(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x3, +(x4, 1))) | &&(<(+(x4, 1), x0), >(x4, -1))
F5396_1_SEARCH_INVOKEMETHOD(f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → F4976_1_SEARCH_INVOKEMETHOD(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x3, +(x4, 1))) | &&(<(+(x4, 1), x0), >(x4, -1))
R rules:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3) | >=(x4, x1)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5683_0_safeMove_ArrayAccess(x1, x2, x4) | &&(&&(>=(x4, x0), >(x3, 0)), <(x4, x1))
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x4, x1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, +(x4, 1), x1) | &&(<(x4, x1), >(x4, -1))
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x4, x2), x2) | &&(&&(<(x4, x1), >(x3, 0)), <(x4, x0))
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x4), x5) | &&(&&(&&(&&(&&(&&(&&(>(x4, -1), <(x4, x1)), <(x4, x0)), >(x3, 0)), >(x2, -1)), !(=(x2, x5))), !(=(-(x1, x4), -(x2, x5)))), !(=(-(x1, x4), -(x5, x2))))
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x1, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x1), x4) | &&(&&(>(x3, 0), <(x1, x0)), <(x1, x1))
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x1, x3), x3) | &&(&&(&&(&&(>(x3, -1), <(x3, x1)), <(x3, x0)), >(x1, -1)), >(x2, 0))
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x2, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x2), x1) | &&(&&(&&(&&(>(x3, 0), >(x2, -1)), <(x2, x1)), !(=(-(x1, x2), -(x2, x1)))), <(x2, x0))
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x3, x2), x2) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, +(x2, 1)) | >(x2, -1)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f6235_0_search_ArrayAccess(EOS(STATIC_6235(x0)), java.lang.Object(ARRAY(x0)), x1, x2) | &&(<=(x1, -1), >(x3, 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f6255_0_search_ArrayAccess(x1, x2) | &&(>=(x1, x0), >(x3, 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f5396_1_search_InvokeMethod(f4889_0_search_GE(EOS(STATIC_4889(x0)), +(x1, 1), 0), x1, x2) | &&(&&(>(x3, 0), <(+(x1, 1), x0)), >(x1, -1))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f5396_1_search_InvokeMethod(f3965_1_search_InvokeMethod(f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), 0)), x1, x2) | &&(&&(&&(>(x3, 0), >(x1, -1)), >=(+(x1, 1), x0)), <(x1, x0))
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x1, x2, x3)) → f5816_0_search_InvokeMethod(x1, x2)
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, +(x4, 1)) | >(x4, -1)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, +(x4, 1)) | >(x4, -1)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x1, x3), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x3, x4) → f6397_0_search_InvokeMethod(x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x1, x2), x3, x4) → f6397_0_search_InvokeMethod(x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, +(x3, 1), x1) | >(x3, -1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 1, +(x3, 1), x1) | >(x3, -1)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x3) → f4932_0_search_Return(EOS(STATIC_4932(x0))) | >=(x3, x0)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1) → f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0))) | >=(x1, x0)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, 0) | <(x1, x0)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), +(x1, 1)) | &&(>(x1, -1), >=(x2, x0))
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, +(x2, 1)) | &&(&&(>(x2, -1), <(x1, x0)), <(x2, x0))
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → f6159_0_displayChessboard_ArrayAccess(x1) | &&(>=(x1, x0), <(x2, x0))
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0)))) → f4400_0_search_Return(EOS(STATIC_4400(x0)))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x1)) → f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x3)
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2) → f4976_1_search_InvokeMethod(f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 1, 0, x1)) | <(x2, x0)

Finished conversion. Obtained 10 rules for P and 60 rules for R. System has predefined symbols.


P rules:
F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3, 0), >(x1, -1)), >(x0, 0)), <(+(x1, 1), x0)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
COND_F4976_1_SEARCH_INVOKEMETHOD(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → F5396_1_SEARCH_INVOKEMETHOD'(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), +(x1, 1), 0)), x1, x2)
F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3, 0), >(x1, -1)), >(x0, 0)), <(+(x1, 1), x0)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), +(x1, 1), 0))
F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2, 1), x0), >(x2, -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x1, +(x2, 1)))
F5396_1_SEARCH_INVOKEMETHOD'(f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → COND_F5396_1_SEARCH_INVOKEMETHOD(&&(<(+(x4, 1), x0), >(x4, -1)), f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4)
COND_F5396_1_SEARCH_INVOKEMETHOD(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x3, +(x4, 1)))
F5396_1_SEARCH_INVOKEMETHOD'(f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → COND_F5396_1_SEARCH_INVOKEMETHOD1(&&(<(+(x4, 1), x0), >(x4, -1)), f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4)
COND_F5396_1_SEARCH_INVOKEMETHOD1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x3, +(x4, 1)))
R rules:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE(>=(x4, x1), EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE1(&&(&&(>=(x4, x0), >(x3, 0)), <(x4, x1)), EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5683_0_safeMove_ArrayAccess(x1, x2, x4)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x4, x1) → Cond_f5065_0_safeMove_GE2(&&(<(x4, x1), >(x4, -1)), EOS(STATIC_5065(x0)), x2, 0, x4, x1)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x2, 0, x4, x1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, +(x4, 1), x1)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE3(&&(&&(<(x4, x1), >(x3, 0)), <(x4, x0)), EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x4, x2), x2)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE4(&&(&&(&&(&&(&&(&&(&&(>(x4, -1), <(x4, x1)), <(x4, x0)), >(x3, 0)), >(x2, -1)), !(=(x2, x5))), !(=(-(x1, x4), -(x2, x5)))), !(=(-(x1, x4), -(x5, x2)))), EOS(STATIC_5065(x0)), x2, x3, x4, x1, x5)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1, x5) → f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x4), x5)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x1, x1) → Cond_f5065_0_safeMove_GE5(&&(&&(>(x3, 0), <(x1, x0)), <(x1, x1)), EOS(STATIC_5065(x0)), x2, x3, x1, x1, x4)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x2, x3, x1, x1, x4) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x1), x4)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x1) → Cond_f5065_0_safeMove_GE6(&&(&&(&&(&&(>(x3, -1), <(x3, x1)), <(x3, x0)), >(x1, -1)), >(x2, 0)), EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x1, x3), x3)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x2, x1) → Cond_f5065_0_safeMove_GE7(&&(&&(&&(&&(>(x3, 0), >(x2, -1)), <(x2, x1)), !(=(-(x1, x2), -(x2, x1)))), <(x2, x0)), EOS(STATIC_5065(x0)), x2, x3, x2, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x2, x3, x2, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x2), x1)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x3, x2), x2) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → Cond_f4976_1_search_InvokeMethod(>(x2, -1), f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, +(x2, 1))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod1(&&(<=(x1, -1), >(x3, 0)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f6235_0_search_ArrayAccess(EOS(STATIC_6235(x0)), java.lang.Object(ARRAY(x0)), x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod2(&&(>=(x1, x0), >(x3, 0)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f6255_0_search_ArrayAccess(x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod3(&&(&&(>(x3, 0), <(+(x1, 1), x0)), >(x1, -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f5396_1_search_InvokeMethod(f4889_0_search_GE(EOS(STATIC_4889(x0)), +(x1, 1), 0), x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod4(&&(&&(&&(>(x3, 0), >(x1, -1)), >=(+(x1, 1), x0)), <(x1, x0)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f5396_1_search_InvokeMethod(f3965_1_search_InvokeMethod(f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), 0)), x1, x2)
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x1, x2, x3)) → f5816_0_search_InvokeMethod(x1, x2)
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → Cond_f5396_1_search_InvokeMethod(>(x4, -1), f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, +(x4, 1))
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → Cond_f5396_1_search_InvokeMethod1(>(x4, -1), f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, +(x4, 1))
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x1, x3), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x3, x4) → f6397_0_search_InvokeMethod(x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x1, x2), x3, x4) → f6397_0_search_InvokeMethod(x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1) → Cond_f5882_0_safeMove_NE(>(x3, -1), EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, +(x3, 1), x1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0) → Cond_f5882_0_safeMove_NE1(>(x3, -1), EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 1, +(x3, 1), x1)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x3) → Cond_f4889_0_search_GE(>=(x3, x0), EOS(STATIC_4889(x0)), x1, x3)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x3) → f4932_0_search_Return(EOS(STATIC_4932(x0)))
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1) → Cond_f4612_0_displayChessboard_GE(>=(x1, x0), EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1) → f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0)))
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1) → Cond_f4612_0_displayChessboard_GE1(<(x1, x0), EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, 0)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE(&&(>(x1, -1), >=(x2, x0)), EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), +(x1, 1))
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE1(&&(&&(>(x2, -1), <(x1, x0)), <(x2, x0)), EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, +(x2, 1))
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE2(&&(>=(x1, x0), <(x2, x0)), EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f6159_0_displayChessboard_ArrayAccess(x1)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0)))) → f4400_0_search_Return(EOS(STATIC_4400(x0)))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x1)) → f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x3)
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2) → Cond_f4889_0_search_GE1(<(x2, x0), EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2) → f4976_1_search_InvokeMethod(f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 1, 0, x1))

(39) 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:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE(x4 >= x1, EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE1(x4 >= x0 && x3 > 0 && x4 < x1, EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5683_0_safeMove_ArrayAccess(x1, x2, x4)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x4, x1) → Cond_f5065_0_safeMove_GE2(x4 < x1 && x4 > -1, EOS(STATIC_5065(x0)), x2, 0, x4, x1)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x2, 0, x4, x1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x4 + 1, x1)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE3(x4 < x1 && x3 > 0 && x4 < x0, EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x4, x2), x2)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE4(x4 > -1 && x4 < x1 && x4 < x0 && x3 > 0 && x2 > -1 && !(x2 = x5) && !(x1 - x4 = x2 - x5) && !(x1 - x4 = x5 - x2), EOS(STATIC_5065(x0)), x2, x3, x4, x1, x5)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1, x5) → f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x4), x5)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x1, x1) → Cond_f5065_0_safeMove_GE5(x3 > 0 && x1 < x0 && x1 < x1, EOS(STATIC_5065(x0)), x2, x3, x1, x1, x4)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x2, x3, x1, x1, x4) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x1), x4)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x1) → Cond_f5065_0_safeMove_GE6(x3 > -1 && x3 < x1 && x3 < x0 && x1 > -1 && x2 > 0, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x1, x3), x3)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x2, x1) → Cond_f5065_0_safeMove_GE7(x3 > 0 && x2 > -1 && x2 < x1 && !(x1 - x2 = x2 - x1) && x2 < x0, EOS(STATIC_5065(x0)), x2, x3, x2, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x2, x3, x2, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x2), x1)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x3, x2), x2) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → Cond_f4976_1_search_InvokeMethod(x2 > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2 + 1)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod1(x1 <= -1 && x3 > 0, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f6235_0_search_ArrayAccess(EOS(STATIC_6235(x0)), java.lang.Object(ARRAY(x0)), x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod2(x1 >= x0 && x3 > 0, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f6255_0_search_ArrayAccess(x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod3(x3 > 0 && x1 + 1 < x0 && x1 > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f5396_1_search_InvokeMethod(f4889_0_search_GE(EOS(STATIC_4889(x0)), x1 + 1, 0), x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod4(x3 > 0 && x1 > -1 && x1 + 1 >= x0 && x1 < x0, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f5396_1_search_InvokeMethod(f3965_1_search_InvokeMethod(f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), 0)), x1, x2)
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x1, x2, x3)) → f5816_0_search_InvokeMethod(x1, x2)
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → Cond_f5396_1_search_InvokeMethod(x4 > -1, f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, x4 + 1)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → Cond_f5396_1_search_InvokeMethod1(x4 > -1, f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, x4 + 1)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x1, x3), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x3, x4) → f6397_0_search_InvokeMethod(x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x1, x2), x3, x4) → f6397_0_search_InvokeMethod(x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1) → Cond_f5882_0_safeMove_NE(x3 > -1, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x3 + 1, x1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0) → Cond_f5882_0_safeMove_NE1(x3 > -1, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 1, x3 + 1, x1)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x3) → Cond_f4889_0_search_GE(x3 >= x0, EOS(STATIC_4889(x0)), x1, x3)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x3) → f4932_0_search_Return(EOS(STATIC_4932(x0)))
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1) → Cond_f4612_0_displayChessboard_GE(x1 >= x0, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1) → f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0)))
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1) → Cond_f4612_0_displayChessboard_GE1(x1 < x0, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, 0)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE(x1 > -1 && x2 >= x0, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1 + 1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE1(x2 > -1 && x1 < x0 && x2 < x0, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2 + 1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE2(x1 >= x0 && x2 < x0, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f6159_0_displayChessboard_ArrayAccess(x1)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0)))) → f4400_0_search_Return(EOS(STATIC_4400(x0)))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x1)) → f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x3)
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2) → Cond_f4889_0_search_GE1(x2 < x0, EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2) → f4976_1_search_InvokeMethod(f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 1, 0, x1))

The integer pair graph contains the following rules and edges:
(0): F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0])) → COND_F4976_1_SEARCH_INVOKEMETHOD(x3[0] > 0 && x1[0] > -1 && x0[0] > 0 && x1[0] + 1 < x0[0], f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))
(1): COND_F4976_1_SEARCH_INVOKEMETHOD(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[1])), x1[1], x2[1], x3[1])) → F5396_1_SEARCH_INVOKEMETHOD'(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), x1[1] + 1, 0)), x1[1], x2[1])
(2): F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])) → COND_F4976_1_SEARCH_INVOKEMETHOD1(x3[2] > 0 && x1[2] > -1 && x0[2] > 0 && x1[2] + 1 < x0[2], f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))
(3): COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3])) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), x1[3] + 1, 0))
(4): F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(x2[4] + 1 < x0[4] && x2[4] > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))
(5): COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], x2[5] + 1))
(6): F5396_1_SEARCH_INVOKEMETHOD'(f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6]) → COND_F5396_1_SEARCH_INVOKEMETHOD(x4[6] + 1 < x0[6] && x4[6] > -1, f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])
(7): COND_F5396_1_SEARCH_INVOKEMETHOD(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0[7]))), x3[7], x4[7]) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], x4[7] + 1))
(8): F5396_1_SEARCH_INVOKEMETHOD'(f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8]) → COND_F5396_1_SEARCH_INVOKEMETHOD1(x4[8] + 1 < x0[8] && x4[8] > -1, f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])
(9): COND_F5396_1_SEARCH_INVOKEMETHOD1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0[9]))), x3[9], x4[9]) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], x4[9] + 1))

(0) -> (1), if (x3[0] > 0 && x1[0] > -1 && x0[0] > 0 && x1[0] + 1 < x0[0]f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[1])), x1[1], x2[1], x3[1]))


(1) -> (6), if (f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), x1[1] + 1, 0)) →* f4400_0_search_Return(EOS(STATIC_4400(x0[6])))∧x1[1]* x3[6]x2[1]* x4[6])


(1) -> (8), if (f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), x1[1] + 1, 0)) →* f4932_0_search_Return(EOS(STATIC_4932(x0[8])))∧x1[1]* x3[8]x2[1]* x4[8])


(2) -> (3), if (x3[2] > 0 && x1[2] > -1 && x0[2] > 0 && x1[2] + 1 < x0[2]f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3]))


(3) -> (0), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), x1[3] + 1, 0) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))


(3) -> (2), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), x1[3] + 1, 0) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))


(3) -> (4), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), x1[3] + 1, 0) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))


(4) -> (5), if (x2[4] + 1 < x0[4] && x2[4] > -1f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0))


(5) -> (0), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], x2[5] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))


(5) -> (2), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], x2[5] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))


(5) -> (4), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], x2[5] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))


(6) -> (7), if (x4[6] + 1 < x0[6] && x4[6] > -1f4400_0_search_Return(EOS(STATIC_4400(x0[6]))) →* f4400_0_search_Return(EOS(STATIC_4400(x0[7])))∧x3[6]* x3[7]x4[6]* x4[7])


(7) -> (0), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], x4[7] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))


(7) -> (2), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], x4[7] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))


(7) -> (4), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], x4[7] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))


(8) -> (9), if (x4[8] + 1 < x0[8] && x4[8] > -1f4932_0_search_Return(EOS(STATIC_4932(x0[8]))) →* f4932_0_search_Return(EOS(STATIC_4932(x0[9])))∧x3[8]* x3[9]x4[8]* x4[9])


(9) -> (0), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], x4[9] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))


(9) -> (2), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], x4[9] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))


(9) -> (4), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], x4[9] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))



The set Q consists of the following terms:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x1, 0, x2, x3)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4, x5)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x3, x4)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x1, x2, x1, x3)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x2, x3), x3)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4)
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x0, x1, x2))
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x0), x1, x2)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x2, x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x0), x1, x2)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x2)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0))))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x0))
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x0), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2)

(40) 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@4652a73c 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 F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3, 0), >(x1, -1)), >(x0, 0)), <(+(x1, 1), x0)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) the following chains were created:
  • We consider the chain F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0])) → COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3[0], 0), >(x1[0], -1)), >(x0[0], 0)), <(+(x1[0], 1), x0[0])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0])), COND_F4976_1_SEARCH_INVOKEMETHOD(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[1])), x1[1], x2[1], x3[1])) → F5396_1_SEARCH_INVOKEMETHOD'(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), +(x1[1], 1), 0)), x1[1], x2[1]) which results in the following constraint:

    (1)    (&&(&&(&&(>(x3[0], 0), >(x1[0], -1)), >(x0[0], 0)), <(+(x1[0], 1), x0[0]))=TRUEf5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0])=f5094_0_safeMove_Return(EOS(STATIC_5094(x0[1])), x1[1], x2[1], x3[1]) ⇒ F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))≥NonInfC∧F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))≥COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3[0], 0), >(x1[0], -1)), >(x0[0], 0)), <(+(x1[0], 1), x0[0])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))∧(UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3[0], 0), >(x1[0], -1)), >(x0[0], 0)), <(+(x1[0], 1), x0[0])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))), ≥))



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

    (2)    (<(+(x1[0], 1), x0[0])=TRUE>(x0[0], 0)=TRUE>(x3[0], 0)=TRUE>(x1[0], -1)=TRUEF4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))≥NonInfC∧F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))≥COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3[0], 0), >(x1[0], -1)), >(x0[0], 0)), <(+(x1[0], 1), x0[0])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))∧(UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3[0], 0), >(x1[0], -1)), >(x0[0], 0)), <(+(x1[0], 1), x0[0])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))), ≥))



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

    (3)    (x0[0] + [-2] + [-1]x1[0] ≥ 0∧x0[0] + [-1] ≥ 0∧x3[0] + [-1] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3[0], 0), >(x1[0], -1)), >(x0[0], 0)), <(+(x1[0], 1), x0[0])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))), ≥)∧[(-1)Bound*bni_120] + [bni_120]x1[0] ≥ 0∧[(-1)bso_121] ≥ 0)



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

    (4)    (x0[0] + [-2] + [-1]x1[0] ≥ 0∧x0[0] + [-1] ≥ 0∧x3[0] + [-1] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3[0], 0), >(x1[0], -1)), >(x0[0], 0)), <(+(x1[0], 1), x0[0])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))), ≥)∧[(-1)Bound*bni_120] + [bni_120]x1[0] ≥ 0∧[(-1)bso_121] ≥ 0)



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

    (5)    (x0[0] + [-2] + [-1]x1[0] ≥ 0∧x0[0] + [-1] ≥ 0∧x3[0] + [-1] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3[0], 0), >(x1[0], -1)), >(x0[0], 0)), <(+(x1[0], 1), x0[0])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))), ≥)∧[(-1)Bound*bni_120] + [bni_120]x1[0] ≥ 0∧[(-1)bso_121] ≥ 0)



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

    (6)    (x0[0] + [-2] + [-1]x1[0] ≥ 0∧x0[0] + [-1] ≥ 0∧x3[0] + [-1] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3[0], 0), >(x1[0], -1)), >(x0[0], 0)), <(+(x1[0], 1), x0[0])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))), ≥)∧0 = 0∧[(-1)Bound*bni_120] + [bni_120]x1[0] ≥ 0∧0 = 0∧[(-1)bso_121] ≥ 0)



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

    (7)    (x0[0] ≥ 0∧[1] + x1[0] + x0[0] ≥ 0∧x3[0] + [-1] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3[0], 0), >(x1[0], -1)), >(x0[0], 0)), <(+(x1[0], 1), x0[0])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))), ≥)∧0 = 0∧[(-1)Bound*bni_120] + [bni_120]x1[0] ≥ 0∧0 = 0∧[(-1)bso_121] ≥ 0)



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

    (8)    (x0[0] ≥ 0∧[1] + x1[0] + x0[0] ≥ 0∧x3[0] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3[0], 0), >(x1[0], -1)), >(x0[0], 0)), <(+(x1[0], 1), x0[0])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))), ≥)∧0 = 0∧[(-1)Bound*bni_120] + [bni_120]x1[0] ≥ 0∧0 = 0∧[(-1)bso_121] ≥ 0)







For Pair COND_F4976_1_SEARCH_INVOKEMETHOD(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → F5396_1_SEARCH_INVOKEMETHOD'(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), +(x1, 1), 0)), x1, x2) the following chains were created:
  • We consider the chain COND_F4976_1_SEARCH_INVOKEMETHOD(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[1])), x1[1], x2[1], x3[1])) → F5396_1_SEARCH_INVOKEMETHOD'(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), +(x1[1], 1), 0)), x1[1], x2[1]) which results in the following constraint:

    (9)    (COND_F4976_1_SEARCH_INVOKEMETHOD(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[1])), x1[1], x2[1], x3[1]))≥NonInfC∧COND_F4976_1_SEARCH_INVOKEMETHOD(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[1])), x1[1], x2[1], x3[1]))≥F5396_1_SEARCH_INVOKEMETHOD'(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), +(x1[1], 1), 0)), x1[1], x2[1])∧(UIncreasing(F5396_1_SEARCH_INVOKEMETHOD'(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), +(x1[1], 1), 0)), x1[1], x2[1])), ≥))



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

    (10)    ((UIncreasing(F5396_1_SEARCH_INVOKEMETHOD'(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), +(x1[1], 1), 0)), x1[1], x2[1])), ≥)∧[bni_122] = 0∧[1 + (-1)bso_123] ≥ 0)



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

    (11)    ((UIncreasing(F5396_1_SEARCH_INVOKEMETHOD'(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), +(x1[1], 1), 0)), x1[1], x2[1])), ≥)∧[bni_122] = 0∧[1 + (-1)bso_123] ≥ 0)



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

    (12)    ((UIncreasing(F5396_1_SEARCH_INVOKEMETHOD'(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), +(x1[1], 1), 0)), x1[1], x2[1])), ≥)∧[bni_122] = 0∧[1 + (-1)bso_123] ≥ 0)



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

    (13)    ((UIncreasing(F5396_1_SEARCH_INVOKEMETHOD'(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), +(x1[1], 1), 0)), x1[1], x2[1])), ≥)∧[bni_122] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_123] ≥ 0)







For Pair F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3, 0), >(x1, -1)), >(x0, 0)), <(+(x1, 1), x0)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) the following chains were created:
  • We consider the chain F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])) → COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])), COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3])) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0)) which results in the following constraint:

    (14)    (&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2]))=TRUEf5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])=f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3]) ⇒ F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))≥NonInfC∧F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))≥COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))∧(UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥))



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

    (15)    (<(+(x1[2], 1), x0[2])=TRUE>(x0[2], 0)=TRUE>(x3[2], 0)=TRUE>(x1[2], -1)=TRUEF4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))≥NonInfC∧F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))≥COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))∧(UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥))



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

    (16)    (x0[2] + [-2] + [-1]x1[2] ≥ 0∧x0[2] + [-1] ≥ 0∧x3[2] + [-1] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥)∧[(-1)Bound*bni_124] + [bni_124]x1[2] ≥ 0∧[(-1)bso_125] ≥ 0)



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

    (17)    (x0[2] + [-2] + [-1]x1[2] ≥ 0∧x0[2] + [-1] ≥ 0∧x3[2] + [-1] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥)∧[(-1)Bound*bni_124] + [bni_124]x1[2] ≥ 0∧[(-1)bso_125] ≥ 0)



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

    (18)    (x0[2] + [-2] + [-1]x1[2] ≥ 0∧x0[2] + [-1] ≥ 0∧x3[2] + [-1] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥)∧[(-1)Bound*bni_124] + [bni_124]x1[2] ≥ 0∧[(-1)bso_125] ≥ 0)



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

    (19)    (x0[2] + [-2] + [-1]x1[2] ≥ 0∧x0[2] + [-1] ≥ 0∧x3[2] + [-1] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥)∧0 = 0∧[(-1)Bound*bni_124] + [bni_124]x1[2] ≥ 0∧0 = 0∧[(-1)bso_125] ≥ 0)



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

    (20)    (x0[2] ≥ 0∧[1] + x1[2] + x0[2] ≥ 0∧x3[2] + [-1] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥)∧0 = 0∧[(-1)Bound*bni_124] + [bni_124]x1[2] ≥ 0∧0 = 0∧[(-1)bso_125] ≥ 0)



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

    (21)    (x0[2] ≥ 0∧[1] + x1[2] + x0[2] ≥ 0∧x3[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥)∧0 = 0∧[(-1)Bound*bni_124] + [bni_124]x1[2] ≥ 0∧0 = 0∧[(-1)bso_125] ≥ 0)







For Pair COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), +(x1, 1), 0)) the following chains were created:
  • We consider the chain COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3])) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0)) which results in the following constraint:

    (22)    (COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3]))≥NonInfC∧COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3]))≥F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))∧(UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))), ≥))



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

    (23)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))), ≥)∧[bni_126] = 0∧[(-1)bso_127] ≥ 0)



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

    (24)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))), ≥)∧[bni_126] = 0∧[(-1)bso_127] ≥ 0)



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

    (25)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))), ≥)∧[bni_126] = 0∧[(-1)bso_127] ≥ 0)



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

    (26)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))), ≥)∧[bni_126] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_127] ≥ 0)







For Pair F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2, 1), x0), >(x2, -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) the following chains were created:
  • We consider the chain F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)), COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1))) which results in the following constraint:

    (27)    (&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1))=TRUEf5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)=f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0) ⇒ F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))≥NonInfC∧F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))≥COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))∧(UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥))



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

    (28)    (<(+(x2[4], 1), x0[4])=TRUE>(x2[4], -1)=TRUEF4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))≥NonInfC∧F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))≥COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))∧(UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥))



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

    (29)    (x0[4] + [-2] + [-1]x2[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥)∧[(-1)Bound*bni_128] + [bni_128]x1[4] ≥ 0∧[(-1)bso_129] ≥ 0)



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

    (30)    (x0[4] + [-2] + [-1]x2[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥)∧[(-1)Bound*bni_128] + [bni_128]x1[4] ≥ 0∧[(-1)bso_129] ≥ 0)



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

    (31)    (x0[4] + [-2] + [-1]x2[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥)∧[(-1)Bound*bni_128] + [bni_128]x1[4] ≥ 0∧[(-1)bso_129] ≥ 0)



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

    (32)    (x0[4] + [-2] + [-1]x2[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥)∧[bni_128] = 0∧[(-1)Bound*bni_128] ≥ 0∧0 = 0∧[(-1)bso_129] ≥ 0)



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

    (33)    (x0[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥)∧[bni_128] = 0∧[(-1)Bound*bni_128] ≥ 0∧0 = 0∧[(-1)bso_129] ≥ 0)







For Pair COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x1, +(x2, 1))) the following chains were created:
  • We consider the chain COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1))) which results in the following constraint:

    (34)    (COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0))≥NonInfC∧COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0))≥F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))∧(UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))), ≥))



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

    (35)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))), ≥)∧[bni_130] = 0∧[1 + (-1)bso_131] ≥ 0)



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

    (36)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))), ≥)∧[bni_130] = 0∧[1 + (-1)bso_131] ≥ 0)



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

    (37)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))), ≥)∧[bni_130] = 0∧[1 + (-1)bso_131] ≥ 0)



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

    (38)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))), ≥)∧[bni_130] = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_131] ≥ 0)







For Pair F5396_1_SEARCH_INVOKEMETHOD'(f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → COND_F5396_1_SEARCH_INVOKEMETHOD(&&(<(+(x4, 1), x0), >(x4, -1)), f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) the following chains were created:
  • We consider the chain F5396_1_SEARCH_INVOKEMETHOD'(f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6]) → COND_F5396_1_SEARCH_INVOKEMETHOD(&&(<(+(x4[6], 1), x0[6]), >(x4[6], -1)), f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6]), COND_F5396_1_SEARCH_INVOKEMETHOD(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0[7]))), x3[7], x4[7]) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], +(x4[7], 1))) which results in the following constraint:

    (39)    (&&(<(+(x4[6], 1), x0[6]), >(x4[6], -1))=TRUEf4400_0_search_Return(EOS(STATIC_4400(x0[6])))=f4400_0_search_Return(EOS(STATIC_4400(x0[7])))∧x3[6]=x3[7]x4[6]=x4[7]F5396_1_SEARCH_INVOKEMETHOD'(f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])≥NonInfC∧F5396_1_SEARCH_INVOKEMETHOD'(f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])≥COND_F5396_1_SEARCH_INVOKEMETHOD(&&(<(+(x4[6], 1), x0[6]), >(x4[6], -1)), f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])∧(UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD(&&(<(+(x4[6], 1), x0[6]), >(x4[6], -1)), f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])), ≥))



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

    (40)    (<(+(x4[6], 1), x0[6])=TRUE>(x4[6], -1)=TRUEF5396_1_SEARCH_INVOKEMETHOD'(f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])≥NonInfC∧F5396_1_SEARCH_INVOKEMETHOD'(f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])≥COND_F5396_1_SEARCH_INVOKEMETHOD(&&(<(+(x4[6], 1), x0[6]), >(x4[6], -1)), f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])∧(UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD(&&(<(+(x4[6], 1), x0[6]), >(x4[6], -1)), f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])), ≥))



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

    (41)    (x0[6] + [-2] + [-1]x4[6] ≥ 0∧x4[6] ≥ 0 ⇒ (UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD(&&(<(+(x4[6], 1), x0[6]), >(x4[6], -1)), f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])), ≥)∧[(-1)bni_132 + (-1)Bound*bni_132] + [bni_132]x3[6] ≥ 0∧[(-1)bso_133] ≥ 0)



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

    (42)    (x0[6] + [-2] + [-1]x4[6] ≥ 0∧x4[6] ≥ 0 ⇒ (UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD(&&(<(+(x4[6], 1), x0[6]), >(x4[6], -1)), f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])), ≥)∧[(-1)bni_132 + (-1)Bound*bni_132] + [bni_132]x3[6] ≥ 0∧[(-1)bso_133] ≥ 0)



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

    (43)    (x0[6] + [-2] + [-1]x4[6] ≥ 0∧x4[6] ≥ 0 ⇒ (UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD(&&(<(+(x4[6], 1), x0[6]), >(x4[6], -1)), f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])), ≥)∧[(-1)bni_132 + (-1)Bound*bni_132] + [bni_132]x3[6] ≥ 0∧[(-1)bso_133] ≥ 0)



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

    (44)    (x0[6] + [-2] + [-1]x4[6] ≥ 0∧x4[6] ≥ 0 ⇒ (UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD(&&(<(+(x4[6], 1), x0[6]), >(x4[6], -1)), f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])), ≥)∧[bni_132] = 0∧[(-1)bni_132 + (-1)Bound*bni_132] ≥ 0∧0 = 0∧[(-1)bso_133] ≥ 0)



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

    (45)    (x0[6] ≥ 0∧x4[6] ≥ 0 ⇒ (UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD(&&(<(+(x4[6], 1), x0[6]), >(x4[6], -1)), f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])), ≥)∧[bni_132] = 0∧[(-1)bni_132 + (-1)Bound*bni_132] ≥ 0∧0 = 0∧[(-1)bso_133] ≥ 0)







For Pair COND_F5396_1_SEARCH_INVOKEMETHOD(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x3, +(x4, 1))) the following chains were created:
  • We consider the chain COND_F5396_1_SEARCH_INVOKEMETHOD(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0[7]))), x3[7], x4[7]) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], +(x4[7], 1))) which results in the following constraint:

    (46)    (COND_F5396_1_SEARCH_INVOKEMETHOD(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0[7]))), x3[7], x4[7])≥NonInfC∧COND_F5396_1_SEARCH_INVOKEMETHOD(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0[7]))), x3[7], x4[7])≥F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], +(x4[7], 1)))∧(UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], +(x4[7], 1)))), ≥))



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

    (47)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], +(x4[7], 1)))), ≥)∧[bni_134] = 0∧[(-1)bso_135] ≥ 0)



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

    (48)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], +(x4[7], 1)))), ≥)∧[bni_134] = 0∧[(-1)bso_135] ≥ 0)



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

    (49)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], +(x4[7], 1)))), ≥)∧[bni_134] = 0∧[(-1)bso_135] ≥ 0)



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

    (50)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], +(x4[7], 1)))), ≥)∧[bni_134] = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_135] ≥ 0)







For Pair F5396_1_SEARCH_INVOKEMETHOD'(f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → COND_F5396_1_SEARCH_INVOKEMETHOD1(&&(<(+(x4, 1), x0), >(x4, -1)), f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) the following chains were created:
  • We consider the chain F5396_1_SEARCH_INVOKEMETHOD'(f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8]) → COND_F5396_1_SEARCH_INVOKEMETHOD1(&&(<(+(x4[8], 1), x0[8]), >(x4[8], -1)), f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8]), COND_F5396_1_SEARCH_INVOKEMETHOD1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0[9]))), x3[9], x4[9]) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], +(x4[9], 1))) which results in the following constraint:

    (51)    (&&(<(+(x4[8], 1), x0[8]), >(x4[8], -1))=TRUEf4932_0_search_Return(EOS(STATIC_4932(x0[8])))=f4932_0_search_Return(EOS(STATIC_4932(x0[9])))∧x3[8]=x3[9]x4[8]=x4[9]F5396_1_SEARCH_INVOKEMETHOD'(f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])≥NonInfC∧F5396_1_SEARCH_INVOKEMETHOD'(f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])≥COND_F5396_1_SEARCH_INVOKEMETHOD1(&&(<(+(x4[8], 1), x0[8]), >(x4[8], -1)), f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])∧(UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD1(&&(<(+(x4[8], 1), x0[8]), >(x4[8], -1)), f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])), ≥))



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

    (52)    (<(+(x4[8], 1), x0[8])=TRUE>(x4[8], -1)=TRUEF5396_1_SEARCH_INVOKEMETHOD'(f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])≥NonInfC∧F5396_1_SEARCH_INVOKEMETHOD'(f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])≥COND_F5396_1_SEARCH_INVOKEMETHOD1(&&(<(+(x4[8], 1), x0[8]), >(x4[8], -1)), f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])∧(UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD1(&&(<(+(x4[8], 1), x0[8]), >(x4[8], -1)), f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])), ≥))



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

    (53)    (x0[8] + [-2] + [-1]x4[8] ≥ 0∧x4[8] ≥ 0 ⇒ (UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD1(&&(<(+(x4[8], 1), x0[8]), >(x4[8], -1)), f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])), ≥)∧[(-1)bni_136 + (-1)Bound*bni_136] + [bni_136]x3[8] ≥ 0∧[(-1)bso_137] ≥ 0)



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

    (54)    (x0[8] + [-2] + [-1]x4[8] ≥ 0∧x4[8] ≥ 0 ⇒ (UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD1(&&(<(+(x4[8], 1), x0[8]), >(x4[8], -1)), f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])), ≥)∧[(-1)bni_136 + (-1)Bound*bni_136] + [bni_136]x3[8] ≥ 0∧[(-1)bso_137] ≥ 0)



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

    (55)    (x0[8] + [-2] + [-1]x4[8] ≥ 0∧x4[8] ≥ 0 ⇒ (UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD1(&&(<(+(x4[8], 1), x0[8]), >(x4[8], -1)), f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])), ≥)∧[(-1)bni_136 + (-1)Bound*bni_136] + [bni_136]x3[8] ≥ 0∧[(-1)bso_137] ≥ 0)



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

    (56)    (x0[8] + [-2] + [-1]x4[8] ≥ 0∧x4[8] ≥ 0 ⇒ (UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD1(&&(<(+(x4[8], 1), x0[8]), >(x4[8], -1)), f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])), ≥)∧[bni_136] = 0∧[(-1)bni_136 + (-1)Bound*bni_136] ≥ 0∧0 = 0∧[(-1)bso_137] ≥ 0)



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

    (57)    (x0[8] ≥ 0∧x4[8] ≥ 0 ⇒ (UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD1(&&(<(+(x4[8], 1), x0[8]), >(x4[8], -1)), f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])), ≥)∧[bni_136] = 0∧[(-1)bni_136 + (-1)Bound*bni_136] ≥ 0∧0 = 0∧[(-1)bso_137] ≥ 0)







For Pair COND_F5396_1_SEARCH_INVOKEMETHOD1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x3, +(x4, 1))) the following chains were created:
  • We consider the chain COND_F5396_1_SEARCH_INVOKEMETHOD1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0[9]))), x3[9], x4[9]) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], +(x4[9], 1))) which results in the following constraint:

    (58)    (COND_F5396_1_SEARCH_INVOKEMETHOD1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0[9]))), x3[9], x4[9])≥NonInfC∧COND_F5396_1_SEARCH_INVOKEMETHOD1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0[9]))), x3[9], x4[9])≥F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], +(x4[9], 1)))∧(UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], +(x4[9], 1)))), ≥))



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

    (59)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], +(x4[9], 1)))), ≥)∧[bni_138] = 0∧[(-1)bso_139] ≥ 0)



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

    (60)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], +(x4[9], 1)))), ≥)∧[bni_138] = 0∧[(-1)bso_139] ≥ 0)



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

    (61)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], +(x4[9], 1)))), ≥)∧[bni_138] = 0∧[(-1)bso_139] ≥ 0)



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

    (62)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], +(x4[9], 1)))), ≥)∧[bni_138] = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_139] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3, 0), >(x1, -1)), >(x0, 0)), <(+(x1, 1), x0)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
    • (x0[0] ≥ 0∧[1] + x1[0] + x0[0] ≥ 0∧x3[0] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3[0], 0), >(x1[0], -1)), >(x0[0], 0)), <(+(x1[0], 1), x0[0])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))), ≥)∧0 = 0∧[(-1)Bound*bni_120] + [bni_120]x1[0] ≥ 0∧0 = 0∧[(-1)bso_121] ≥ 0)

  • COND_F4976_1_SEARCH_INVOKEMETHOD(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → F5396_1_SEARCH_INVOKEMETHOD'(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), +(x1, 1), 0)), x1, x2)
    • ((UIncreasing(F5396_1_SEARCH_INVOKEMETHOD'(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), +(x1[1], 1), 0)), x1[1], x2[1])), ≥)∧[bni_122] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_123] ≥ 0)

  • F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3, 0), >(x1, -1)), >(x0, 0)), <(+(x1, 1), x0)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
    • (x0[2] ≥ 0∧[1] + x1[2] + x0[2] ≥ 0∧x3[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥)∧0 = 0∧[(-1)Bound*bni_124] + [bni_124]x1[2] ≥ 0∧0 = 0∧[(-1)bso_125] ≥ 0)

  • COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), +(x1, 1), 0))
    • ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))), ≥)∧[bni_126] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_127] ≥ 0)

  • F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2, 1), x0), >(x2, -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
    • (x0[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥)∧[bni_128] = 0∧[(-1)Bound*bni_128] ≥ 0∧0 = 0∧[(-1)bso_129] ≥ 0)

  • COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x1, +(x2, 1)))
    • ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))), ≥)∧[bni_130] = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_131] ≥ 0)

  • F5396_1_SEARCH_INVOKEMETHOD'(f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → COND_F5396_1_SEARCH_INVOKEMETHOD(&&(<(+(x4, 1), x0), >(x4, -1)), f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4)
    • (x0[6] ≥ 0∧x4[6] ≥ 0 ⇒ (UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD(&&(<(+(x4[6], 1), x0[6]), >(x4[6], -1)), f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])), ≥)∧[bni_132] = 0∧[(-1)bni_132 + (-1)Bound*bni_132] ≥ 0∧0 = 0∧[(-1)bso_133] ≥ 0)

  • COND_F5396_1_SEARCH_INVOKEMETHOD(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x3, +(x4, 1)))
    • ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], +(x4[7], 1)))), ≥)∧[bni_134] = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_135] ≥ 0)

  • F5396_1_SEARCH_INVOKEMETHOD'(f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → COND_F5396_1_SEARCH_INVOKEMETHOD1(&&(<(+(x4, 1), x0), >(x4, -1)), f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4)
    • (x0[8] ≥ 0∧x4[8] ≥ 0 ⇒ (UIncreasing(COND_F5396_1_SEARCH_INVOKEMETHOD1(&&(<(+(x4[8], 1), x0[8]), >(x4[8], -1)), f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])), ≥)∧[bni_136] = 0∧[(-1)bni_136 + (-1)Bound*bni_136] ≥ 0∧0 = 0∧[(-1)bso_137] ≥ 0)

  • COND_F5396_1_SEARCH_INVOKEMETHOD1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0)), x3, +(x4, 1)))
    • ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], +(x4[9], 1)))), ≥)∧[bni_138] = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_139] ≥ 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(f5065_0_safeMove_GE(x1, x2, x3, x4, x5)) = [-1] + [-1]x1 + [-1]x4 + [-1]x5   
POL(EOS(x1)) = x1   
POL(STATIC_5065(x1)) = x1   
POL(Cond_f5065_0_safeMove_GE(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x2 + [-1]x5 + [-1]x6   
POL(>=(x1, x2)) = [-1]   
POL(f5094_0_safeMove_Return(x1, x2, x3, x4)) = [-1] + [-1]x2   
POL(STATIC_5094(x1)) = x1   
POL(Cond_f5065_0_safeMove_GE1(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x2 + [-1]x5 + [-1]x6   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(0) = 0   
POL(<(x1, x2)) = [-1]   
POL(f5683_0_safeMove_ArrayAccess(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x1   
POL(Cond_f5065_0_safeMove_GE2(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x2 + [-1]x5 + [-1]x6   
POL(-1) = [-1]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(Cond_f5065_0_safeMove_GE3(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x2 + [-1]x5 + [-1]x6   
POL(f5254_1_safeMove_InvokeMethod(x1, x2)) = [-1] + [-1]x1   
POL(f5454_0_wrongPos_Return(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2 + [-1]x1   
POL(STATIC_5454(x1)) = x1   
POL(Cond_f5065_0_safeMove_GE4(x1, x2, x3, x4, x5, x6, x7)) = [-1] + [-1]x7 + [-1]x2 + [-1]x5 + [-1]x6   
POL(!(x1)) = [-1]   
POL(=(x1, x2)) = [-1]   
POL(-(x1, x2)) = x1 + [-1]x2   
POL(f5788_0_wrongPos_Return(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2 + [-1]x1   
POL(STATIC_5788(x1)) = x1   
POL(Cond_f5065_0_safeMove_GE5(x1, x2, x3, x4, x5, x6, x7)) = [-1] + [-1]x6 + [-1]x3 + [-1]x2 + [-1]x5   
POL(f5815_0_wrongPos_Return(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2 + [-1]x1   
POL(STATIC_5815(x1)) = x1   
POL(Cond_f5065_0_safeMove_GE6(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x6 + [-1]x3 + [-1]x5 + [-1]x2   
POL(Cond_f5065_0_safeMove_GE7(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x5 + [-1]x6 + [-1]x3 + [-1]x2   
POL(f5882_0_safeMove_NE(x1, x2, x3, x4, x5)) = [-1] + [-1]x4 + [-1]x2 + [-1]x1 + [-1]x3   
POL(STATIC_5882(x1)) = x1   
POL(f4976_1_search_InvokeMethod(x1)) = [1] + [-1]x1   
POL(Cond_f4976_1_search_InvokeMethod(x1, x2)) = [-1] + [-1]x2   
POL(f4889_0_search_GE(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x1 + [-1]x2   
POL(STATIC_4889(x1)) = x1   
POL(Cond_f4976_1_search_InvokeMethod1(x1, x2)) = [-1] + [-1]x2   
POL(<=(x1, x2)) = [-1]   
POL(f6235_0_search_ArrayAccess(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2 + [-1]x1   
POL(STATIC_6235(x1)) = x1   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1)) = x1   
POL(Cond_f4976_1_search_InvokeMethod2(x1, x2)) = [-1] + [-1]x2   
POL(f6255_0_search_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(Cond_f4976_1_search_InvokeMethod3(x1, x2)) = [-1] + [-1]x2   
POL(f5396_1_search_InvokeMethod(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2 + [-1]x1   
POL(Cond_f4976_1_search_InvokeMethod4(x1, x2)) = [-1] + [-1]x2   
POL(f3965_1_search_InvokeMethod(x1)) = [-1] + [-1]x1   
POL(f4612_0_displayChessboard_GE(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(STATIC_4612(x1)) = x1   
POL(f5816_0_search_InvokeMethod(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(f4400_0_search_Return(x1)) = x1   
POL(STATIC_4400(x1)) = x1   
POL(Cond_f5396_1_search_InvokeMethod(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(f4932_0_search_Return(x1)) = x1   
POL(STATIC_4932(x1)) = x1   
POL(Cond_f5396_1_search_InvokeMethod1(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(f6397_0_search_InvokeMethod(x1)) = x1   
POL(f6156_0_search_InvokeMethod(x1)) = x1   
POL(f6241_0_search_InvokeMethod(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(STATIC_6241(x1)) = x1   
POL(Cond_f5882_0_safeMove_NE(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x5 + [-1]x4 + [-1]x3 + [-1]x2   
POL(Cond_f5882_0_safeMove_NE1(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x5 + [-1]x4 + [-1]x3 + [-1]x2   
POL(Cond_f4889_0_search_GE(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(Cond_f4612_0_displayChessboard_GE(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(f4626_0_displayChessboard_Return(x1)) = x1   
POL(STATIC_4626(x1)) = x1   
POL(Cond_f4612_0_displayChessboard_GE1(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(f5617_0_displayChessboard_GE(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x1 + [-1]x2   
POL(STATIC_5617(x1)) = x1   
POL(Cond_f5617_0_displayChessboard_GE(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(Cond_f5617_0_displayChessboard_GE1(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(Cond_f5617_0_displayChessboard_GE2(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(f6159_0_displayChessboard_ArrayAccess(x1)) = x1   
POL(f6016_0_search_InvokeMethod(x1)) = x1   
POL(Cond_f4889_0_search_GE1(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(F4976_1_SEARCH_INVOKEMETHOD'(x1)) = [-1] + [-1]x1   
POL(COND_F4976_1_SEARCH_INVOKEMETHOD(x1, x2)) = [-1] + [-1]x2   
POL(F5396_1_SEARCH_INVOKEMETHOD'(x1, x2, x3)) = [-1] + x2   
POL(f4993_0_safeMove_ConstantStackPush(x1, x2, x3)) = [-1]x2   
POL(STATIC_4993(x1)) = x1   
POL(COND_F4976_1_SEARCH_INVOKEMETHOD1(x1, x2)) = [-1] + [-1]x2   
POL(COND_F4976_1_SEARCH_INVOKEMETHOD2(x1, x2)) = [-1] + [-1]x2   
POL(COND_F5396_1_SEARCH_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x3   
POL(COND_F5396_1_SEARCH_INVOKEMETHOD1(x1, x2, x3, x4)) = [-1] + x3   

The following pairs are in P>:

COND_F4976_1_SEARCH_INVOKEMETHOD(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[1])), x1[1], x2[1], x3[1])) → F5396_1_SEARCH_INVOKEMETHOD'(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), +(x1[1], 1), 0)), x1[1], x2[1])
COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))

The following pairs are in Pbound:

F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0])) → COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3[0], 0), >(x1[0], -1)), >(x0[0], 0)), <(+(x1[0], 1), x0[0])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))
F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])) → COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))

The following pairs are in P:

F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0])) → COND_F4976_1_SEARCH_INVOKEMETHOD(&&(&&(&&(>(x3[0], 0), >(x1[0], -1)), >(x0[0], 0)), <(+(x1[0], 1), x0[0])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))
F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])) → COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))
COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3])) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))
F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))
F5396_1_SEARCH_INVOKEMETHOD'(f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6]) → COND_F5396_1_SEARCH_INVOKEMETHOD(&&(<(+(x4[6], 1), x0[6]), >(x4[6], -1)), f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])
COND_F5396_1_SEARCH_INVOKEMETHOD(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0[7]))), x3[7], x4[7]) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], +(x4[7], 1)))
F5396_1_SEARCH_INVOKEMETHOD'(f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8]) → COND_F5396_1_SEARCH_INVOKEMETHOD1(&&(<(+(x4[8], 1), x0[8]), >(x4[8], -1)), f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])
COND_F5396_1_SEARCH_INVOKEMETHOD1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0[9]))), x3[9], x4[9]) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], +(x4[9], 1)))

There are no usable rules.

(41) Complex Obligation (AND)

(42) 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:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE(x4 >= x1, EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE1(x4 >= x0 && x3 > 0 && x4 < x1, EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5683_0_safeMove_ArrayAccess(x1, x2, x4)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x4, x1) → Cond_f5065_0_safeMove_GE2(x4 < x1 && x4 > -1, EOS(STATIC_5065(x0)), x2, 0, x4, x1)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x2, 0, x4, x1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x4 + 1, x1)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE3(x4 < x1 && x3 > 0 && x4 < x0, EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x4, x2), x2)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE4(x4 > -1 && x4 < x1 && x4 < x0 && x3 > 0 && x2 > -1 && !(x2 = x5) && !(x1 - x4 = x2 - x5) && !(x1 - x4 = x5 - x2), EOS(STATIC_5065(x0)), x2, x3, x4, x1, x5)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1, x5) → f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x4), x5)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x1, x1) → Cond_f5065_0_safeMove_GE5(x3 > 0 && x1 < x0 && x1 < x1, EOS(STATIC_5065(x0)), x2, x3, x1, x1, x4)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x2, x3, x1, x1, x4) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x1), x4)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x1) → Cond_f5065_0_safeMove_GE6(x3 > -1 && x3 < x1 && x3 < x0 && x1 > -1 && x2 > 0, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x1, x3), x3)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x2, x1) → Cond_f5065_0_safeMove_GE7(x3 > 0 && x2 > -1 && x2 < x1 && !(x1 - x2 = x2 - x1) && x2 < x0, EOS(STATIC_5065(x0)), x2, x3, x2, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x2, x3, x2, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x2), x1)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x3, x2), x2) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → Cond_f4976_1_search_InvokeMethod(x2 > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2 + 1)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod1(x1 <= -1 && x3 > 0, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f6235_0_search_ArrayAccess(EOS(STATIC_6235(x0)), java.lang.Object(ARRAY(x0)), x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod2(x1 >= x0 && x3 > 0, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f6255_0_search_ArrayAccess(x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod3(x3 > 0 && x1 + 1 < x0 && x1 > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f5396_1_search_InvokeMethod(f4889_0_search_GE(EOS(STATIC_4889(x0)), x1 + 1, 0), x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod4(x3 > 0 && x1 > -1 && x1 + 1 >= x0 && x1 < x0, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f5396_1_search_InvokeMethod(f3965_1_search_InvokeMethod(f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), 0)), x1, x2)
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x1, x2, x3)) → f5816_0_search_InvokeMethod(x1, x2)
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → Cond_f5396_1_search_InvokeMethod(x4 > -1, f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, x4 + 1)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → Cond_f5396_1_search_InvokeMethod1(x4 > -1, f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, x4 + 1)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x1, x3), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x3, x4) → f6397_0_search_InvokeMethod(x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x1, x2), x3, x4) → f6397_0_search_InvokeMethod(x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1) → Cond_f5882_0_safeMove_NE(x3 > -1, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x3 + 1, x1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0) → Cond_f5882_0_safeMove_NE1(x3 > -1, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 1, x3 + 1, x1)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x3) → Cond_f4889_0_search_GE(x3 >= x0, EOS(STATIC_4889(x0)), x1, x3)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x3) → f4932_0_search_Return(EOS(STATIC_4932(x0)))
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1) → Cond_f4612_0_displayChessboard_GE(x1 >= x0, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1) → f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0)))
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1) → Cond_f4612_0_displayChessboard_GE1(x1 < x0, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, 0)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE(x1 > -1 && x2 >= x0, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1 + 1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE1(x2 > -1 && x1 < x0 && x2 < x0, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2 + 1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE2(x1 >= x0 && x2 < x0, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f6159_0_displayChessboard_ArrayAccess(x1)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0)))) → f4400_0_search_Return(EOS(STATIC_4400(x0)))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x1)) → f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x3)
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2) → Cond_f4889_0_search_GE1(x2 < x0, EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2) → f4976_1_search_InvokeMethod(f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 1, 0, x1))

The integer pair graph contains the following rules and edges:
(0): F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0])) → COND_F4976_1_SEARCH_INVOKEMETHOD(x3[0] > 0 && x1[0] > -1 && x0[0] > 0 && x1[0] + 1 < x0[0], f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))
(2): F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])) → COND_F4976_1_SEARCH_INVOKEMETHOD1(x3[2] > 0 && x1[2] > -1 && x0[2] > 0 && x1[2] + 1 < x0[2], f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))
(3): COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3])) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), x1[3] + 1, 0))
(4): F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(x2[4] + 1 < x0[4] && x2[4] > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))
(6): F5396_1_SEARCH_INVOKEMETHOD'(f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6]) → COND_F5396_1_SEARCH_INVOKEMETHOD(x4[6] + 1 < x0[6] && x4[6] > -1, f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])
(7): COND_F5396_1_SEARCH_INVOKEMETHOD(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0[7]))), x3[7], x4[7]) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], x4[7] + 1))
(8): F5396_1_SEARCH_INVOKEMETHOD'(f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8]) → COND_F5396_1_SEARCH_INVOKEMETHOD1(x4[8] + 1 < x0[8] && x4[8] > -1, f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])
(9): COND_F5396_1_SEARCH_INVOKEMETHOD1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0[9]))), x3[9], x4[9]) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], x4[9] + 1))

(3) -> (0), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), x1[3] + 1, 0) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))


(7) -> (0), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], x4[7] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))


(9) -> (0), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], x4[9] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[0])), x1[0], x2[0], x3[0]))


(3) -> (2), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), x1[3] + 1, 0) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))


(7) -> (2), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], x4[7] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))


(9) -> (2), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], x4[9] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))


(2) -> (3), if (x3[2] > 0 && x1[2] > -1 && x0[2] > 0 && x1[2] + 1 < x0[2]f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3]))


(3) -> (4), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), x1[3] + 1, 0) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))


(7) -> (4), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], x4[7] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))


(9) -> (4), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], x4[9] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))


(6) -> (7), if (x4[6] + 1 < x0[6] && x4[6] > -1f4400_0_search_Return(EOS(STATIC_4400(x0[6]))) →* f4400_0_search_Return(EOS(STATIC_4400(x0[7])))∧x3[6]* x3[7]x4[6]* x4[7])


(8) -> (9), if (x4[8] + 1 < x0[8] && x4[8] > -1f4932_0_search_Return(EOS(STATIC_4932(x0[8]))) →* f4932_0_search_Return(EOS(STATIC_4932(x0[9])))∧x3[8]* x3[9]x4[8]* x4[9])



The set Q consists of the following terms:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x1, 0, x2, x3)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4, x5)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x3, x4)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x1, x2, x1, x3)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x2, x3), x3)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4)
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x0, x1, x2))
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x0), x1, x2)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x2, x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x0), x1, x2)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x2)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0))))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x0))
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x0), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2)

(43) IDependencyGraphProof (EQUIVALENT transformation)

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

(44) 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:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE(x4 >= x1, EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE1(x4 >= x0 && x3 > 0 && x4 < x1, EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5683_0_safeMove_ArrayAccess(x1, x2, x4)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x4, x1) → Cond_f5065_0_safeMove_GE2(x4 < x1 && x4 > -1, EOS(STATIC_5065(x0)), x2, 0, x4, x1)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x2, 0, x4, x1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x4 + 1, x1)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE3(x4 < x1 && x3 > 0 && x4 < x0, EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x4, x2), x2)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE4(x4 > -1 && x4 < x1 && x4 < x0 && x3 > 0 && x2 > -1 && !(x2 = x5) && !(x1 - x4 = x2 - x5) && !(x1 - x4 = x5 - x2), EOS(STATIC_5065(x0)), x2, x3, x4, x1, x5)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1, x5) → f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x4), x5)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x1, x1) → Cond_f5065_0_safeMove_GE5(x3 > 0 && x1 < x0 && x1 < x1, EOS(STATIC_5065(x0)), x2, x3, x1, x1, x4)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x2, x3, x1, x1, x4) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x1), x4)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x1) → Cond_f5065_0_safeMove_GE6(x3 > -1 && x3 < x1 && x3 < x0 && x1 > -1 && x2 > 0, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x1, x3), x3)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x2, x1) → Cond_f5065_0_safeMove_GE7(x3 > 0 && x2 > -1 && x2 < x1 && !(x1 - x2 = x2 - x1) && x2 < x0, EOS(STATIC_5065(x0)), x2, x3, x2, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x2, x3, x2, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x2), x1)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x3, x2), x2) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → Cond_f4976_1_search_InvokeMethod(x2 > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2 + 1)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod1(x1 <= -1 && x3 > 0, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f6235_0_search_ArrayAccess(EOS(STATIC_6235(x0)), java.lang.Object(ARRAY(x0)), x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod2(x1 >= x0 && x3 > 0, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f6255_0_search_ArrayAccess(x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod3(x3 > 0 && x1 + 1 < x0 && x1 > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f5396_1_search_InvokeMethod(f4889_0_search_GE(EOS(STATIC_4889(x0)), x1 + 1, 0), x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod4(x3 > 0 && x1 > -1 && x1 + 1 >= x0 && x1 < x0, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f5396_1_search_InvokeMethod(f3965_1_search_InvokeMethod(f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), 0)), x1, x2)
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x1, x2, x3)) → f5816_0_search_InvokeMethod(x1, x2)
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → Cond_f5396_1_search_InvokeMethod(x4 > -1, f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, x4 + 1)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → Cond_f5396_1_search_InvokeMethod1(x4 > -1, f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, x4 + 1)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x1, x3), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x3, x4) → f6397_0_search_InvokeMethod(x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x1, x2), x3, x4) → f6397_0_search_InvokeMethod(x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1) → Cond_f5882_0_safeMove_NE(x3 > -1, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x3 + 1, x1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0) → Cond_f5882_0_safeMove_NE1(x3 > -1, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 1, x3 + 1, x1)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x3) → Cond_f4889_0_search_GE(x3 >= x0, EOS(STATIC_4889(x0)), x1, x3)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x3) → f4932_0_search_Return(EOS(STATIC_4932(x0)))
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1) → Cond_f4612_0_displayChessboard_GE(x1 >= x0, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1) → f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0)))
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1) → Cond_f4612_0_displayChessboard_GE1(x1 < x0, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, 0)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE(x1 > -1 && x2 >= x0, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1 + 1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE1(x2 > -1 && x1 < x0 && x2 < x0, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2 + 1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE2(x1 >= x0 && x2 < x0, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f6159_0_displayChessboard_ArrayAccess(x1)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0)))) → f4400_0_search_Return(EOS(STATIC_4400(x0)))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x1)) → f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x3)
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2) → Cond_f4889_0_search_GE1(x2 < x0, EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2) → f4976_1_search_InvokeMethod(f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 1, 0, x1))

The integer pair graph contains the following rules and edges:
(3): COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3])) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), x1[3] + 1, 0))
(2): F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])) → COND_F4976_1_SEARCH_INVOKEMETHOD1(x3[2] > 0 && x1[2] > -1 && x0[2] > 0 && x1[2] + 1 < x0[2], f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))

(3) -> (2), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), x1[3] + 1, 0) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))


(2) -> (3), if (x3[2] > 0 && x1[2] > -1 && x0[2] > 0 && x1[2] + 1 < x0[2]f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3]))



The set Q consists of the following terms:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x1, 0, x2, x3)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4, x5)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x3, x4)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x1, x2, x1, x3)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x2, x3), x3)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4)
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x0, x1, x2))
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x0), x1, x2)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x2, x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x0), x1, x2)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x2)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0))))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x0))
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x0), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2)

(45) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(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:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(3): COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3])) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), x1[3] + 1, 0))
(2): F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])) → COND_F4976_1_SEARCH_INVOKEMETHOD1(x3[2] > 0 && x1[2] > -1 && x0[2] > 0 && x1[2] + 1 < x0[2], f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))

(3) -> (2), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), x1[3] + 1, 0) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))


(2) -> (3), if (x3[2] > 0 && x1[2] > -1 && x0[2] > 0 && x1[2] + 1 < x0[2]f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3]))



The set Q consists of the following terms:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x1, 0, x2, x3)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4, x5)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x3, x4)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x1, x2, x1, x3)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x2, x3), x3)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4)
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x0, x1, x2))
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x0), x1, x2)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x2, x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x0), x1, x2)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x2)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0))))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x0))
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x0), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2)

(47) 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@4652a73c 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_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3])) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0)) the following chains were created:
  • We consider the chain COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3])) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0)) which results in the following constraint:

    (1)    (COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3]))≥NonInfC∧COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3]))≥F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))∧(UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))), ≥))



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

    (2)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))), ≥)∧[bni_11] = 0∧[1 + (-1)bso_12] ≥ 0)



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

    (3)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))), ≥)∧[bni_11] = 0∧[1 + (-1)bso_12] ≥ 0)



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

    (4)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))), ≥)∧[bni_11] = 0∧[1 + (-1)bso_12] ≥ 0)



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

    (5)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))), ≥)∧[bni_11] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_12] ≥ 0)







For Pair F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])) → COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])) the following chains were created:
  • We consider the chain F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])) → COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])), COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3])) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0)) which results in the following constraint:

    (6)    (&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2]))=TRUEf5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])=f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3]) ⇒ F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))≥NonInfC∧F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))≥COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))∧(UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥))



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

    (7)    (<(+(x1[2], 1), x0[2])=TRUE>(x0[2], 0)=TRUE>(x3[2], 0)=TRUE>(x1[2], -1)=TRUEF4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))≥NonInfC∧F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))≥COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))∧(UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥))



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

    (8)    (x0[2] + [-2] + [-1]x1[2] ≥ 0∧x0[2] + [-1] ≥ 0∧x3[2] + [-1] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥)∧[(-1)Bound*bni_13] + [bni_13]x1[2] + [bni_13]x0[2] ≥ 0∧[(-1)bso_14] ≥ 0)



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

    (9)    (x0[2] + [-2] + [-1]x1[2] ≥ 0∧x0[2] + [-1] ≥ 0∧x3[2] + [-1] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥)∧[(-1)Bound*bni_13] + [bni_13]x1[2] + [bni_13]x0[2] ≥ 0∧[(-1)bso_14] ≥ 0)



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

    (10)    (x0[2] + [-2] + [-1]x1[2] ≥ 0∧x0[2] + [-1] ≥ 0∧x3[2] + [-1] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥)∧[(-1)Bound*bni_13] + [bni_13]x1[2] + [bni_13]x0[2] ≥ 0∧[(-1)bso_14] ≥ 0)



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

    (11)    (x0[2] + [-2] + [-1]x1[2] ≥ 0∧x0[2] + [-1] ≥ 0∧x3[2] + [-1] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥)∧0 = 0∧[(-1)Bound*bni_13] + [bni_13]x1[2] + [bni_13]x0[2] ≥ 0∧0 = 0∧[(-1)bso_14] ≥ 0)



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

    (12)    (x0[2] ≥ 0∧[1] + x1[2] + x0[2] ≥ 0∧x3[2] + [-1] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥)∧0 = 0∧[(-1)Bound*bni_13 + (2)bni_13] + [(2)bni_13]x1[2] + [bni_13]x0[2] ≥ 0∧0 = 0∧[(-1)bso_14] ≥ 0)



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

    (13)    (x0[2] ≥ 0∧[1] + x1[2] + x0[2] ≥ 0∧x3[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥)∧0 = 0∧[(-1)Bound*bni_13 + (2)bni_13] + [(2)bni_13]x1[2] + [bni_13]x0[2] ≥ 0∧0 = 0∧[(-1)bso_14] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3])) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))
    • ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))), ≥)∧[bni_11] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_12] ≥ 0)

  • F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])) → COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))
    • (x0[2] ≥ 0∧[1] + x1[2] + x0[2] ≥ 0∧x3[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))), ≥)∧0 = 0∧[(-1)Bound*bni_13 + (2)bni_13] + [(2)bni_13]x1[2] + [bni_13]x0[2] ≥ 0∧0 = 0∧[(-1)bso_14] ≥ 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_F4976_1_SEARCH_INVOKEMETHOD1(x1, x2)) = [-1] + [-1]x2   
POL(f5094_0_safeMove_Return(x1, x2, x3, x4)) = [-1] + [-1]x2 + [-1]x1   
POL(EOS(x1)) = x1   
POL(STATIC_5094(x1)) = x1   
POL(F4976_1_SEARCH_INVOKEMETHOD'(x1)) = [-1] + [-1]x1   
POL(f4993_0_safeMove_ConstantStackPush(x1, x2, x3)) = [1] + [-1]x2 + [-1]x1   
POL(STATIC_4993(x1)) = x1   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(0) = 0   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   

The following pairs are in P>:

COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3])) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), +(x1[3], 1), 0))

The following pairs are in Pbound:

F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])) → COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))

The following pairs are in P:

F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])) → COND_F4976_1_SEARCH_INVOKEMETHOD1(&&(&&(&&(>(x3[2], 0), >(x1[2], -1)), >(x0[2], 0)), <(+(x1[2], 1), x0[2])), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))

There are no usable rules.

(48) Complex Obligation (AND)

(49) 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:
(2): F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2])) → COND_F4976_1_SEARCH_INVOKEMETHOD1(x3[2] > 0 && x1[2] > -1 && x0[2] > 0 && x1[2] + 1 < x0[2], f5094_0_safeMove_Return(EOS(STATIC_5094(x0[2])), x1[2], x2[2], x3[2]))


The set Q consists of the following terms:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x1, 0, x2, x3)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4, x5)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x3, x4)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x1, x2, x1, x3)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x2, x3), x3)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4)
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x0, x1, x2))
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x0), x1, x2)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x2, x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x0), x1, x2)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x2)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0))))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x0))
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x0), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2)

(50) IDependencyGraphProof (EQUIVALENT transformation)

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

(51) TRUE

(52) 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:
(3): COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3])) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), x1[3] + 1, 0))


The set Q consists of the following terms:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x1, 0, x2, x3)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4, x5)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x3, x4)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x1, x2, x1, x3)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x2, x3), x3)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4)
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x0, x1, x2))
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x0), x1, x2)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x2, x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x0), x1, x2)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x2)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0))))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x0))
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x0), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2)

(53) IDependencyGraphProof (EQUIVALENT transformation)

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

(54) TRUE

(55) 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:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE(x4 >= x1, EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE1(x4 >= x0 && x3 > 0 && x4 < x1, EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5683_0_safeMove_ArrayAccess(x1, x2, x4)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x4, x1) → Cond_f5065_0_safeMove_GE2(x4 < x1 && x4 > -1, EOS(STATIC_5065(x0)), x2, 0, x4, x1)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x2, 0, x4, x1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x4 + 1, x1)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE3(x4 < x1 && x3 > 0 && x4 < x0, EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x4, x2), x2)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE4(x4 > -1 && x4 < x1 && x4 < x0 && x3 > 0 && x2 > -1 && !(x2 = x5) && !(x1 - x4 = x2 - x5) && !(x1 - x4 = x5 - x2), EOS(STATIC_5065(x0)), x2, x3, x4, x1, x5)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1, x5) → f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x4), x5)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x1, x1) → Cond_f5065_0_safeMove_GE5(x3 > 0 && x1 < x0 && x1 < x1, EOS(STATIC_5065(x0)), x2, x3, x1, x1, x4)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x2, x3, x1, x1, x4) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x1), x4)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x1) → Cond_f5065_0_safeMove_GE6(x3 > -1 && x3 < x1 && x3 < x0 && x1 > -1 && x2 > 0, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x1, x3), x3)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x2, x1) → Cond_f5065_0_safeMove_GE7(x3 > 0 && x2 > -1 && x2 < x1 && !(x1 - x2 = x2 - x1) && x2 < x0, EOS(STATIC_5065(x0)), x2, x3, x2, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x2, x3, x2, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x2), x1)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x3, x2), x2) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → Cond_f4976_1_search_InvokeMethod(x2 > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2 + 1)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod1(x1 <= -1 && x3 > 0, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f6235_0_search_ArrayAccess(EOS(STATIC_6235(x0)), java.lang.Object(ARRAY(x0)), x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod2(x1 >= x0 && x3 > 0, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f6255_0_search_ArrayAccess(x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod3(x3 > 0 && x1 + 1 < x0 && x1 > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f5396_1_search_InvokeMethod(f4889_0_search_GE(EOS(STATIC_4889(x0)), x1 + 1, 0), x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod4(x3 > 0 && x1 > -1 && x1 + 1 >= x0 && x1 < x0, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f5396_1_search_InvokeMethod(f3965_1_search_InvokeMethod(f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), 0)), x1, x2)
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x1, x2, x3)) → f5816_0_search_InvokeMethod(x1, x2)
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → Cond_f5396_1_search_InvokeMethod(x4 > -1, f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, x4 + 1)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → Cond_f5396_1_search_InvokeMethod1(x4 > -1, f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, x4 + 1)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x1, x3), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x3, x4) → f6397_0_search_InvokeMethod(x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x1, x2), x3, x4) → f6397_0_search_InvokeMethod(x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1) → Cond_f5882_0_safeMove_NE(x3 > -1, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x3 + 1, x1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0) → Cond_f5882_0_safeMove_NE1(x3 > -1, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 1, x3 + 1, x1)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x3) → Cond_f4889_0_search_GE(x3 >= x0, EOS(STATIC_4889(x0)), x1, x3)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x3) → f4932_0_search_Return(EOS(STATIC_4932(x0)))
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1) → Cond_f4612_0_displayChessboard_GE(x1 >= x0, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1) → f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0)))
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1) → Cond_f4612_0_displayChessboard_GE1(x1 < x0, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, 0)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE(x1 > -1 && x2 >= x0, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1 + 1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE1(x2 > -1 && x1 < x0 && x2 < x0, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2 + 1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE2(x1 >= x0 && x2 < x0, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f6159_0_displayChessboard_ArrayAccess(x1)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0)))) → f4400_0_search_Return(EOS(STATIC_4400(x0)))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x1)) → f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x3)
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2) → Cond_f4889_0_search_GE1(x2 < x0, EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2) → f4976_1_search_InvokeMethod(f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 1, 0, x1))

The integer pair graph contains the following rules and edges:
(1): COND_F4976_1_SEARCH_INVOKEMETHOD(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[1])), x1[1], x2[1], x3[1])) → F5396_1_SEARCH_INVOKEMETHOD'(f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), x1[1] + 1, 0)), x1[1], x2[1])
(3): COND_F4976_1_SEARCH_INVOKEMETHOD1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[3])), x1[3], x2[3], x3[3])) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), x1[3] + 1, 0))
(4): F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(x2[4] + 1 < x0[4] && x2[4] > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))
(5): COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], x2[5] + 1))
(6): F5396_1_SEARCH_INVOKEMETHOD'(f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6]) → COND_F5396_1_SEARCH_INVOKEMETHOD(x4[6] + 1 < x0[6] && x4[6] > -1, f4400_0_search_Return(EOS(STATIC_4400(x0[6]))), x3[6], x4[6])
(7): COND_F5396_1_SEARCH_INVOKEMETHOD(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0[7]))), x3[7], x4[7]) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], x4[7] + 1))
(8): F5396_1_SEARCH_INVOKEMETHOD'(f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8]) → COND_F5396_1_SEARCH_INVOKEMETHOD1(x4[8] + 1 < x0[8] && x4[8] > -1, f4932_0_search_Return(EOS(STATIC_4932(x0[8]))), x3[8], x4[8])
(9): COND_F5396_1_SEARCH_INVOKEMETHOD1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0[9]))), x3[9], x4[9]) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], x4[9] + 1))

(3) -> (4), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[3])), x1[3] + 1, 0) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))


(5) -> (4), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], x2[5] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))


(7) -> (4), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[7])), x3[7], x4[7] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))


(9) -> (4), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[9])), x3[9], x4[9] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))


(4) -> (5), if (x2[4] + 1 < x0[4] && x2[4] > -1f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0))


(1) -> (6), if (f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), x1[1] + 1, 0)) →* f4400_0_search_Return(EOS(STATIC_4400(x0[6])))∧x1[1]* x3[6]x2[1]* x4[6])


(6) -> (7), if (x4[6] + 1 < x0[6] && x4[6] > -1f4400_0_search_Return(EOS(STATIC_4400(x0[6]))) →* f4400_0_search_Return(EOS(STATIC_4400(x0[7])))∧x3[6]* x3[7]x4[6]* x4[7])


(1) -> (8), if (f4976_1_search_InvokeMethod(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[1])), x1[1] + 1, 0)) →* f4932_0_search_Return(EOS(STATIC_4932(x0[8])))∧x1[1]* x3[8]x2[1]* x4[8])


(8) -> (9), if (x4[8] + 1 < x0[8] && x4[8] > -1f4932_0_search_Return(EOS(STATIC_4932(x0[8]))) →* f4932_0_search_Return(EOS(STATIC_4932(x0[9])))∧x3[8]* x3[9]x4[8]* x4[9])



The set Q consists of the following terms:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x1, 0, x2, x3)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4, x5)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x3, x4)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x1, x2, x1, x3)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x2, x3), x3)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4)
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x0, x1, x2))
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x0), x1, x2)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x2, x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x0), x1, x2)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x2)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0))))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x0))
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x0), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2)

(56) IDependencyGraphProof (EQUIVALENT transformation)

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

(57) 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:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE(x4 >= x1, EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE1(x4 >= x0 && x3 > 0 && x4 < x1, EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5683_0_safeMove_ArrayAccess(x1, x2, x4)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x4, x1) → Cond_f5065_0_safeMove_GE2(x4 < x1 && x4 > -1, EOS(STATIC_5065(x0)), x2, 0, x4, x1)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x2, 0, x4, x1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x4 + 1, x1)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE3(x4 < x1 && x3 > 0 && x4 < x0, EOS(STATIC_5065(x0)), x2, x3, x4, x1)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1) → f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x4, x2), x2)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x4, x1) → Cond_f5065_0_safeMove_GE4(x4 > -1 && x4 < x1 && x4 < x0 && x3 > 0 && x2 > -1 && !(x2 = x5) && !(x1 - x4 = x2 - x5) && !(x1 - x4 = x5 - x2), EOS(STATIC_5065(x0)), x2, x3, x4, x1, x5)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x2, x3, x4, x1, x5) → f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x4), x5)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x1, x1) → Cond_f5065_0_safeMove_GE5(x3 > 0 && x1 < x0 && x1 < x1, EOS(STATIC_5065(x0)), x2, x3, x1, x1, x4)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x2, x3, x1, x1, x4) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x1), x4)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x1) → Cond_f5065_0_safeMove_GE6(x3 > -1 && x3 < x1 && x3 < x0 && x1 > -1 && x2 > 0, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x1, x3), x3)
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, x3, x2, x1) → Cond_f5065_0_safeMove_GE7(x3 > 0 && x2 > -1 && x2 < x1 && !(x1 - x2 = x2 - x1) && x2 < x0, EOS(STATIC_5065(x0)), x2, x3, x2, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x2, x3, x2, x1) → f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x2), x1)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x3, x2), x2) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4) → f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → Cond_f4976_1_search_InvokeMethod(x2 > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0)) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2 + 1)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod1(x1 <= -1 && x3 > 0, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f6235_0_search_ArrayAccess(EOS(STATIC_6235(x0)), java.lang.Object(ARRAY(x0)), x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod2(x1 >= x0 && x3 > 0, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f6255_0_search_ArrayAccess(x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod3(x3 > 0 && x1 + 1 < x0 && x1 > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f5396_1_search_InvokeMethod(f4889_0_search_GE(EOS(STATIC_4889(x0)), x1 + 1, 0), x1, x2)
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → Cond_f4976_1_search_InvokeMethod4(x3 > 0 && x1 > -1 && x1 + 1 >= x0 && x1 < x0, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3)) → f5396_1_search_InvokeMethod(f3965_1_search_InvokeMethod(f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), 0)), x1, x2)
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x1, x2, x3)) → f5816_0_search_InvokeMethod(x1, x2)
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → Cond_f5396_1_search_InvokeMethod(x4 > -1, f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x3, x4) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, x4 + 1)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → Cond_f5396_1_search_InvokeMethod1(x4 > -1, f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x3, x4) → f4889_0_search_GE(EOS(STATIC_4889(x0)), x3, x4 + 1)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x1, x3), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x3, x4) → f6397_0_search_InvokeMethod(x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x1, x2), x3, x4) → f6397_0_search_InvokeMethod(x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1) → Cond_f5882_0_safeMove_NE(x3 > -1, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 0, x3 + 1, x1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0) → Cond_f5882_0_safeMove_NE1(x3 > -1, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0) → f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 1, x3 + 1, x1)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x3) → Cond_f4889_0_search_GE(x3 >= x0, EOS(STATIC_4889(x0)), x1, x3)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x3) → f4932_0_search_Return(EOS(STATIC_4932(x0)))
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1) → Cond_f4612_0_displayChessboard_GE(x1 >= x0, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1) → f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0)))
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1) → Cond_f4612_0_displayChessboard_GE1(x1 < x0, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, 0)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE(x1 > -1 && x2 >= x0, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1 + 1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE1(x2 > -1 && x1 < x0 && x2 < x0, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2 + 1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2) → Cond_f5617_0_displayChessboard_GE2(x1 >= x0 && x2 < x0, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2) → f6159_0_displayChessboard_ArrayAccess(x1)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0)))) → f4400_0_search_Return(EOS(STATIC_4400(x0)))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x1)) → f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x3)
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x1), x4, x5) → f6397_0_search_InvokeMethod(x4)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2) → Cond_f4889_0_search_GE1(x2 < x0, EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2) → f4976_1_search_InvokeMethod(f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x2, 1, 0, x1))

The integer pair graph contains the following rules and edges:
(5): COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], x2[5] + 1))
(4): F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(x2[4] + 1 < x0[4] && x2[4] > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))

(5) -> (4), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], x2[5] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))


(4) -> (5), if (x2[4] + 1 < x0[4] && x2[4] > -1f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0))



The set Q consists of the following terms:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x1, 0, x2, x3)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4, x5)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x3, x4)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x1, x2, x1, x3)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x2, x3), x3)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4)
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x0, x1, x2))
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x0), x1, x2)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x2, x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x0), x1, x2)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x2)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0))))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x0))
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x0), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2)

(58) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(59) 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:
(5): COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], x2[5] + 1))
(4): F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(x2[4] + 1 < x0[4] && x2[4] > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))

(5) -> (4), if (f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], x2[5] + 1) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))


(4) -> (5), if (x2[4] + 1 < x0[4] && x2[4] > -1f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0) →* f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0))



The set Q consists of the following terms:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x1, 0, x2, x3)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4, x5)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x3, x4)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x1, x2, x1, x3)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x2, x3), x3)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4)
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x0, x1, x2))
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x0), x1, x2)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x2, x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x0), x1, x2)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x2)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0))))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x0))
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x0), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2)

(60) 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@4652a73c 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_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1))) the following chains were created:
  • We consider the chain COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1))) which results in the following constraint:

    (1)    (COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0))≥NonInfC∧COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0))≥F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))∧(UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))), ≥))



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

    (2)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (3)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (4)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (5)    ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))), ≥)∧[bni_12] = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_13] ≥ 0)







For Pair F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)) the following chains were created:
  • We consider the chain F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)), COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1))) which results in the following constraint:

    (6)    (&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1))=TRUEf5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)=f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0) ⇒ F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))≥NonInfC∧F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))≥COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))∧(UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥))



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

    (7)    (<(+(x2[4], 1), x0[4])=TRUE>(x2[4], -1)=TRUEF4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))≥NonInfC∧F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))≥COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))∧(UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥))



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

    (8)    (x0[4] + [-2] + [-1]x2[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥)∧[(-1)Bound*bni_14] + [bni_14]x0[4] ≥ 0∧[(-1)bso_15] ≥ 0)



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

    (9)    (x0[4] + [-2] + [-1]x2[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥)∧[(-1)Bound*bni_14] + [bni_14]x0[4] ≥ 0∧[(-1)bso_15] ≥ 0)



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

    (10)    (x0[4] + [-2] + [-1]x2[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥)∧[(-1)Bound*bni_14] + [bni_14]x0[4] ≥ 0∧[(-1)bso_15] ≥ 0)



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

    (11)    (x0[4] + [-2] + [-1]x2[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥)∧0 = 0∧[(-1)Bound*bni_14] + [bni_14]x0[4] ≥ 0∧0 = 0∧[(-1)bso_15] ≥ 0)



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

    (12)    (x0[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥)∧0 = 0∧[(-1)Bound*bni_14 + (2)bni_14] + [bni_14]x2[4] + [bni_14]x0[4] ≥ 0∧0 = 0∧[(-1)bso_15] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))
    • ((UIncreasing(F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))), ≥)∧[bni_12] = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_13] ≥ 0)

  • F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))
    • (x0[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))), ≥)∧0 = 0∧[(-1)Bound*bni_14 + (2)bni_14] + [bni_14]x2[4] + [bni_14]x0[4] ≥ 0∧0 = 0∧[(-1)bso_15] ≥ 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_F4976_1_SEARCH_INVOKEMETHOD2(x1, x2)) = [-1] + [-1]x2   
POL(f5094_0_safeMove_Return(x1, x2, x3, x4)) = [-1] + [-1]x1   
POL(EOS(x1)) = x1   
POL(STATIC_5094(x1)) = x1   
POL(0) = 0   
POL(F4976_1_SEARCH_INVOKEMETHOD'(x1)) = [-1] + [-1]x1   
POL(f4993_0_safeMove_ConstantStackPush(x1, x2, x3)) = [-1]x1   
POL(STATIC_4993(x1)) = x1   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(&&(x1, x2)) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   

The following pairs are in P>:

COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], +(x2[5], 1)))

The following pairs are in Pbound:

F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))

The following pairs are in P:

F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(&&(<(+(x2[4], 1), x0[4]), >(x2[4], -1)), f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))

There are no usable rules.

(61) Complex Obligation (AND)

(62) 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:
(4): F4976_1_SEARCH_INVOKEMETHOD'(f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0)) → COND_F4976_1_SEARCH_INVOKEMETHOD2(x2[4] + 1 < x0[4] && x2[4] > -1, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[4])), x1[4], x2[4], 0))


The set Q consists of the following terms:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x1, 0, x2, x3)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4, x5)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x3, x4)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x1, x2, x1, x3)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x2, x3), x3)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4)
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x0, x1, x2))
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x0), x1, x2)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x2, x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x0), x1, x2)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x2)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0))))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x0))
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x0), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2)

(63) IDependencyGraphProof (EQUIVALENT transformation)

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

(64) TRUE

(65) 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:
(5): COND_F4976_1_SEARCH_INVOKEMETHOD2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0[5])), x1[5], x2[5], 0)) → F4976_1_SEARCH_INVOKEMETHOD'(f4993_0_safeMove_ConstantStackPush(EOS(STATIC_4993(x0[5])), x1[5], x2[5] + 1))


The set Q consists of the following terms:
f5065_0_safeMove_GE(EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE1(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE2(TRUE, EOS(STATIC_5065(x0)), x1, 0, x2, x3)
Cond_f5065_0_safeMove_GE3(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4)
Cond_f5065_0_safeMove_GE4(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x4, x5)
Cond_f5065_0_safeMove_GE5(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x3, x4)
Cond_f5065_0_safeMove_GE6(TRUE, EOS(STATIC_5065(x0)), x1, x2, x3, x1)
Cond_f5065_0_safeMove_GE7(TRUE, EOS(STATIC_5065(x0)), x1, x2, x1, x3)
f5254_1_safeMove_InvokeMethod(f5454_0_wrongPos_Return(EOS(STATIC_5454(x0)), x1, x2, x3), x3)
f5254_1_safeMove_InvokeMethod(f5788_0_wrongPos_Return(EOS(STATIC_5788(x0)), x1, x2, x3), x4)
f5254_1_safeMove_InvokeMethod(f5815_0_wrongPos_Return(EOS(STATIC_5815(x0)), x1, x2, x3), x4)
Cond_f4976_1_search_InvokeMethod(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, 0))
f4976_1_search_InvokeMethod(f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod1(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod2(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod3(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
Cond_f4976_1_search_InvokeMethod4(TRUE, f5094_0_safeMove_Return(EOS(STATIC_5094(x0)), x1, x2, x3))
f4976_1_search_InvokeMethod(f5683_0_safeMove_ArrayAccess(x0, x1, x2))
f5396_1_search_InvokeMethod(f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod(TRUE, f4400_0_search_Return(EOS(STATIC_4400(x0))), x1, x2)
f5396_1_search_InvokeMethod(f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
Cond_f5396_1_search_InvokeMethod1(TRUE, f4932_0_search_Return(EOS(STATIC_4932(x0))), x1, x2)
f5396_1_search_InvokeMethod(f5816_0_search_InvokeMethod(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6156_0_search_InvokeMethod(x0), x1, x2)
f5396_1_search_InvokeMethod(f6241_0_search_InvokeMethod(EOS(STATIC_6241(x0)), x1), x2, x3)
f5396_1_search_InvokeMethod(f6255_0_search_ArrayAccess(x0, x1), x2, x3)
f5396_1_search_InvokeMethod(f6397_0_search_InvokeMethod(x0), x1, x2)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 1)
Cond_f5882_0_safeMove_NE(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 1)
f5882_0_safeMove_NE(EOS(STATIC_5882(x0)), x1, x2, x3, 0)
Cond_f5882_0_safeMove_NE1(TRUE, EOS(STATIC_5882(x0)), x1, x2, x3, 0)
f4889_0_search_GE(EOS(STATIC_4889(x0)), x1, x2)
Cond_f4889_0_search_GE(TRUE, EOS(STATIC_4889(x0)), x1, x2)
f4612_0_displayChessboard_GE(EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE(TRUE, EOS(STATIC_4612(x0)), x1)
Cond_f4612_0_displayChessboard_GE1(TRUE, EOS(STATIC_4612(x0)), x1)
f5617_0_displayChessboard_GE(EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE1(TRUE, EOS(STATIC_5617(x0)), x1, x2)
Cond_f5617_0_displayChessboard_GE2(TRUE, EOS(STATIC_5617(x0)), x1, x2)
f3965_1_search_InvokeMethod(f4626_0_displayChessboard_Return(EOS(STATIC_4626(x0))))
f3965_1_search_InvokeMethod(f6159_0_displayChessboard_ArrayAccess(x0))
f5396_1_search_InvokeMethod(f6016_0_search_InvokeMethod(x0), x1, x2)
Cond_f4889_0_search_GE1(TRUE, EOS(STATIC_4889(x0)), x1, x2)

(66) IDependencyGraphProof (EQUIVALENT transformation)

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

(67) TRUE