(0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_20 (Apple Inc.) Main-Class: Sudoku
public class Sudoku {
private int grid[][];

public Sudoku (int aGrid[][]) {
grid = new int[9][9];
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
grid[i][j] = aGrid[i][j];
}

/*
public String toString () {
String ch = "+---------+---------+---------+\n";
for (int i = 0; i < 9; i++) {
ch += "|";
for (int j = 0; j < 9; j++) {
if (grid[i][j] == 0) ch += " ";
else ch += " " + grid[i][j] + " ";
if (j % 3 == 2) ch += "|";
}
ch += "\n";
if (i % 3 == 2)
ch += "+---------+---------+---------+\n";
}
ch += "\n";
return ch;
}
*/

public boolean resolve () {
int n = 0;
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
if (grid[i][j] == 0) n++;
return resolve_aux(n);
}

private boolean resolve_aux (int nbEmpty) {
if (nbEmpty > 0) {
int i = 0, j = 0;
boolean emptyCell = false;
for (i = 0; i < 9; i++) {
for (j = 0; j < 9; j++)
if (grid[i][j] == 0) { emptyCell = true; break; }
if (emptyCell) break;
}

boolean T[] = new boolean[9];
possibleValues(i, j, T);
for (int k = 0; k < 9; k++)
if (T[k]) {
grid[i][j] = k+1;
if (resolve_aux(nbEmpty - 1))
return true;
else
grid[i][j] = 0;
}
return false;
}
else return true;
}

private void possibleValues (int l, int c, boolean T[]) {
for (int k = 0; k < 9; k++) T[k] = true;

for (int j = 0; j < 9; j++)
if (grid[l][j] != 0) T[grid[l][j]-1] = false;

for (int i = 0; i < 9; i++)
if (grid[i][c] != 0) T[grid[i][c]-1] = false;

l = l - (l % 3);
c = c - (c % 3);
int l3 = l+3, c3 = c+3;
for (int i = l; i < l3; i++)
for (int j = c; j < c3; j++)
if (grid[i][j] != 0) T[grid[i][j]-1] = false;
}

public static void main(String args[]) {
if (args.length >= 2) {
int n = args[0].length() % 10;
int m = args[1].length() % 10;
int example[][] = {
{0, 3, 0, 0, 0, 0, 0, 6, 0},
{7, 0, 0, 0, 1, 0, 0, 0, 9},
{4, 0, 0, 7, 0, 6, 0, 0, 5},

{0, 0, n, 3, 0, 9, 7, 0, 0},
{0, 0, 0, 0, 2, 0, 0, 0, 0},
{0, 0, m, 1, 0, 4, 9, 0, 0},

{6, 0, 0, 2, 0, 8, 0, 0, 1},
{8, 0, 0, 0, 5, 0, 0, 0, 2},
{0, 5, 0, 0, 0, 0, 0, 4 ,0}
};

(new Sudoku(example)).resolve();
/*
Sudoku S = new Sudoku(example);
System.out.println(S);
if (S.resolve()) System.out.println(S);
else System.out.println("No solution !\n\n");
*/
}
}
}


(1) JBCToGraph (SOUND transformation)

Constructed TerminationGraph.

(2) Obligation:

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

Sudoku.<init>([[I)V: Graph of 146 nodes with 1 SCC.

Sudoku.resolve_aux(I)Z: Graph of 454 nodes with 3 SCCs.

Sudoku.possibleValues(II[Z)V: Graph of 746 nodes with 4 SCCs.


(3) TerminationGraphToSCCProof (SOUND transformation)

Splitted TerminationGraph to 8 SCCss.

(4) Complex Obligation (AND)

(5) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Sudoku.possibleValues(II[Z)V
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

(6) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 52 rules for P and 0 rules for R.


P rules:
7471_0_possibleValues_Load(EOS(STATIC_7471), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1274, java.lang.Object(ARRAY(matching2)), i1312, i1361, i1256, i1256) → 7486_0_possibleValues_GE(EOS(STATIC_7486), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1274, java.lang.Object(ARRAY(9)), i1312, i1361, i1256, i1256, i1312) | &&(=(matching1, 9), =(matching2, 9))
7486_0_possibleValues_GE(EOS(STATIC_7486), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1274, java.lang.Object(ARRAY(matching2)), i1312, i1361, i1256, i1256, i1312) → 7500_0_possibleValues_GE(EOS(STATIC_7500), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1274, java.lang.Object(ARRAY(9)), i1312, i1361, i1256, i1256, i1312) | &&(=(matching1, 9), =(matching2, 9))
7500_0_possibleValues_GE(EOS(STATIC_7500), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1274, java.lang.Object(ARRAY(matching2)), i1312, i1361, i1256, i1256, i1312) → 7517_0_possibleValues_Load(EOS(STATIC_7517), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1274, java.lang.Object(ARRAY(9)), i1312, i1361, i1256) | &&(&&(<(i1256, i1312), =(matching1, 9)), =(matching2, 9))
7517_0_possibleValues_Load(EOS(STATIC_7517), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1274, java.lang.Object(ARRAY(matching2)), i1312, i1361, i1256) → 7537_0_possibleValues_Store(EOS(STATIC_7537), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1274, java.lang.Object(ARRAY(9)), i1312, i1361, i1256, i1274) | &&(=(matching1, 9), =(matching2, 9))
7537_0_possibleValues_Store(EOS(STATIC_7537), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1274, java.lang.Object(ARRAY(matching2)), i1312, i1361, i1256, i1274) → 7556_0_possibleValues_Load(EOS(STATIC_7556), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1274, java.lang.Object(ARRAY(9)), i1312, i1361, i1256, i1274) | &&(=(matching1, 9), =(matching2, 9))
7556_0_possibleValues_Load(EOS(STATIC_7556), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1274, java.lang.Object(ARRAY(matching2)), i1312, i1361, i1256, i1274) → 8059_0_possibleValues_Load(EOS(STATIC_8059), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1274, java.lang.Object(ARRAY(9)), i1312, i1361, i1256, i1274) | &&(=(matching1, 9), =(matching2, 9))
8059_0_possibleValues_Load(EOS(STATIC_8059), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2437, i2438) → 8075_0_possibleValues_Load(EOS(STATIC_8075), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2437, i2438, i2438) | &&(=(matching1, 9), =(matching2, 9))
8075_0_possibleValues_Load(EOS(STATIC_8075), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2437, i2438, i2438) → 8094_0_possibleValues_GE(EOS(STATIC_8094), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2437, i2438, i2438, i1361) | &&(=(matching1, 9), =(matching2, 9))
8094_0_possibleValues_GE(EOS(STATIC_8094), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2437, i2438, i2438, i1361) → 8114_0_possibleValues_GE(EOS(STATIC_8114), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2437, i2438, i2438, i1361) | &&(=(matching1, 9), =(matching2, 9))
8094_0_possibleValues_GE(EOS(STATIC_8094), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2437, i2438, i2438, i1361) → 8115_0_possibleValues_GE(EOS(STATIC_8115), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2437, i2438, i2438, i1361) | &&(=(matching1, 9), =(matching2, 9))
8114_0_possibleValues_GE(EOS(STATIC_8114), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2437, i2438, i2438, i1361) → 8137_0_possibleValues_Inc(EOS(STATIC_8137), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2437) | &&(&&(>=(i2438, i1361), =(matching1, 9)), =(matching2, 9))
8137_0_possibleValues_Inc(EOS(STATIC_8137), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2437) → 8148_0_possibleValues_JMP(EOS(STATIC_8148), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, +(i2437, 1)) | &&(=(matching1, 9), =(matching2, 9))
8148_0_possibleValues_JMP(EOS(STATIC_8148), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2543) → 8158_0_possibleValues_Load(EOS(STATIC_8158), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2543) | &&(=(matching1, 9), =(matching2, 9))
8158_0_possibleValues_Load(EOS(STATIC_8158), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2543) → 7460_0_possibleValues_Load(EOS(STATIC_7460), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2543) | &&(=(matching1, 9), =(matching2, 9))
7460_0_possibleValues_Load(EOS(STATIC_7460), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1274, java.lang.Object(ARRAY(matching2)), i1312, i1361, i1256) → 7471_0_possibleValues_Load(EOS(STATIC_7471), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1274, java.lang.Object(ARRAY(9)), i1312, i1361, i1256, i1256) | &&(=(matching1, 9), =(matching2, 9))
8115_0_possibleValues_GE(EOS(STATIC_8115), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2437, i2438, i2438, i1361) → 8138_0_possibleValues_Load(EOS(STATIC_8138), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2437, i2438) | &&(&&(<(i2438, i1361), =(matching1, 9)), =(matching2, 9))
8138_0_possibleValues_Load(EOS(STATIC_8138), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2437, i2438) → 8149_0_possibleValues_FieldAccess(EOS(STATIC_8149), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2437, i2438, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 9))
8149_0_possibleValues_FieldAccess(EOS(STATIC_8149), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2437, i2438, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 8159_0_possibleValues_Load(EOS(STATIC_8159), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2437, i2438, java.lang.Object(ARRAY(9))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8159_0_possibleValues_Load(EOS(STATIC_8159), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2437, i2438, java.lang.Object(ARRAY(matching3))) → 8171_0_possibleValues_ArrayAccess(EOS(STATIC_8171), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2437, i2438, java.lang.Object(ARRAY(9)), i2437) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8171_0_possibleValues_ArrayAccess(EOS(STATIC_8171), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2564, i2438, java.lang.Object(ARRAY(matching3)), i2564) → 8180_0_possibleValues_ArrayAccess(EOS(STATIC_8180), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2564, i2438, java.lang.Object(ARRAY(9)), i2564) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8180_0_possibleValues_ArrayAccess(EOS(STATIC_8180), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2438, java.lang.Object(ARRAY(matching3)), i2578) → 8197_0_possibleValues_ArrayAccess(EOS(STATIC_8197), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2438, java.lang.Object(ARRAY(9)), i2578) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8197_0_possibleValues_ArrayAccess(EOS(STATIC_8197), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2438, java.lang.Object(ARRAY(matching3)), i2578) → 8207_0_possibleValues_Load(EOS(STATIC_8207), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2438, o5714) | &&(&&(&&(<(i2578, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8207_0_possibleValues_Load(EOS(STATIC_8207), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2438, o5714) → 8220_0_possibleValues_ArrayAccess(EOS(STATIC_8220), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2438, o5714, i2438) | &&(=(matching1, 9), =(matching2, 9))
8220_0_possibleValues_ArrayAccess(EOS(STATIC_8220), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2438, java.lang.Object(o5759put), i2438) → 8230_0_possibleValues_ArrayAccess(EOS(STATIC_8230), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2438, java.lang.Object(o5759put), i2438) | &&(=(matching1, 9), =(matching2, 9))
8230_0_possibleValues_ArrayAccess(EOS(STATIC_8230), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2438, java.lang.Object(ARRAY(i2635)), i2438) → 8246_0_possibleValues_ArrayAccess(EOS(STATIC_8246), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2438, java.lang.Object(ARRAY(i2635)), i2438) | &&(&&(>=(i2635, 0), =(matching1, 9)), =(matching2, 9))
8246_0_possibleValues_ArrayAccess(EOS(STATIC_8246), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(i2635)), i2663) → 8265_0_possibleValues_ArrayAccess(EOS(STATIC_8265), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(i2635)), i2663) | &&(=(matching1, 9), =(matching2, 9))
8265_0_possibleValues_ArrayAccess(EOS(STATIC_8265), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(i2635)), i2663) → 8273_0_possibleValues_ArrayAccess(EOS(STATIC_8273), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(i2635)), i2663) | &&(=(matching1, 9), =(matching2, 9))
8273_0_possibleValues_ArrayAccess(EOS(STATIC_8273), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(i2635)), i2663) → 8282_0_possibleValues_EQ(EOS(STATIC_8282), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, i2681) | &&(&&(<(i2663, i2635), =(matching1, 9)), =(matching2, 9))
8282_0_possibleValues_EQ(EOS(STATIC_8282), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, i2727) → 8301_0_possibleValues_EQ(EOS(STATIC_8301), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, i2727) | &&(=(matching1, 9), =(matching2, 9))
8282_0_possibleValues_EQ(EOS(STATIC_8282), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, matching3) → 8302_0_possibleValues_EQ(EOS(STATIC_8302), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
8301_0_possibleValues_EQ(EOS(STATIC_8301), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, i2727) → 8310_0_possibleValues_Load(EOS(STATIC_8310), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663) | &&(&&(!(=(i2727, 0)), =(matching1, 9)), =(matching2, 9))
8310_0_possibleValues_Load(EOS(STATIC_8310), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663) → 8326_0_possibleValues_Load(EOS(STATIC_8326), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
8326_0_possibleValues_Load(EOS(STATIC_8326), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(matching3))) → 8348_0_possibleValues_FieldAccess(EOS(STATIC_8348), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(9)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8348_0_possibleValues_FieldAccess(EOS(STATIC_8348), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(matching3)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching4))))) → 8359_0_possibleValues_Load(EOS(STATIC_8359), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(9))) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
8359_0_possibleValues_Load(EOS(STATIC_8359), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(matching4))) → 8376_0_possibleValues_ArrayAccess(EOS(STATIC_8376), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(9)), i2578) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
8376_0_possibleValues_ArrayAccess(EOS(STATIC_8376), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(matching4)), i2578) → 8400_0_possibleValues_Load(EOS(STATIC_8400), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(9)), o6436) | &&(&&(&&(&&(<(i2578, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
8400_0_possibleValues_Load(EOS(STATIC_8400), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(matching3)), o6436) → 8420_0_possibleValues_ArrayAccess(EOS(STATIC_8420), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(9)), o6436, i2663) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8420_0_possibleValues_ArrayAccess(EOS(STATIC_8420), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(matching3)), java.lang.Object(o6641put), i2663) → 8440_0_possibleValues_ArrayAccess(EOS(STATIC_8440), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(9)), java.lang.Object(o6641put), i2663) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8440_0_possibleValues_ArrayAccess(EOS(STATIC_8440), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(i3137)), i2663) → 8468_0_possibleValues_ArrayAccess(EOS(STATIC_8468), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(i3137)), i2663) | &&(&&(&&(>=(i3137, 0), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8468_0_possibleValues_ArrayAccess(EOS(STATIC_8468), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(i3137)), i2663) → 8491_0_possibleValues_ArrayAccess(EOS(STATIC_8491), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(i3137)), i2663) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8491_0_possibleValues_ArrayAccess(EOS(STATIC_8491), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(i3137)), i2663) → 8522_0_possibleValues_ConstantStackPush(EOS(STATIC_8522), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(9)), i3296) | &&(&&(&&(<(i2663, i3137), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8522_0_possibleValues_ConstantStackPush(EOS(STATIC_8522), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(matching3)), i3296) → 8551_0_possibleValues_IntArithmetic(EOS(STATIC_8551), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(9)), i3296, 1) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8551_0_possibleValues_IntArithmetic(EOS(STATIC_8551), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(matching3)), i3296, matching4) → 8579_0_possibleValues_ConstantStackPush(EOS(STATIC_8579), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(9)), -(i3296, 1)) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 1))
8579_0_possibleValues_ConstantStackPush(EOS(STATIC_8579), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(matching3)), i3478) → 8615_0_possibleValues_ArrayAccess(EOS(STATIC_8615), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(9)), i3478, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8615_0_possibleValues_ArrayAccess(EOS(STATIC_8615), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(matching3)), i3731, matching4) → 8649_0_possibleValues_ArrayAccess(EOS(STATIC_8649), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(9)), i3731, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
8649_0_possibleValues_ArrayAccess(EOS(STATIC_8649), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(matching3)), i3861, matching4) → 8687_0_possibleValues_ArrayAccess(EOS(STATIC_8687), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(9)), i3861, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
8687_0_possibleValues_ArrayAccess(EOS(STATIC_8687), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, java.lang.Object(ARRAY(matching3)), i3861, matching4) → 8726_0_possibleValues_Inc(EOS(STATIC_8726), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663) | &&(&&(&&(&&(<(i3861, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
8726_0_possibleValues_Inc(EOS(STATIC_8726), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663) → 8764_0_possibleValues_JMP(EOS(STATIC_8764), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, +(i2663, 1)) | &&(&&(>=(i2663, 0), =(matching1, 9)), =(matching2, 9))
8764_0_possibleValues_JMP(EOS(STATIC_8764), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i4092) → 8793_0_possibleValues_Load(EOS(STATIC_8793), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i4092) | &&(=(matching1, 9), =(matching2, 9))
8793_0_possibleValues_Load(EOS(STATIC_8793), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i4092) → 8059_0_possibleValues_Load(EOS(STATIC_8059), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i4092) | &&(=(matching1, 9), =(matching2, 9))
8302_0_possibleValues_EQ(EOS(STATIC_8302), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663, matching3) → 8311_0_possibleValues_Inc(EOS(STATIC_8311), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
8311_0_possibleValues_Inc(EOS(STATIC_8311), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2436, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2578, i2663) → 8726_0_possibleValues_Inc(EOS(STATIC_8726), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2436, java.lang.Object(ARRAY(9)), i1312, i1361, i2578, i2663) | &&(=(matching1, 9), =(matching2, 9))
R rules:

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


P rules:
8094_0_possibleValues_GE(EOS(STATIC_8094), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), x1, java.lang.Object(ARRAY(9)), x3, x4, x5, x6, x6, x4) → 8094_0_possibleValues_GE(EOS(STATIC_8094), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), x1, java.lang.Object(ARRAY(9)), x3, x4, +(x5, 1), x1, x1, x4) | &&(>=(x6, x4), >(x3, +(x5, 1)))
8094_0_possibleValues_GE(EOS(STATIC_8094), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), x1, java.lang.Object(ARRAY(9)), x3, x4, x5, x6, x6, x4) → 8094_0_possibleValues_GE(EOS(STATIC_8094), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), x1, java.lang.Object(ARRAY(9)), x3, x4, x5, +(x6, 1), +(x6, 1), x4) | &&(&&(>(+(x6, 1), 0), <(x6, x4)), <(x5, 9))
R rules:

Filtered ground terms:



8094_0_possibleValues_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → 8094_0_possibleValues_GE(x3, x5, x6, x7, x8, x9, x10)
ARRAY(x1) → ARRAY
Sudoku(x1, x2) → Sudoku
EOS(x1) → EOS
Cond_8094_0_possibleValues_GE1(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) → Cond_8094_0_possibleValues_GE1(x1, x4, x6, x7, x8, x9, x10, x11)
Cond_8094_0_possibleValues_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) → Cond_8094_0_possibleValues_GE(x1, x4, x6, x7, x8, x9, x10, x11)

Filtered duplicate args:



8094_0_possibleValues_GE(x1, x2, x3, x4, x5, x6, x7) → 8094_0_possibleValues_GE(x1, x2, x4, x6, x7)
Cond_8094_0_possibleValues_GE(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_8094_0_possibleValues_GE(x1, x2, x3, x5, x7, x8)
Cond_8094_0_possibleValues_GE1(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_8094_0_possibleValues_GE1(x1, x2, x3, x5, x7, x8)

Filtered unneeded arguments:



Cond_8094_0_possibleValues_GE(x1, x2, x3, x4, x5, x6) → Cond_8094_0_possibleValues_GE(x1, x2, x3, x4, x6)

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


P rules:
8094_0_possibleValues_GE(x1, x3, x5, x6, x4) → 8094_0_possibleValues_GE(x1, x3, +(x5, 1), x1, x4) | &&(>=(x6, x4), >(x3, +(x5, 1)))
8094_0_possibleValues_GE(x1, x3, x5, x6, x4) → 8094_0_possibleValues_GE(x1, x3, x5, +(x6, 1), x4) | &&(&&(>(x6, -1), <(x6, x4)), <(x5, 9))
R rules:

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


P rules:
8094_0_POSSIBLEVALUES_GE(x1, x3, x5, x6, x4) → COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6, x4), >(x3, +(x5, 1))), x1, x3, x5, x6, x4)
COND_8094_0_POSSIBLEVALUES_GE(TRUE, x1, x3, x5, x6, x4) → 8094_0_POSSIBLEVALUES_GE(x1, x3, +(x5, 1), x1, x4)
8094_0_POSSIBLEVALUES_GE(x1, x3, x5, x6, x4) → COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6, -1), <(x6, x4)), <(x5, 9)), x1, x3, x5, x6, x4)
COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1, x3, x5, x6, x4) → 8094_0_POSSIBLEVALUES_GE(x1, x3, x5, +(x6, 1), x4)
R rules:

(7) Obligation:

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


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 8094_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0]) → COND_8094_0_POSSIBLEVALUES_GE(x6[0] >= x4[0] && x3[0] > x5[0] + 1, x1[0], x3[0], x5[0], x6[0], x4[0])
(1): COND_8094_0_POSSIBLEVALUES_GE(TRUE, x1[1], x3[1], x5[1], x6[1], x4[1]) → 8094_0_POSSIBLEVALUES_GE(x1[1], x3[1], x5[1] + 1, x1[1], x4[1])
(2): 8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(x6[2] > -1 && x6[2] < x4[2] && x5[2] < 9, x1[2], x3[2], x5[2], x6[2], x4[2])
(3): COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], x6[3] + 1, x4[3])

(0) -> (1), if (x6[0] >= x4[0] && x3[0] > x5[0] + 1x1[0]* x1[1]x3[0]* x3[1]x5[0]* x5[1]x6[0]* x6[1]x4[0]* x4[1])


(1) -> (0), if (x1[1]* x1[0]x3[1]* x3[0]x5[1] + 1* x5[0]x1[1]* x6[0]x4[1]* x4[0])


(1) -> (2), if (x1[1]* x1[2]x3[1]* x3[2]x5[1] + 1* x5[2]x1[1]* x6[2]x4[1]* x4[2])


(2) -> (3), if (x6[2] > -1 && x6[2] < x4[2] && x5[2] < 9x1[2]* x1[3]x3[2]* x3[3]x5[2]* x5[3]x6[2]* x6[3]x4[2]* x4[3])


(3) -> (0), if (x1[3]* x1[0]x3[3]* x3[0]x5[3]* x5[0]x6[3] + 1* x6[0]x4[3]* x4[0])


(3) -> (2), if (x1[3]* x1[2]x3[3]* x3[2]x5[3]* x5[2]x6[3] + 1* x6[2]x4[3]* x4[2])



The set Q is empty.

(8) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: false Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpCand1ShapeHeuristic@3ac4ffdc 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 8094_0_POSSIBLEVALUES_GE(x1, x3, x5, x6, x4) → COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6, x4), >(x3, +(x5, 1))), x1, x3, x5, x6, x4) the following chains were created:
  • We consider the chain 8094_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0]) → COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0]), COND_8094_0_POSSIBLEVALUES_GE(TRUE, x1[1], x3[1], x5[1], x6[1], x4[1]) → 8094_0_POSSIBLEVALUES_GE(x1[1], x3[1], +(x5[1], 1), x1[1], x4[1]) which results in the following constraint:

    (1)    (&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1)))=TRUEx1[0]=x1[1]x3[0]=x3[1]x5[0]=x5[1]x6[0]=x6[1]x4[0]=x4[1]8094_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0])≥NonInfC∧8094_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0])≥COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])∧(UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥))



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

    (2)    (>=(x6[0], x4[0])=TRUE>(x3[0], +(x5[0], 1))=TRUE8094_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0])≥NonInfC∧8094_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0])≥COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])∧(UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥))



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

    (3)    (x6[0] + [-1]x4[0] ≥ 0∧x3[0] + [-2] + [-1]x5[0] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥)∧[(-1)bni_14 + (-1)Bound*bni_14] + [(-1)bni_14]x5[0] + [bni_14]x3[0] ≥ 0∧[(-1)bso_15] ≥ 0)



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

    (4)    (x6[0] + [-1]x4[0] ≥ 0∧x3[0] + [-2] + [-1]x5[0] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥)∧[(-1)bni_14 + (-1)Bound*bni_14] + [(-1)bni_14]x5[0] + [bni_14]x3[0] ≥ 0∧[(-1)bso_15] ≥ 0)



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

    (5)    (x6[0] + [-1]x4[0] ≥ 0∧x3[0] + [-2] + [-1]x5[0] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥)∧[(-1)bni_14 + (-1)Bound*bni_14] + [(-1)bni_14]x5[0] + [bni_14]x3[0] ≥ 0∧[(-1)bso_15] ≥ 0)



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

    (6)    (x6[0] ≥ 0∧x3[0] + [-2] + [-1]x5[0] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥)∧[(-1)bni_14 + (-1)Bound*bni_14] + [(-1)bni_14]x5[0] + [bni_14]x3[0] ≥ 0∧[(-1)bso_15] ≥ 0)



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

    (7)    (x6[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥)∧[bni_14 + (-1)Bound*bni_14] + [bni_14]x3[0] ≥ 0∧[(-1)bso_15] ≥ 0)



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

    (8)    (x6[0] ≥ 0∧x3[0] ≥ 0∧x4[0] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥)∧[bni_14 + (-1)Bound*bni_14] + [bni_14]x3[0] ≥ 0∧[(-1)bso_15] ≥ 0)


    (9)    (x6[0] ≥ 0∧x3[0] ≥ 0∧x4[0] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥)∧[bni_14 + (-1)Bound*bni_14] + [bni_14]x3[0] ≥ 0∧[(-1)bso_15] ≥ 0)



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

    (10)    (x6[0] ≥ 0∧x3[0] ≥ 0∧x4[0] ≥ 0∧x5[0] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥)∧[bni_14 + (-1)Bound*bni_14] + [bni_14]x3[0] ≥ 0∧[(-1)bso_15] ≥ 0)


    (11)    (x6[0] ≥ 0∧x3[0] ≥ 0∧x4[0] ≥ 0∧x5[0] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥)∧[bni_14 + (-1)Bound*bni_14] + [bni_14]x3[0] ≥ 0∧[(-1)bso_15] ≥ 0)



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

    (12)    (x6[0] ≥ 0∧x3[0] ≥ 0∧x4[0] ≥ 0∧x5[0] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥)∧[bni_14 + (-1)Bound*bni_14] + [bni_14]x3[0] ≥ 0∧[(-1)bso_15] ≥ 0)


    (13)    (x6[0] ≥ 0∧x3[0] ≥ 0∧x4[0] ≥ 0∧x5[0] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥)∧[bni_14 + (-1)Bound*bni_14] + [bni_14]x3[0] ≥ 0∧[(-1)bso_15] ≥ 0)







For Pair COND_8094_0_POSSIBLEVALUES_GE(TRUE, x1, x3, x5, x6, x4) → 8094_0_POSSIBLEVALUES_GE(x1, x3, +(x5, 1), x1, x4) the following chains were created:
  • We consider the chain COND_8094_0_POSSIBLEVALUES_GE(TRUE, x1[1], x3[1], x5[1], x6[1], x4[1]) → 8094_0_POSSIBLEVALUES_GE(x1[1], x3[1], +(x5[1], 1), x1[1], x4[1]) which results in the following constraint:

    (14)    (COND_8094_0_POSSIBLEVALUES_GE(TRUE, x1[1], x3[1], x5[1], x6[1], x4[1])≥NonInfC∧COND_8094_0_POSSIBLEVALUES_GE(TRUE, x1[1], x3[1], x5[1], x6[1], x4[1])≥8094_0_POSSIBLEVALUES_GE(x1[1], x3[1], +(x5[1], 1), x1[1], x4[1])∧(UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[1], x3[1], +(x5[1], 1), x1[1], x4[1])), ≥))



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

    (15)    ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[1], x3[1], +(x5[1], 1), x1[1], x4[1])), ≥)∧[bni_16] = 0∧[1 + (-1)bso_17] ≥ 0)



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

    (16)    ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[1], x3[1], +(x5[1], 1), x1[1], x4[1])), ≥)∧[bni_16] = 0∧[1 + (-1)bso_17] ≥ 0)



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

    (17)    ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[1], x3[1], +(x5[1], 1), x1[1], x4[1])), ≥)∧[bni_16] = 0∧[1 + (-1)bso_17] ≥ 0)



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

    (18)    ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[1], x3[1], +(x5[1], 1), x1[1], x4[1])), ≥)∧[bni_16] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_17] ≥ 0)







For Pair 8094_0_POSSIBLEVALUES_GE(x1, x3, x5, x6, x4) → COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6, -1), <(x6, x4)), <(x5, 9)), x1, x3, x5, x6, x4) the following chains were created:
  • We consider the chain 8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2]), COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3]) which results in the following constraint:

    (19)    (&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9))=TRUEx1[2]=x1[3]x3[2]=x3[3]x5[2]=x5[3]x6[2]=x6[3]x4[2]=x4[3]8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥NonInfC∧8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])∧(UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥))



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

    (20)    (<(x5[2], 9)=TRUE>(x6[2], -1)=TRUE<(x6[2], x4[2])=TRUE8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥NonInfC∧8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])∧(UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥))



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

    (21)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] + [-1] + [-1]x6[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(-1)bni_18 + (-1)Bound*bni_18] + [(-1)bni_18]x5[2] + [bni_18]x3[2] ≥ 0∧[(-1)bso_19] ≥ 0)



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

    (22)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] + [-1] + [-1]x6[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(-1)bni_18 + (-1)Bound*bni_18] + [(-1)bni_18]x5[2] + [bni_18]x3[2] ≥ 0∧[(-1)bso_19] ≥ 0)



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

    (23)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] + [-1] + [-1]x6[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(-1)bni_18 + (-1)Bound*bni_18] + [(-1)bni_18]x5[2] + [bni_18]x3[2] ≥ 0∧[(-1)bso_19] ≥ 0)



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

    (24)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] + [-1] + [-1]x6[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[bni_18] = 0∧[(-1)bni_18 + (-1)Bound*bni_18] + [(-1)bni_18]x5[2] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)



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

    (25)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[bni_18] = 0∧[(-1)bni_18 + (-1)Bound*bni_18] + [(-1)bni_18]x5[2] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)



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

    (26)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[bni_18] = 0∧[(-1)bni_18 + (-1)Bound*bni_18] + [(-1)bni_18]x5[2] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)


    (27)    ([8] + x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[bni_18] = 0∧[(-1)bni_18 + (-1)Bound*bni_18] + [bni_18]x5[2] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)







For Pair COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1, x3, x5, x6, x4) → 8094_0_POSSIBLEVALUES_GE(x1, x3, x5, +(x6, 1), x4) the following chains were created:
  • We consider the chain COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3]) which results in the following constraint:

    (28)    (COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3])≥NonInfC∧COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3])≥8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])∧(UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥))



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

    (29)    ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥)∧[bni_20] = 0∧[(-1)bso_21] ≥ 0)



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

    (30)    ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥)∧[bni_20] = 0∧[(-1)bso_21] ≥ 0)



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

    (31)    ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥)∧[bni_20] = 0∧[(-1)bso_21] ≥ 0)



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

    (32)    ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥)∧[bni_20] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_21] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 8094_0_POSSIBLEVALUES_GE(x1, x3, x5, x6, x4) → COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6, x4), >(x3, +(x5, 1))), x1, x3, x5, x6, x4)
    • (x6[0] ≥ 0∧x3[0] ≥ 0∧x4[0] ≥ 0∧x5[0] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥)∧[bni_14 + (-1)Bound*bni_14] + [bni_14]x3[0] ≥ 0∧[(-1)bso_15] ≥ 0)
    • (x6[0] ≥ 0∧x3[0] ≥ 0∧x4[0] ≥ 0∧x5[0] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥)∧[bni_14 + (-1)Bound*bni_14] + [bni_14]x3[0] ≥ 0∧[(-1)bso_15] ≥ 0)
    • (x6[0] ≥ 0∧x3[0] ≥ 0∧x4[0] ≥ 0∧x5[0] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥)∧[bni_14 + (-1)Bound*bni_14] + [bni_14]x3[0] ≥ 0∧[(-1)bso_15] ≥ 0)
    • (x6[0] ≥ 0∧x3[0] ≥ 0∧x4[0] ≥ 0∧x5[0] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])), ≥)∧[bni_14 + (-1)Bound*bni_14] + [bni_14]x3[0] ≥ 0∧[(-1)bso_15] ≥ 0)

  • COND_8094_0_POSSIBLEVALUES_GE(TRUE, x1, x3, x5, x6, x4) → 8094_0_POSSIBLEVALUES_GE(x1, x3, +(x5, 1), x1, x4)
    • ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[1], x3[1], +(x5[1], 1), x1[1], x4[1])), ≥)∧[bni_16] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_17] ≥ 0)

  • 8094_0_POSSIBLEVALUES_GE(x1, x3, x5, x6, x4) → COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6, -1), <(x6, x4)), <(x5, 9)), x1, x3, x5, x6, x4)
    • ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[bni_18] = 0∧[(-1)bni_18 + (-1)Bound*bni_18] + [(-1)bni_18]x5[2] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)
    • ([8] + x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[bni_18] = 0∧[(-1)bni_18 + (-1)Bound*bni_18] + [bni_18]x5[2] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)

  • COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1, x3, x5, x6, x4) → 8094_0_POSSIBLEVALUES_GE(x1, x3, x5, +(x6, 1), x4)
    • ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥)∧[bni_20] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_21] ≥ 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(8094_0_POSSIBLEVALUES_GE(x1, x2, x3, x4, x5)) = [-1] + [-1]x3 + x2   
POL(COND_8094_0_POSSIBLEVALUES_GE(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x4 + x3   
POL(&&(x1, x2)) = [-1]   
POL(>=(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(COND_8094_0_POSSIBLEVALUES_GE1(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x4 + x3   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(9) = [9]   

The following pairs are in P>:

COND_8094_0_POSSIBLEVALUES_GE(TRUE, x1[1], x3[1], x5[1], x6[1], x4[1]) → 8094_0_POSSIBLEVALUES_GE(x1[1], x3[1], +(x5[1], 1), x1[1], x4[1])

The following pairs are in Pbound:

8094_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0]) → COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])

The following pairs are in P:

8094_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0]) → COND_8094_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])
8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])
COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])

There are no usable rules.

(9) Complex Obligation (AND)

(10) 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): 8094_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0]) → COND_8094_0_POSSIBLEVALUES_GE(x6[0] >= x4[0] && x3[0] > x5[0] + 1, x1[0], x3[0], x5[0], x6[0], x4[0])
(2): 8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(x6[2] > -1 && x6[2] < x4[2] && x5[2] < 9, x1[2], x3[2], x5[2], x6[2], x4[2])
(3): COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], x6[3] + 1, x4[3])

(3) -> (0), if (x1[3]* x1[0]x3[3]* x3[0]x5[3]* x5[0]x6[3] + 1* x6[0]x4[3]* x4[0])


(3) -> (2), if (x1[3]* x1[2]x3[3]* x3[2]x5[3]* x5[2]x6[3] + 1* x6[2]x4[3]* x4[2])


(2) -> (3), if (x6[2] > -1 && x6[2] < x4[2] && x5[2] < 9x1[2]* x1[3]x3[2]* x3[3]x5[2]* x5[3]x6[2]* x6[3]x4[2]* x4[3])



The set Q is empty.

(11) IDependencyGraphProof (EQUIVALENT transformation)

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

(12) 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_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], x6[3] + 1, x4[3])
(2): 8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(x6[2] > -1 && x6[2] < x4[2] && x5[2] < 9, x1[2], x3[2], x5[2], x6[2], x4[2])

(3) -> (2), if (x1[3]* x1[2]x3[3]* x3[2]x5[3]* x5[2]x6[3] + 1* x6[2]x4[3]* x4[2])


(2) -> (3), if (x6[2] > -1 && x6[2] < x4[2] && x5[2] < 9x1[2]* x1[3]x3[2]* x3[3]x5[2]* x5[3]x6[2]* x6[3]x4[2]* x4[3])



The set Q is empty.

(13) 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@3ac4ffdc 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_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3]) the following chains were created:
  • We consider the chain COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3]) which results in the following constraint:

    (1)    (COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3])≥NonInfC∧COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3])≥8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])∧(UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥))



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

    (2)    ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥)∧[bni_8] = 0∧[(-1)bso_9] ≥ 0)



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

    (3)    ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥)∧[bni_8] = 0∧[(-1)bso_9] ≥ 0)



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

    (4)    ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥)∧[bni_8] = 0∧[(-1)bso_9] ≥ 0)



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

    (5)    ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥)∧[bni_8] = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_9] ≥ 0)







For Pair 8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2]) the following chains were created:
  • We consider the chain 8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2]), COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3]) which results in the following constraint:

    (6)    (&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9))=TRUEx1[2]=x1[3]x3[2]=x3[3]x5[2]=x5[3]x6[2]=x6[3]x4[2]=x4[3]8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥NonInfC∧8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])∧(UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥))



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

    (7)    (<(x5[2], 9)=TRUE>(x6[2], -1)=TRUE<(x6[2], x4[2])=TRUE8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥NonInfC∧8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])∧(UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥))



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

    (8)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] + [-1] + [-1]x6[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x6[2] + [bni_10]x4[2] + [(-1)bni_10]x5[2] ≥ 0∧[1 + (-1)bso_11] ≥ 0)



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

    (9)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] + [-1] + [-1]x6[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x6[2] + [bni_10]x4[2] + [(-1)bni_10]x5[2] ≥ 0∧[1 + (-1)bso_11] ≥ 0)



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

    (10)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] + [-1] + [-1]x6[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x6[2] + [bni_10]x4[2] + [(-1)bni_10]x5[2] ≥ 0∧[1 + (-1)bso_11] ≥ 0)



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

    (11)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(2)bni_10 + (-1)Bound*bni_10] + [bni_10]x4[2] + [(-1)bni_10]x5[2] ≥ 0∧[1 + (-1)bso_11] ≥ 0)



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

    (12)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(2)bni_10 + (-1)Bound*bni_10] + [bni_10]x4[2] + [(-1)bni_10]x5[2] ≥ 0∧[1 + (-1)bso_11] ≥ 0)


    (13)    ([8] + x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(2)bni_10 + (-1)Bound*bni_10] + [bni_10]x4[2] + [bni_10]x5[2] ≥ 0∧[1 + (-1)bso_11] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])
    • ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥)∧[bni_8] = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_9] ≥ 0)

  • 8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])
    • ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(2)bni_10 + (-1)Bound*bni_10] + [bni_10]x4[2] + [(-1)bni_10]x5[2] ≥ 0∧[1 + (-1)bso_11] ≥ 0)
    • ([8] + x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(2)bni_10 + (-1)Bound*bni_10] + [bni_10]x4[2] + [bni_10]x5[2] ≥ 0∧[1 + (-1)bso_11] ≥ 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_8094_0_POSSIBLEVALUES_GE1(x1, x2, x3, x4, x5, x6)) = x6 + [-1]x4 + [-1]x5   
POL(8094_0_POSSIBLEVALUES_GE(x1, x2, x3, x4, x5)) = [1] + [-1]x4 + x5 + [-1]x3   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(9) = [9]   

The following pairs are in P>:

8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])

The following pairs are in Pbound:

8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])

The following pairs are in P:

COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])

There are no usable rules.

(14) Obligation:

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


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(3): COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], x6[3] + 1, x4[3])


The set Q is empty.

(15) IDependencyGraphProof (EQUIVALENT transformation)

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

(16) TRUE

(17) Obligation:

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


The following domains are used:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_8094_0_POSSIBLEVALUES_GE(TRUE, x1[1], x3[1], x5[1], x6[1], x4[1]) → 8094_0_POSSIBLEVALUES_GE(x1[1], x3[1], x5[1] + 1, x1[1], x4[1])
(2): 8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(x6[2] > -1 && x6[2] < x4[2] && x5[2] < 9, x1[2], x3[2], x5[2], x6[2], x4[2])
(3): COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], x6[3] + 1, x4[3])

(1) -> (2), if (x1[1]* x1[2]x3[1]* x3[2]x5[1] + 1* x5[2]x1[1]* x6[2]x4[1]* x4[2])


(3) -> (2), if (x1[3]* x1[2]x3[3]* x3[2]x5[3]* x5[2]x6[3] + 1* x6[2]x4[3]* x4[2])


(2) -> (3), if (x6[2] > -1 && x6[2] < x4[2] && x5[2] < 9x1[2]* x1[3]x3[2]* x3[3]x5[2]* x5[3]x6[2]* x6[3]x4[2]* x4[3])



The set Q is empty.

(18) IDependencyGraphProof (EQUIVALENT transformation)

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

(19) 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_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], x6[3] + 1, x4[3])
(2): 8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(x6[2] > -1 && x6[2] < x4[2] && x5[2] < 9, x1[2], x3[2], x5[2], x6[2], x4[2])

(3) -> (2), if (x1[3]* x1[2]x3[3]* x3[2]x5[3]* x5[2]x6[3] + 1* x6[2]x4[3]* x4[2])


(2) -> (3), if (x6[2] > -1 && x6[2] < x4[2] && x5[2] < 9x1[2]* x1[3]x3[2]* x3[3]x5[2]* x5[3]x6[2]* x6[3]x4[2]* x4[3])



The set Q is empty.

(20) 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@3ac4ffdc 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_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3]) the following chains were created:
  • We consider the chain COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3]) which results in the following constraint:

    (1)    (COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3])≥NonInfC∧COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3])≥8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])∧(UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥))



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

    (2)    ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥)∧[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(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥)∧[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(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥)∧[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(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥)∧[bni_10] = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_11] ≥ 0)







For Pair 8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2]) the following chains were created:
  • We consider the chain 8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2]), COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3]) which results in the following constraint:

    (6)    (&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9))=TRUEx1[2]=x1[3]x3[2]=x3[3]x5[2]=x5[3]x6[2]=x6[3]x4[2]=x4[3]8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥NonInfC∧8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])∧(UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥))



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

    (7)    (<(x5[2], 9)=TRUE>(x6[2], -1)=TRUE<(x6[2], x4[2])=TRUE8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥NonInfC∧8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])∧(UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥))



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

    (8)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] + [-1] + [-1]x6[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(-1)bni_12 + (-1)Bound*bni_12] + [(-1)bni_12]x6[2] + [bni_12]x4[2] + [(-1)bni_12]x5[2] ≥ 0∧[(-1)bso_13] ≥ 0)



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

    (9)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] + [-1] + [-1]x6[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(-1)bni_12 + (-1)Bound*bni_12] + [(-1)bni_12]x6[2] + [bni_12]x4[2] + [(-1)bni_12]x5[2] ≥ 0∧[(-1)bso_13] ≥ 0)



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

    (10)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] + [-1] + [-1]x6[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(-1)bni_12 + (-1)Bound*bni_12] + [(-1)bni_12]x6[2] + [bni_12]x4[2] + [(-1)bni_12]x5[2] ≥ 0∧[(-1)bso_13] ≥ 0)



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

    (11)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(-1)Bound*bni_12] + [bni_12]x4[2] + [(-1)bni_12]x5[2] ≥ 0∧[(-1)bso_13] ≥ 0)



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

    (12)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(-1)Bound*bni_12] + [bni_12]x4[2] + [(-1)bni_12]x5[2] ≥ 0∧[(-1)bso_13] ≥ 0)


    (13)    ([8] + x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(-1)Bound*bni_12] + [bni_12]x4[2] + [bni_12]x5[2] ≥ 0∧[(-1)bso_13] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])
    • ((UIncreasing(8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])), ≥)∧[bni_10] = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_11] ≥ 0)

  • 8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])
    • ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(-1)Bound*bni_12] + [bni_12]x4[2] + [(-1)bni_12]x5[2] ≥ 0∧[(-1)bso_13] ≥ 0)
    • ([8] + x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])), ≥)∧[(-1)Bound*bni_12] + [bni_12]x4[2] + [bni_12]x5[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_8094_0_POSSIBLEVALUES_GE1(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + [-1]x4 + [-1]x5   
POL(8094_0_POSSIBLEVALUES_GE(x1, x2, x3, x4, x5)) = [-1] + [-1]x4 + x5 + [-1]x3   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(9) = [9]   

The following pairs are in P>:

COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])

The following pairs are in Pbound:

8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])

The following pairs are in P:

8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])

There are no usable rules.

(21) Complex Obligation (AND)

(22) 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): 8094_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_8094_0_POSSIBLEVALUES_GE1(x6[2] > -1 && x6[2] < x4[2] && x5[2] < 9, x1[2], x3[2], x5[2], x6[2], x4[2])


The set Q is empty.

(23) IDependencyGraphProof (EQUIVALENT transformation)

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

(24) TRUE

(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


R is empty.

The integer pair graph contains the following rules and edges:
(3): COND_8094_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 8094_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], x6[3] + 1, x4[3])


The set Q is empty.

(26) IDependencyGraphProof (EQUIVALENT transformation)

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

(27) TRUE

(28) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Sudoku.possibleValues(II[Z)V
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

(29) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 38 rules for P and 0 rules for R.


P rules:
7316_0_possibleValues_ConstantStackPush(EOS(STATIC_7316), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1248, java.lang.Object(ARRAY(matching2)), i1249, i1249) → 7317_0_possibleValues_GE(EOS(STATIC_7317), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1248, java.lang.Object(ARRAY(9)), i1249, i1249, 9) | &&(=(matching1, 9), =(matching2, 9))
7317_0_possibleValues_GE(EOS(STATIC_7317), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1248, java.lang.Object(ARRAY(matching2)), i1254, i1254, matching3) → 7319_0_possibleValues_GE(EOS(STATIC_7319), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1248, java.lang.Object(ARRAY(9)), i1254, i1254, 9) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7319_0_possibleValues_GE(EOS(STATIC_7319), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1248, java.lang.Object(ARRAY(matching2)), i1254, i1254, matching3) → 7321_0_possibleValues_Load(EOS(STATIC_7321), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1248, java.lang.Object(ARRAY(9)), i1254) | &&(&&(&&(<(i1254, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
7321_0_possibleValues_Load(EOS(STATIC_7321), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1248, java.lang.Object(ARRAY(matching2)), i1254) → 7323_0_possibleValues_FieldAccess(EOS(STATIC_7323), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1248, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 9))
7323_0_possibleValues_FieldAccess(EOS(STATIC_7323), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1248, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 7326_0_possibleValues_Load(EOS(STATIC_7326), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1248, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7326_0_possibleValues_Load(EOS(STATIC_7326), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1248, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3))) → 7328_0_possibleValues_ArrayAccess(EOS(STATIC_7328), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1248, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9)), i1254) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7328_0_possibleValues_ArrayAccess(EOS(STATIC_7328), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1248, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3)), i1254) → 7331_0_possibleValues_Load(EOS(STATIC_7331), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1248, java.lang.Object(ARRAY(9)), i1254, o3384) | &&(&&(&&(<(i1254, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
7331_0_possibleValues_Load(EOS(STATIC_7331), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1248, java.lang.Object(ARRAY(matching2)), i1254, o3384) → 7333_0_possibleValues_ArrayAccess(EOS(STATIC_7333), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1248, java.lang.Object(ARRAY(9)), i1254, o3384, i1248) | &&(=(matching1, 9), =(matching2, 9))
7333_0_possibleValues_ArrayAccess(EOS(STATIC_7333), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1248, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(o3386put), i1248) → 7336_0_possibleValues_ArrayAccess(EOS(STATIC_7336), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1248, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(o3386put), i1248) | &&(=(matching1, 9), =(matching2, 9))
7336_0_possibleValues_ArrayAccess(EOS(STATIC_7336), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1248, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(i1257)), i1248) → 7339_0_possibleValues_ArrayAccess(EOS(STATIC_7339), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1248, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(i1257)), i1248) | &&(&&(>=(i1257, 0), =(matching1, 9)), =(matching2, 9))
7339_0_possibleValues_ArrayAccess(EOS(STATIC_7339), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(i1257)), i1259) → 7344_0_possibleValues_ArrayAccess(EOS(STATIC_7344), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(i1257)), i1259) | &&(=(matching1, 9), =(matching2, 9))
7344_0_possibleValues_ArrayAccess(EOS(STATIC_7344), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(i1257)), i1259) → 7349_0_possibleValues_ArrayAccess(EOS(STATIC_7349), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(i1257)), i1259) | &&(=(matching1, 9), =(matching2, 9))
7349_0_possibleValues_ArrayAccess(EOS(STATIC_7349), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(i1257)), i1259) → 7353_0_possibleValues_EQ(EOS(STATIC_7353), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, i1260) | &&(&&(<(i1259, i1257), =(matching1, 9)), =(matching2, 9))
7353_0_possibleValues_EQ(EOS(STATIC_7353), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, i1273) → 7362_0_possibleValues_EQ(EOS(STATIC_7362), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, i1273) | &&(=(matching1, 9), =(matching2, 9))
7353_0_possibleValues_EQ(EOS(STATIC_7353), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, matching3) → 7363_0_possibleValues_EQ(EOS(STATIC_7363), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
7362_0_possibleValues_EQ(EOS(STATIC_7362), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, i1273) → 7368_0_possibleValues_Load(EOS(STATIC_7368), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254) | &&(&&(!(=(i1273, 0)), =(matching1, 9)), =(matching2, 9))
7368_0_possibleValues_Load(EOS(STATIC_7368), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254) → 7374_0_possibleValues_Load(EOS(STATIC_7374), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
7374_0_possibleValues_Load(EOS(STATIC_7374), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3))) → 7385_0_possibleValues_FieldAccess(EOS(STATIC_7385), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7385_0_possibleValues_FieldAccess(EOS(STATIC_7385), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching4))))) → 7393_0_possibleValues_Load(EOS(STATIC_7393), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(9))) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
7393_0_possibleValues_Load(EOS(STATIC_7393), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(matching4))) → 7398_0_possibleValues_ArrayAccess(EOS(STATIC_7398), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(9)), i1254) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
7398_0_possibleValues_ArrayAccess(EOS(STATIC_7398), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(matching4)), i1254) → 7408_0_possibleValues_Load(EOS(STATIC_7408), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9)), o3469) | &&(&&(&&(&&(<(i1254, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
7408_0_possibleValues_Load(EOS(STATIC_7408), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3)), o3469) → 7413_0_possibleValues_ArrayAccess(EOS(STATIC_7413), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9)), o3469, i1259) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7413_0_possibleValues_ArrayAccess(EOS(STATIC_7413), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3)), java.lang.Object(o3481put), i1259) → 7419_0_possibleValues_ArrayAccess(EOS(STATIC_7419), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9)), java.lang.Object(o3481put), i1259) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7419_0_possibleValues_ArrayAccess(EOS(STATIC_7419), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(i1370)), i1259) → 7430_0_possibleValues_ArrayAccess(EOS(STATIC_7430), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(i1370)), i1259) | &&(&&(&&(>=(i1370, 0), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
7430_0_possibleValues_ArrayAccess(EOS(STATIC_7430), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(i1370)), i1259) → 7439_0_possibleValues_ArrayAccess(EOS(STATIC_7439), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(i1370)), i1259) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7439_0_possibleValues_ArrayAccess(EOS(STATIC_7439), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(i1370)), i1259) → 7451_0_possibleValues_ConstantStackPush(EOS(STATIC_7451), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9)), i1411) | &&(&&(&&(<(i1259, i1370), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
7451_0_possibleValues_ConstantStackPush(EOS(STATIC_7451), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3)), i1411) → 7464_0_possibleValues_IntArithmetic(EOS(STATIC_7464), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9)), i1411, 1) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7464_0_possibleValues_IntArithmetic(EOS(STATIC_7464), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3)), i1411, matching4) → 7475_0_possibleValues_ConstantStackPush(EOS(STATIC_7475), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9)), -(i1411, 1)) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 1))
7475_0_possibleValues_ConstantStackPush(EOS(STATIC_7475), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3)), i1462) → 7490_0_possibleValues_ArrayAccess(EOS(STATIC_7490), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9)), i1462, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7490_0_possibleValues_ArrayAccess(EOS(STATIC_7490), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3)), i1536, matching4) → 7505_0_possibleValues_ArrayAccess(EOS(STATIC_7505), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9)), i1536, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
7505_0_possibleValues_ArrayAccess(EOS(STATIC_7505), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3)), i1578, matching4) → 7522_0_possibleValues_ArrayAccess(EOS(STATIC_7522), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254, java.lang.Object(ARRAY(9)), i1578, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
7522_0_possibleValues_ArrayAccess(EOS(STATIC_7522), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, java.lang.Object(ARRAY(matching3)), i1578, matching4) → 7541_0_possibleValues_Inc(EOS(STATIC_7541), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254) | &&(&&(&&(&&(<(i1578, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
7541_0_possibleValues_Inc(EOS(STATIC_7541), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254) → 7563_0_possibleValues_JMP(EOS(STATIC_7563), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), +(i1254, 1)) | &&(&&(>=(i1254, 0), =(matching1, 9)), =(matching2, 9))
7563_0_possibleValues_JMP(EOS(STATIC_7563), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1663) → 7582_0_possibleValues_Load(EOS(STATIC_7582), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1663) | &&(=(matching1, 9), =(matching2, 9))
7582_0_possibleValues_Load(EOS(STATIC_7582), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1663) → 7314_0_possibleValues_Load(EOS(STATIC_7314), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1663) | &&(=(matching1, 9), =(matching2, 9))
7314_0_possibleValues_Load(EOS(STATIC_7314), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1248, java.lang.Object(ARRAY(matching2)), i1249) → 7316_0_possibleValues_ConstantStackPush(EOS(STATIC_7316), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1248, java.lang.Object(ARRAY(9)), i1249, i1249) | &&(=(matching1, 9), =(matching2, 9))
7363_0_possibleValues_EQ(EOS(STATIC_7363), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254, matching3) → 7369_0_possibleValues_Inc(EOS(STATIC_7369), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
7369_0_possibleValues_Inc(EOS(STATIC_7369), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1259, java.lang.Object(ARRAY(matching2)), i1254) → 7541_0_possibleValues_Inc(EOS(STATIC_7541), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1259, java.lang.Object(ARRAY(9)), i1254) | &&(=(matching1, 9), =(matching2, 9))
R rules:

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


P rules:
7316_0_possibleValues_ConstantStackPush(EOS(STATIC_7316), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), x1, java.lang.Object(ARRAY(9)), x3, x3) → 7316_0_possibleValues_ConstantStackPush(EOS(STATIC_7316), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), x1, java.lang.Object(ARRAY(9)), +(x3, 1), +(x3, 1)) | &&(>(+(x3, 1), 0), <(x3, 9))
R rules:

Filtered ground terms:



7316_0_possibleValues_ConstantStackPush(x1, x2, x3, x4, x5, x6) → 7316_0_possibleValues_ConstantStackPush(x3, x5, x6)
ARRAY(x1) → ARRAY
Sudoku(x1, x2) → Sudoku
EOS(x1) → EOS
Cond_7316_0_possibleValues_ConstantStackPush(x1, x2, x3, x4, x5, x6, x7) → Cond_7316_0_possibleValues_ConstantStackPush(x1, x4, x6, x7)

Filtered duplicate args:



7316_0_possibleValues_ConstantStackPush(x1, x2, x3) → 7316_0_possibleValues_ConstantStackPush(x1, x3)
Cond_7316_0_possibleValues_ConstantStackPush(x1, x2, x3, x4) → Cond_7316_0_possibleValues_ConstantStackPush(x1, x2, x4)

Filtered unneeded arguments:



Cond_7316_0_possibleValues_ConstantStackPush(x1, x2, x3) → Cond_7316_0_possibleValues_ConstantStackPush(x1, x3)
7316_0_possibleValues_ConstantStackPush(x1, x2) → 7316_0_possibleValues_ConstantStackPush(x2)

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


P rules:
7316_0_possibleValues_ConstantStackPush(x3) → 7316_0_possibleValues_ConstantStackPush(+(x3, 1)) | &&(>(x3, -1), <(x3, 9))
R rules:

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


P rules:
7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3) → COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3, -1), <(x3, 9)), x3)
COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3) → 7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3, 1))
R rules:

(30) 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): 7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0]) → COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0] > -1 && x3[0] < 9, x3[0])
(1): COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3[1]) → 7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[1] + 1)

(0) -> (1), if (x3[0] > -1 && x3[0] < 9x3[0]* x3[1])


(1) -> (0), if (x3[1] + 1* x3[0])



The set Q is empty.

(31) 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@3ac4ffdc 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 7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3) → COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3, -1), <(x3, 9)), x3) the following chains were created:
  • We consider the chain 7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0]) → COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3[0], -1), <(x3[0], 9)), x3[0]), COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3[1]) → 7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3[1], 1)) which results in the following constraint:

    (1)    (&&(>(x3[0], -1), <(x3[0], 9))=TRUEx3[0]=x3[1]7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0])≥NonInfC∧7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0])≥COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3[0], -1), <(x3[0], 9)), x3[0])∧(UIncreasing(COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3[0], -1), <(x3[0], 9)), x3[0])), ≥))



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

    (2)    (>(x3[0], -1)=TRUE<(x3[0], 9)=TRUE7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0])≥NonInfC∧7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0])≥COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3[0], -1), <(x3[0], 9)), x3[0])∧(UIncreasing(COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3[0], -1), <(x3[0], 9)), x3[0])), ≥))



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

    (3)    (x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0 ⇒ (UIncreasing(COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3[0], -1), <(x3[0], 9)), x3[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x3[0] ≥ 0∧[(-1)bso_11] ≥ 0)



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

    (4)    (x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0 ⇒ (UIncreasing(COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3[0], -1), <(x3[0], 9)), x3[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x3[0] ≥ 0∧[(-1)bso_11] ≥ 0)



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

    (5)    (x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0 ⇒ (UIncreasing(COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3[0], -1), <(x3[0], 9)), x3[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x3[0] ≥ 0∧[(-1)bso_11] ≥ 0)







For Pair COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3) → 7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3, 1)) the following chains were created:
  • We consider the chain COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3[1]) → 7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3[1], 1)) which results in the following constraint:

    (6)    (COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3[1])≥NonInfC∧COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3[1])≥7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3[1], 1))∧(UIncreasing(7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3[1], 1))), ≥))



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

    (7)    ((UIncreasing(7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (8)    ((UIncreasing(7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (9)    ((UIncreasing(7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (10)    ((UIncreasing(7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3[1], 1))), ≥)∧[bni_12] = 0∧0 = 0∧[1 + (-1)bso_13] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3) → COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3, -1), <(x3, 9)), x3)
    • (x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0 ⇒ (UIncreasing(COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3[0], -1), <(x3[0], 9)), x3[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x3[0] ≥ 0∧[(-1)bso_11] ≥ 0)

  • COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3) → 7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3, 1))
    • ((UIncreasing(7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3[1], 1))), ≥)∧[bni_12] = 0∧0 = 0∧[1 + (-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(7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1)) = [-1] + [-1]x1   
POL(COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1, x2)) = [-1] + [-1]x2   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(9) = [9]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   

The following pairs are in P>:

COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3[1]) → 7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3[1], 1))

The following pairs are in Pbound:

7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0]) → COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3[0], -1), <(x3[0], 9)), x3[0])

The following pairs are in P:

7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0]) → COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3[0], -1), <(x3[0], 9)), x3[0])

There are no usable rules.

(32) Complex Obligation (AND)

(33) 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): 7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0]) → COND_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0] > -1 && x3[0] < 9, x3[0])


The set Q is empty.

(34) IDependencyGraphProof (EQUIVALENT transformation)

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

(35) TRUE

(36) 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_7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3[1]) → 7316_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[1] + 1)


The set Q is empty.

(37) IDependencyGraphProof (EQUIVALENT transformation)

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

(38) TRUE

(39) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Sudoku.possibleValues(II[Z)V
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

(40) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 39 rules for P and 0 rules for R.


P rules:
6578_0_possibleValues_ConstantStackPush(EOS(STATIC_6578), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, java.lang.Object(ARRAY(matching2)), i970, i970) → 6580_0_possibleValues_GE(EOS(STATIC_6580), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, java.lang.Object(ARRAY(9)), i970, i970, 9) | &&(=(matching1, 9), =(matching2, 9))
6580_0_possibleValues_GE(EOS(STATIC_6580), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, java.lang.Object(ARRAY(matching2)), i975, i975, matching3) → 6581_0_possibleValues_GE(EOS(STATIC_6581), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, java.lang.Object(ARRAY(9)), i975, i975, 9) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6581_0_possibleValues_GE(EOS(STATIC_6581), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, java.lang.Object(ARRAY(matching2)), i975, i975, matching3) → 6584_0_possibleValues_Load(EOS(STATIC_6584), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, java.lang.Object(ARRAY(9)), i975) | &&(&&(&&(<(i975, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
6584_0_possibleValues_Load(EOS(STATIC_6584), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, java.lang.Object(ARRAY(matching2)), i975) → 6586_0_possibleValues_FieldAccess(EOS(STATIC_6586), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, java.lang.Object(ARRAY(9)), i975, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 9))
6586_0_possibleValues_FieldAccess(EOS(STATIC_6586), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 6588_0_possibleValues_Load(EOS(STATIC_6588), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6588_0_possibleValues_Load(EOS(STATIC_6588), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3))) → 6591_0_possibleValues_ArrayAccess(EOS(STATIC_6591), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i969) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6591_0_possibleValues_ArrayAccess(EOS(STATIC_6591), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i979, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i979) → 6594_0_possibleValues_ArrayAccess(EOS(STATIC_6594), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i979, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i979) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6594_0_possibleValues_ArrayAccess(EOS(STATIC_6594), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i980) → 6598_0_possibleValues_ArrayAccess(EOS(STATIC_6598), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i980) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6598_0_possibleValues_ArrayAccess(EOS(STATIC_6598), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i980) → 6601_0_possibleValues_Load(EOS(STATIC_6601), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, o2259) | &&(&&(&&(<(i980, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
6601_0_possibleValues_Load(EOS(STATIC_6601), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, o2259) → 6606_0_possibleValues_ArrayAccess(EOS(STATIC_6606), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, o2259, i975) | &&(=(matching1, 9), =(matching2, 9))
6606_0_possibleValues_ArrayAccess(EOS(STATIC_6606), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(o2262put), i975) → 6610_0_possibleValues_ArrayAccess(EOS(STATIC_6610), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(o2262put), i975) | &&(=(matching1, 9), =(matching2, 9))
6610_0_possibleValues_ArrayAccess(EOS(STATIC_6610), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6615_0_possibleValues_ArrayAccess(EOS(STATIC_6615), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(i982)), i975) | &&(&&(>=(i982, 0), =(matching1, 9)), =(matching2, 9))
6615_0_possibleValues_ArrayAccess(EOS(STATIC_6615), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6621_0_possibleValues_ArrayAccess(EOS(STATIC_6621), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(i982)), i975) | &&(=(matching1, 9), =(matching2, 9))
6621_0_possibleValues_ArrayAccess(EOS(STATIC_6621), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6627_0_possibleValues_EQ(EOS(STATIC_6627), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, i983) | &&(&&(<(i975, i982), =(matching1, 9)), =(matching2, 9))
6627_0_possibleValues_EQ(EOS(STATIC_6627), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, i985) → 6633_0_possibleValues_EQ(EOS(STATIC_6633), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, i985) | &&(=(matching1, 9), =(matching2, 9))
6627_0_possibleValues_EQ(EOS(STATIC_6627), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, matching3) → 6634_0_possibleValues_EQ(EOS(STATIC_6634), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6633_0_possibleValues_EQ(EOS(STATIC_6633), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, i985) → 6642_0_possibleValues_Load(EOS(STATIC_6642), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975) | &&(&&(!(=(i985, 0)), =(matching1, 9)), =(matching2, 9))
6642_0_possibleValues_Load(EOS(STATIC_6642), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975) → 6652_0_possibleValues_Load(EOS(STATIC_6652), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
6652_0_possibleValues_Load(EOS(STATIC_6652), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3))) → 6661_0_possibleValues_FieldAccess(EOS(STATIC_6661), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6661_0_possibleValues_FieldAccess(EOS(STATIC_6661), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching4))))) → 6672_0_possibleValues_Load(EOS(STATIC_6672), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(9))) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
6672_0_possibleValues_Load(EOS(STATIC_6672), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(matching4))) → 6683_0_possibleValues_ArrayAccess(EOS(STATIC_6683), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(9)), i980) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
6683_0_possibleValues_ArrayAccess(EOS(STATIC_6683), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(matching4)), i980) → 6692_0_possibleValues_Load(EOS(STATIC_6692), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), o2293) | &&(&&(&&(&&(<(i980, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
6692_0_possibleValues_Load(EOS(STATIC_6692), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), o2293) → 6704_0_possibleValues_ArrayAccess(EOS(STATIC_6704), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), o2293, i975) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6704_0_possibleValues_ArrayAccess(EOS(STATIC_6704), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), java.lang.Object(o2318put), i975) → 6718_0_possibleValues_ArrayAccess(EOS(STATIC_6718), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), java.lang.Object(o2318put), i975) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6718_0_possibleValues_ArrayAccess(EOS(STATIC_6718), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(i1013)), i975) → 6726_0_possibleValues_ArrayAccess(EOS(STATIC_6726), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(i1013)), i975) | &&(&&(&&(>=(i1013, 0), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
6726_0_possibleValues_ArrayAccess(EOS(STATIC_6726), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(i1013)), i975) → 6734_0_possibleValues_ArrayAccess(EOS(STATIC_6734), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(i1013)), i975) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6734_0_possibleValues_ArrayAccess(EOS(STATIC_6734), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(i1013)), i975) → 6745_0_possibleValues_ConstantStackPush(EOS(STATIC_6745), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i1014) | &&(&&(&&(<(i975, i1013), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
6745_0_possibleValues_ConstantStackPush(EOS(STATIC_6745), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i1014) → 6754_0_possibleValues_IntArithmetic(EOS(STATIC_6754), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i1014, 1) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6754_0_possibleValues_IntArithmetic(EOS(STATIC_6754), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i1014, matching4) → 6764_0_possibleValues_ConstantStackPush(EOS(STATIC_6764), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), -(i1014, 1)) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 1))
6764_0_possibleValues_ConstantStackPush(EOS(STATIC_6764), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i1015) → 6777_0_possibleValues_ArrayAccess(EOS(STATIC_6777), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i1015, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6777_0_possibleValues_ArrayAccess(EOS(STATIC_6777), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i1019, matching4) → 6789_0_possibleValues_ArrayAccess(EOS(STATIC_6789), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i1019, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
6789_0_possibleValues_ArrayAccess(EOS(STATIC_6789), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i1020, matching4) → 6801_0_possibleValues_ArrayAccess(EOS(STATIC_6801), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i1020, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
6801_0_possibleValues_ArrayAccess(EOS(STATIC_6801), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i1020, matching4) → 6816_0_possibleValues_Inc(EOS(STATIC_6816), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975) | &&(&&(&&(&&(<(i1020, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
6816_0_possibleValues_Inc(EOS(STATIC_6816), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975) → 6833_0_possibleValues_JMP(EOS(STATIC_6833), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), +(i975, 1)) | &&(&&(>=(i975, 0), =(matching1, 9)), =(matching2, 9))
6833_0_possibleValues_JMP(EOS(STATIC_6833), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i1023) → 6848_0_possibleValues_Load(EOS(STATIC_6848), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i1023) | &&(=(matching1, 9), =(matching2, 9))
6848_0_possibleValues_Load(EOS(STATIC_6848), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i1023) → 6576_0_possibleValues_Load(EOS(STATIC_6576), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i1023) | &&(=(matching1, 9), =(matching2, 9))
6576_0_possibleValues_Load(EOS(STATIC_6576), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, java.lang.Object(ARRAY(matching2)), i970) → 6578_0_possibleValues_ConstantStackPush(EOS(STATIC_6578), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, java.lang.Object(ARRAY(9)), i970, i970) | &&(=(matching1, 9), =(matching2, 9))
6634_0_possibleValues_EQ(EOS(STATIC_6634), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, matching3) → 6643_0_possibleValues_Inc(EOS(STATIC_6643), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6643_0_possibleValues_Inc(EOS(STATIC_6643), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975) → 6816_0_possibleValues_Inc(EOS(STATIC_6816), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975) | &&(=(matching1, 9), =(matching2, 9))
R rules:

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


P rules:
6578_0_possibleValues_ConstantStackPush(EOS(STATIC_6578), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), x1, java.lang.Object(ARRAY(9)), x3, x3) → 6578_0_possibleValues_ConstantStackPush(EOS(STATIC_6578), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), x1, java.lang.Object(ARRAY(9)), +(x3, 1), +(x3, 1)) | &&(&&(>(+(x3, 1), 0), <(x3, 9)), <(x1, 9))
R rules:

Filtered ground terms:



6578_0_possibleValues_ConstantStackPush(x1, x2, x3, x4, x5, x6) → 6578_0_possibleValues_ConstantStackPush(x3, x5, x6)
ARRAY(x1) → ARRAY
Sudoku(x1, x2) → Sudoku
EOS(x1) → EOS
Cond_6578_0_possibleValues_ConstantStackPush(x1, x2, x3, x4, x5, x6, x7) → Cond_6578_0_possibleValues_ConstantStackPush(x1, x4, x6, x7)

Filtered duplicate args:



6578_0_possibleValues_ConstantStackPush(x1, x2, x3) → 6578_0_possibleValues_ConstantStackPush(x1, x3)
Cond_6578_0_possibleValues_ConstantStackPush(x1, x2, x3, x4) → Cond_6578_0_possibleValues_ConstantStackPush(x1, x2, x4)

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


P rules:
6578_0_possibleValues_ConstantStackPush(x1, x3) → 6578_0_possibleValues_ConstantStackPush(x1, +(x3, 1)) | &&(&&(>(x3, -1), <(x3, 9)), <(x1, 9))
R rules:

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


P rules:
6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1, x3) → COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3, -1), <(x3, 9)), <(x1, 9)), x1, x3)
COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1, x3) → 6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1, +(x3, 1))
R rules:

(41) 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): 6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0]) → COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0] > -1 && x3[0] < 9 && x1[0] < 9, x1[0], x3[0])
(1): COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1], x3[1]) → 6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1], x3[1] + 1)

(0) -> (1), if (x3[0] > -1 && x3[0] < 9 && x1[0] < 9x1[0]* x1[1]x3[0]* x3[1])


(1) -> (0), if (x1[1]* x1[0]x3[1] + 1* x3[0])



The set Q is empty.

(42) 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@3ac4ffdc 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 6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1, x3) → COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3, -1), <(x3, 9)), <(x1, 9)), x1, x3) the following chains were created:
  • We consider the chain 6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0]) → COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0]), COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1], x3[1]) → 6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1], +(x3[1], 1)) which results in the following constraint:

    (1)    (&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9))=TRUEx1[0]=x1[1]x3[0]=x3[1]6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0])≥NonInfC∧6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0])≥COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0])∧(UIncreasing(COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0])), ≥))



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

    (2)    (<(x1[0], 9)=TRUE>(x3[0], -1)=TRUE<(x3[0], 9)=TRUE6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0])≥NonInfC∧6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0])≥COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0])∧(UIncreasing(COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0])), ≥))



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

    (3)    ([8] + [-1]x1[0] ≥ 0∧x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0 ⇒ (UIncreasing(COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x3[0] + [(-1)bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)



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

    (4)    ([8] + [-1]x1[0] ≥ 0∧x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0 ⇒ (UIncreasing(COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x3[0] + [(-1)bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)



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

    (5)    ([8] + [-1]x1[0] ≥ 0∧x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0 ⇒ (UIncreasing(COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x3[0] + [(-1)bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)



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

    (6)    ([8] + [-1]x1[0] ≥ 0∧x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x3[0] + [(-1)bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)


    (7)    ([8] + x1[0] ≥ 0∧x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x3[0] + [bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)







For Pair COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1, x3) → 6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1, +(x3, 1)) the following chains were created:
  • We consider the chain COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1], x3[1]) → 6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1], +(x3[1], 1)) which results in the following constraint:

    (8)    (COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1], x3[1])≥NonInfC∧COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1], x3[1])≥6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1], +(x3[1], 1))∧(UIncreasing(6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1], +(x3[1], 1))), ≥))



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

    (9)    ((UIncreasing(6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1], +(x3[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (10)    ((UIncreasing(6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1], +(x3[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (11)    ((UIncreasing(6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1], +(x3[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (12)    ((UIncreasing(6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1], +(x3[1], 1))), ≥)∧[bni_12] = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_13] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1, x3) → COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3, -1), <(x3, 9)), <(x1, 9)), x1, x3)
    • ([8] + [-1]x1[0] ≥ 0∧x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x3[0] + [(-1)bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)
    • ([8] + x1[0] ≥ 0∧x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x3[0] + [bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)

  • COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1, x3) → 6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1, +(x3, 1))
    • ((UIncreasing(6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1], +(x3[1], 1))), ≥)∧[bni_12] = 0∧0 = 0∧0 = 0∧[1 + (-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(6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(9) = [9]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   

The following pairs are in P>:

COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1], x3[1]) → 6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1], +(x3[1], 1))

The following pairs are in Pbound:

6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0]) → COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0])

The following pairs are in P:

6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0]) → COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0])

There are no usable rules.

(43) Complex Obligation (AND)

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

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0]) → COND_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0] > -1 && x3[0] < 9 && x1[0] < 9, x1[0], x3[0])


The set Q is empty.

(45) IDependencyGraphProof (EQUIVALENT transformation)

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

(46) TRUE

(47) 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_6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1], x3[1]) → 6578_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1], x3[1] + 1)


The set Q is empty.

(48) IDependencyGraphProof (EQUIVALENT transformation)

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

(49) TRUE

(50) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Sudoku.possibleValues(II[Z)V
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

(51) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 11 rules for P and 0 rules for R.


P rules:
6303_0_possibleValues_ConstantStackPush(EOS(STATIC_6303), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i902, i902) → 6305_0_possibleValues_GE(EOS(STATIC_6305), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i902, i902, 9) | =(matching1, 9)
6305_0_possibleValues_GE(EOS(STATIC_6305), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i905, i905, matching2) → 6306_0_possibleValues_GE(EOS(STATIC_6306), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i905, i905, 9) | &&(=(matching1, 9), =(matching2, 9))
6306_0_possibleValues_GE(EOS(STATIC_6306), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i905, i905, matching2) → 6308_0_possibleValues_Load(EOS(STATIC_6308), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i905) | &&(&&(<(i905, 9), =(matching1, 9)), =(matching2, 9))
6308_0_possibleValues_Load(EOS(STATIC_6308), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i905) → 6311_0_possibleValues_Load(EOS(STATIC_6311), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i905, java.lang.Object(ARRAY(9))) | =(matching1, 9)
6311_0_possibleValues_Load(EOS(STATIC_6311), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i905, java.lang.Object(ARRAY(matching2))) → 6313_0_possibleValues_ConstantStackPush(EOS(STATIC_6313), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i905, java.lang.Object(ARRAY(9)), i905) | &&(=(matching1, 9), =(matching2, 9))
6313_0_possibleValues_ConstantStackPush(EOS(STATIC_6313), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i905, java.lang.Object(ARRAY(matching2)), i905) → 6316_0_possibleValues_ArrayAccess(EOS(STATIC_6316), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i905, java.lang.Object(ARRAY(9)), i905) | &&(=(matching1, 9), =(matching2, 9))
6316_0_possibleValues_ArrayAccess(EOS(STATIC_6316), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i905, java.lang.Object(ARRAY(matching2)), i905) → 6319_0_possibleValues_Inc(EOS(STATIC_6319), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i905) | &&(&&(<(i905, 9), =(matching1, 9)), =(matching2, 9))
6319_0_possibleValues_Inc(EOS(STATIC_6319), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i905) → 6321_0_possibleValues_JMP(EOS(STATIC_6321), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), +(i905, 1)) | &&(>=(i905, 0), =(matching1, 9))
6321_0_possibleValues_JMP(EOS(STATIC_6321), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i907) → 6325_0_possibleValues_Load(EOS(STATIC_6325), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i907) | =(matching1, 9)
6325_0_possibleValues_Load(EOS(STATIC_6325), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i907) → 6302_0_possibleValues_Load(EOS(STATIC_6302), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i907) | =(matching1, 9)
6302_0_possibleValues_Load(EOS(STATIC_6302), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i902) → 6303_0_possibleValues_ConstantStackPush(EOS(STATIC_6303), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i902, i902) | =(matching1, 9)
R rules:

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


P rules:
6303_0_possibleValues_ConstantStackPush(EOS(STATIC_6303), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), x1, x1) → 6303_0_possibleValues_ConstantStackPush(EOS(STATIC_6303), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), +(x1, 1), +(x1, 1)) | &&(>(+(x1, 1), 0), <(x1, 9))
R rules:

Filtered ground terms:



6303_0_possibleValues_ConstantStackPush(x1, x2, x3, x4, x5) → 6303_0_possibleValues_ConstantStackPush(x4, x5)
ARRAY(x1) → ARRAY
Sudoku(x1) → Sudoku
EOS(x1) → EOS
Cond_6303_0_possibleValues_ConstantStackPush(x1, x2, x3, x4, x5, x6) → Cond_6303_0_possibleValues_ConstantStackPush(x1, x5, x6)

Filtered duplicate args:



6303_0_possibleValues_ConstantStackPush(x1, x2) → 6303_0_possibleValues_ConstantStackPush(x2)
Cond_6303_0_possibleValues_ConstantStackPush(x1, x2, x3) → Cond_6303_0_possibleValues_ConstantStackPush(x1, x3)

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


P rules:
6303_0_possibleValues_ConstantStackPush(x1) → 6303_0_possibleValues_ConstantStackPush(+(x1, 1)) | &&(>(x1, -1), <(x1, 9))
R rules:

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


P rules:
6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1) → COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1, -1), <(x1, 9)), x1)
COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1) → 6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1, 1))
R rules:

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

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0]) → COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0] > -1 && x1[0] < 9, x1[0])
(1): COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1]) → 6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1] + 1)

(0) -> (1), if (x1[0] > -1 && x1[0] < 9x1[0]* x1[1])


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



The set Q is empty.

(53) 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@3ac4ffdc 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 6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1) → COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1, -1), <(x1, 9)), x1) the following chains were created:
  • We consider the chain 6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0]) → COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1[0], -1), <(x1[0], 9)), x1[0]), COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1]) → 6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1[1], 1)) which results in the following constraint:

    (1)    (&&(>(x1[0], -1), <(x1[0], 9))=TRUEx1[0]=x1[1]6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0])≥NonInfC∧6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0])≥COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1[0], -1), <(x1[0], 9)), x1[0])∧(UIncreasing(COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1[0], -1), <(x1[0], 9)), x1[0])), ≥))



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

    (2)    (>(x1[0], -1)=TRUE<(x1[0], 9)=TRUE6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0])≥NonInfC∧6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0])≥COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1[0], -1), <(x1[0], 9)), x1[0])∧(UIncreasing(COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1[0], -1), <(x1[0], 9)), x1[0])), ≥))



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

    (3)    (x1[0] ≥ 0∧[8] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1[0], -1), <(x1[0], 9)), x1[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)



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

    (4)    (x1[0] ≥ 0∧[8] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1[0], -1), <(x1[0], 9)), x1[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)



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

    (5)    (x1[0] ≥ 0∧[8] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1[0], -1), <(x1[0], 9)), x1[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)







For Pair COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1) → 6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1, 1)) the following chains were created:
  • We consider the chain COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1]) → 6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1[1], 1)) which results in the following constraint:

    (6)    (COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1])≥NonInfC∧COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1])≥6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1[1], 1))∧(UIncreasing(6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1[1], 1))), ≥))



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

    (7)    ((UIncreasing(6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (8)    ((UIncreasing(6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (9)    ((UIncreasing(6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (10)    ((UIncreasing(6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1[1], 1))), ≥)∧[bni_12] = 0∧0 = 0∧[1 + (-1)bso_13] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1) → COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1, -1), <(x1, 9)), x1)
    • (x1[0] ≥ 0∧[8] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1[0], -1), <(x1[0], 9)), x1[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)

  • COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1) → 6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1, 1))
    • ((UIncreasing(6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1[1], 1))), ≥)∧[bni_12] = 0∧0 = 0∧[1 + (-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(6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1)) = [-1] + [-1]x1   
POL(COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1, x2)) = [-1] + [-1]x2   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(9) = [9]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   

The following pairs are in P>:

COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1]) → 6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1[1], 1))

The following pairs are in Pbound:

6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0]) → COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1[0], -1), <(x1[0], 9)), x1[0])

The following pairs are in P:

6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0]) → COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1[0], -1), <(x1[0], 9)), x1[0])

There are no usable rules.

(54) Complex Obligation (AND)

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

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0]) → COND_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0] > -1 && x1[0] < 9, x1[0])


The set Q is empty.

(56) IDependencyGraphProof (EQUIVALENT transformation)

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

(57) TRUE

(58) 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_6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1]) → 6303_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1] + 1)


The set Q is empty.

(59) IDependencyGraphProof (EQUIVALENT transformation)

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

(60) TRUE

(61) Obligation:

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

(62) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 12 rules for P and 0 rules for R.


P rules:
8433_0_resolve_aux_ConstantStackPush(EOS(STATIC_8433), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i2947, i2947) → 8454_0_resolve_aux_GE(EOS(STATIC_8454), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i2947, i2947, 9) | &&(=(matching1, 9), =(matching2, 9))
8454_0_resolve_aux_GE(EOS(STATIC_8454), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3184, i3184, matching3) → 8480_0_resolve_aux_GE(EOS(STATIC_8480), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3184, i3184, 9) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8480_0_resolve_aux_GE(EOS(STATIC_8480), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3184, i3184, matching3) → 8511_0_resolve_aux_Load(EOS(STATIC_8511), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3184) | &&(&&(&&(<(i3184, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8511_0_resolve_aux_Load(EOS(STATIC_8511), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3184) → 8536_0_resolve_aux_Load(EOS(STATIC_8536), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3184, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
8536_0_resolve_aux_Load(EOS(STATIC_8536), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3184, java.lang.Object(ARRAY(matching3))) → 8565_0_resolve_aux_ArrayAccess(EOS(STATIC_8565), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3184, java.lang.Object(ARRAY(9)), i3184) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8565_0_resolve_aux_ArrayAccess(EOS(STATIC_8565), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3184, java.lang.Object(ARRAY(matching3)), i3184) → 8601_0_resolve_aux_EQ(EOS(STATIC_8601), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3184, i3563) | &&(&&(&&(<(i3184, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8601_0_resolve_aux_EQ(EOS(STATIC_8601), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3184, matching3) → 8633_0_resolve_aux_EQ(EOS(STATIC_8633), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3184, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
8633_0_resolve_aux_EQ(EOS(STATIC_8633), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3184, matching3) → 8670_0_resolve_aux_Inc(EOS(STATIC_8670), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3184) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
8670_0_resolve_aux_Inc(EOS(STATIC_8670), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3184) → 8711_0_resolve_aux_JMP(EOS(STATIC_8711), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), +(i3184, 1)) | &&(&&(>=(i3184, 0), =(matching1, 9)), =(matching2, 9))
8711_0_resolve_aux_JMP(EOS(STATIC_8711), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3946) → 8746_0_resolve_aux_Load(EOS(STATIC_8746), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3946) | &&(=(matching1, 9), =(matching2, 9))
8746_0_resolve_aux_Load(EOS(STATIC_8746), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3946) → 8407_0_resolve_aux_Load(EOS(STATIC_8407), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3946) | &&(=(matching1, 9), =(matching2, 9))
8407_0_resolve_aux_Load(EOS(STATIC_8407), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i2947) → 8433_0_resolve_aux_ConstantStackPush(EOS(STATIC_8433), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i2947, i2947) | &&(=(matching1, 9), =(matching2, 9))
R rules:

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


P rules:
8433_0_resolve_aux_ConstantStackPush(EOS(STATIC_8433), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), x2, x2) → 8433_0_resolve_aux_ConstantStackPush(EOS(STATIC_8433), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), +(x2, 1), +(x2, 1)) | &&(>(+(x2, 1), 0), <(x2, 9))
R rules:

Filtered ground terms:



8433_0_resolve_aux_ConstantStackPush(x1, x2, x3, x4, x5, x6) → 8433_0_resolve_aux_ConstantStackPush(x5, x6)
ARRAY(x1) → ARRAY
Sudoku(x1) → Sudoku
EOS(x1) → EOS
Cond_8433_0_resolve_aux_ConstantStackPush(x1, x2, x3, x4, x5, x6, x7) → Cond_8433_0_resolve_aux_ConstantStackPush(x1, x6, x7)

Filtered duplicate args:



8433_0_resolve_aux_ConstantStackPush(x1, x2) → 8433_0_resolve_aux_ConstantStackPush(x2)
Cond_8433_0_resolve_aux_ConstantStackPush(x1, x2, x3) → Cond_8433_0_resolve_aux_ConstantStackPush(x1, x3)

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


P rules:
8433_0_resolve_aux_ConstantStackPush(x2) → 8433_0_resolve_aux_ConstantStackPush(+(x2, 1)) | &&(>(x2, -1), <(x2, 9))
R rules:

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


P rules:
8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2) → COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2, -1), <(x2, 9)), x2)
COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2) → 8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2, 1))
R rules:

(63) 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): 8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0]) → COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0] > -1 && x2[0] < 9, x2[0])
(1): COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2[1]) → 8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[1] + 1)

(0) -> (1), if (x2[0] > -1 && x2[0] < 9x2[0]* x2[1])


(1) -> (0), if (x2[1] + 1* x2[0])



The set Q is empty.

(64) 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@3ac4ffdc 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 8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2) → COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2, -1), <(x2, 9)), x2) the following chains were created:
  • We consider the chain 8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0]) → COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2[0], -1), <(x2[0], 9)), x2[0]), COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2[1]) → 8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2[1], 1)) which results in the following constraint:

    (1)    (&&(>(x2[0], -1), <(x2[0], 9))=TRUEx2[0]=x2[1]8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0])≥NonInfC∧8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0])≥COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2[0], -1), <(x2[0], 9)), x2[0])∧(UIncreasing(COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2[0], -1), <(x2[0], 9)), x2[0])), ≥))



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

    (2)    (>(x2[0], -1)=TRUE<(x2[0], 9)=TRUE8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0])≥NonInfC∧8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0])≥COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2[0], -1), <(x2[0], 9)), x2[0])∧(UIncreasing(COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2[0], -1), <(x2[0], 9)), x2[0])), ≥))



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

    (3)    (x2[0] ≥ 0∧[8] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2[0], -1), <(x2[0], 9)), x2[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x2[0] ≥ 0∧[(-1)bso_11] ≥ 0)



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

    (4)    (x2[0] ≥ 0∧[8] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2[0], -1), <(x2[0], 9)), x2[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x2[0] ≥ 0∧[(-1)bso_11] ≥ 0)



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

    (5)    (x2[0] ≥ 0∧[8] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2[0], -1), <(x2[0], 9)), x2[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x2[0] ≥ 0∧[(-1)bso_11] ≥ 0)







For Pair COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2) → 8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2, 1)) the following chains were created:
  • We consider the chain COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2[1]) → 8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2[1], 1)) which results in the following constraint:

    (6)    (COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2[1])≥NonInfC∧COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2[1])≥8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2[1], 1))∧(UIncreasing(8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2[1], 1))), ≥))



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

    (7)    ((UIncreasing(8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (8)    ((UIncreasing(8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (9)    ((UIncreasing(8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (10)    ((UIncreasing(8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2[1], 1))), ≥)∧[bni_12] = 0∧0 = 0∧[1 + (-1)bso_13] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2) → COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2, -1), <(x2, 9)), x2)
    • (x2[0] ≥ 0∧[8] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2[0], -1), <(x2[0], 9)), x2[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x2[0] ≥ 0∧[(-1)bso_11] ≥ 0)

  • COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2) → 8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2, 1))
    • ((UIncreasing(8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2[1], 1))), ≥)∧[bni_12] = 0∧0 = 0∧[1 + (-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(8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x1)) = [-1] + [-1]x1   
POL(COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x1, x2)) = [-1] + [-1]x2   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(9) = [9]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   

The following pairs are in P>:

COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2[1]) → 8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2[1], 1))

The following pairs are in Pbound:

8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0]) → COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2[0], -1), <(x2[0], 9)), x2[0])

The following pairs are in P:

8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0]) → COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2[0], -1), <(x2[0], 9)), x2[0])

There are no usable rules.

(65) Complex Obligation (AND)

(66) 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): 8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0]) → COND_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0] > -1 && x2[0] < 9, x2[0])


The set Q is empty.

(67) IDependencyGraphProof (EQUIVALENT transformation)

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

(68) TRUE

(69) 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_8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2[1]) → 8433_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[1] + 1)


The set Q is empty.

(70) IDependencyGraphProof (EQUIVALENT transformation)

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

(71) TRUE

(72) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Sudoku.resolve_aux(I)Z
SCC calls the following helper methods: Sudoku.possibleValues(II[Z)V, Sudoku.resolve_aux(I)Z
Performed SCC analyses: UsedFieldsAnalysis

(73) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 121 rules for P and 1119 rules for R.


P rules:
4513_0_resolve_aux_LE(EOS(STATIC_4513), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i573) → 4517_0_resolve_aux_LE(EOS(STATIC_4517), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i573) | =(matching1, 9)
4517_0_resolve_aux_LE(EOS(STATIC_4517), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i573) → 4522_0_resolve_aux_ConstantStackPush(EOS(STATIC_4522), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573) | &&(>(i573, 0), =(matching1, 9))
4522_0_resolve_aux_ConstantStackPush(EOS(STATIC_4522), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573) → 4527_0_resolve_aux_Store(EOS(STATIC_4527), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, 0) | =(matching1, 9)
4527_0_resolve_aux_Store(EOS(STATIC_4527), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, matching2) → 4531_0_resolve_aux_ConstantStackPush(EOS(STATIC_4531), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573) | &&(=(matching1, 9), =(matching2, 0))
4531_0_resolve_aux_ConstantStackPush(EOS(STATIC_4531), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573) → 4538_0_resolve_aux_Store(EOS(STATIC_4538), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, 0) | =(matching1, 9)
4538_0_resolve_aux_Store(EOS(STATIC_4538), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, matching2) → 4544_0_resolve_aux_ConstantStackPush(EOS(STATIC_4544), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, 0) | &&(=(matching1, 9), =(matching2, 0))
4544_0_resolve_aux_ConstantStackPush(EOS(STATIC_4544), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, matching2) → 4551_0_resolve_aux_Store(EOS(STATIC_4551), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, 0, 0) | &&(=(matching1, 9), =(matching2, 0))
4551_0_resolve_aux_Store(EOS(STATIC_4551), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, matching2, matching3) → 4557_0_resolve_aux_ConstantStackPush(EOS(STATIC_4557), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, 0, 0) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0))
4557_0_resolve_aux_ConstantStackPush(EOS(STATIC_4557), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, matching2, matching3) → 4566_0_resolve_aux_Store(EOS(STATIC_4566), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, 0, 0, 0) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0))
4566_0_resolve_aux_Store(EOS(STATIC_4566), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, matching2, matching3, matching4) → 4575_0_resolve_aux_Load(EOS(STATIC_4575), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, 0, 0, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
4575_0_resolve_aux_Load(EOS(STATIC_4575), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, matching2, matching3, matching4) → 5045_0_resolve_aux_Load(EOS(STATIC_5045), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, 0, 0, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
5045_0_resolve_aux_Load(EOS(STATIC_5045), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i693, i694, matching2) → 5381_0_resolve_aux_Load(EOS(STATIC_5381), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i693, i694, 0) | &&(=(matching1, 9), =(matching2, 0))
5381_0_resolve_aux_Load(EOS(STATIC_5381), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i735, i736, matching2) → 5569_0_resolve_aux_Load(EOS(STATIC_5569), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i735, i736, 0) | &&(=(matching1, 9), =(matching2, 0))
5569_0_resolve_aux_Load(EOS(STATIC_5569), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i773, i774, matching2) → 5761_0_resolve_aux_Load(EOS(STATIC_5761), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i773, i774, 0) | &&(=(matching1, 9), =(matching2, 0))
5761_0_resolve_aux_Load(EOS(STATIC_5761), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i812, i813, matching2) → 5762_0_resolve_aux_ConstantStackPush(EOS(STATIC_5762), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i812, i813, 0, i812) | &&(=(matching1, 9), =(matching2, 0))
5762_0_resolve_aux_ConstantStackPush(EOS(STATIC_5762), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i812, i813, matching2, i812) → 5764_0_resolve_aux_GE(EOS(STATIC_5764), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i812, i813, 0, i812, 9) | &&(=(matching1, 9), =(matching2, 0))
5764_0_resolve_aux_GE(EOS(STATIC_5764), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i813, matching2, i817, matching3) → 5766_0_resolve_aux_GE(EOS(STATIC_5766), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i813, 0, i817, 9) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 9))
5766_0_resolve_aux_GE(EOS(STATIC_5766), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i813, matching2, i817, matching3) → 5769_0_resolve_aux_ConstantStackPush(EOS(STATIC_5769), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, 0) | &&(&&(&&(<(i817, 9), =(matching1, 9)), =(matching2, 0)), =(matching3, 9))
5769_0_resolve_aux_ConstantStackPush(EOS(STATIC_5769), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, matching2) → 5771_0_resolve_aux_Store(EOS(STATIC_5771), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, 0, 0) | &&(=(matching1, 9), =(matching2, 0))
5771_0_resolve_aux_Store(EOS(STATIC_5771), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, matching2, matching3) → 5774_0_resolve_aux_Load(EOS(STATIC_5774), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, 0, 0) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0))
5774_0_resolve_aux_Load(EOS(STATIC_5774), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, matching2, matching3) → 5834_0_resolve_aux_Load(EOS(STATIC_5834), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, 0, 0) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0))
5834_0_resolve_aux_Load(EOS(STATIC_5834), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i823, matching2) → 5904_0_resolve_aux_Load(EOS(STATIC_5904), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i823, 0) | &&(=(matching1, 9), =(matching2, 0))
5904_0_resolve_aux_Load(EOS(STATIC_5904), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i835, matching2) → 5970_0_resolve_aux_Load(EOS(STATIC_5970), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i835, 0) | &&(=(matching1, 9), =(matching2, 0))
5970_0_resolve_aux_Load(EOS(STATIC_5970), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i851, matching2) → 6040_0_resolve_aux_Load(EOS(STATIC_6040), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i851, 0) | &&(=(matching1, 9), =(matching2, 0))
6040_0_resolve_aux_Load(EOS(STATIC_6040), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i864, matching2) → 6042_0_resolve_aux_ConstantStackPush(EOS(STATIC_6042), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i864, 0, i864) | &&(=(matching1, 9), =(matching2, 0))
6042_0_resolve_aux_ConstantStackPush(EOS(STATIC_6042), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i864, matching2, i864) → 6045_0_resolve_aux_GE(EOS(STATIC_6045), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i864, 0, i864, 9) | &&(=(matching1, 9), =(matching2, 0))
6045_0_resolve_aux_GE(EOS(STATIC_6045), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2, i869, matching3) → 6047_0_resolve_aux_GE(EOS(STATIC_6047), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 0, i869, 9) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 9))
6045_0_resolve_aux_GE(EOS(STATIC_6045), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, matching2, matching3, matching4, matching5) → 6048_0_resolve_aux_GE(EOS(STATIC_6048), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, 9, 0, 9, 9) | &&(&&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0)), =(matching4, 9)), =(matching5, 9))
6047_0_resolve_aux_GE(EOS(STATIC_6047), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2, i869, matching3) → 6050_0_resolve_aux_Load(EOS(STATIC_6050), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 0) | &&(&&(&&(<(i869, 9), =(matching1, 9)), =(matching2, 0)), =(matching3, 9))
6050_0_resolve_aux_Load(EOS(STATIC_6050), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2) → 6053_0_resolve_aux_FieldAccess(EOS(STATIC_6053), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 0, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 0))
6053_0_resolve_aux_FieldAccess(EOS(STATIC_6053), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 6057_0_resolve_aux_Load(EOS(STATIC_6057), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 0, java.lang.Object(ARRAY(9))) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 9))
6057_0_resolve_aux_Load(EOS(STATIC_6057), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2, java.lang.Object(ARRAY(matching3))) → 6060_0_resolve_aux_ArrayAccess(EOS(STATIC_6060), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 0, java.lang.Object(ARRAY(9)), i817) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 9))
6060_0_resolve_aux_ArrayAccess(EOS(STATIC_6060), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2, java.lang.Object(ARRAY(matching3)), i817) → 6064_0_resolve_aux_Load(EOS(STATIC_6064), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 0, o2033) | &&(&&(&&(<(i817, 9), =(matching1, 9)), =(matching2, 0)), =(matching3, 9))
6064_0_resolve_aux_Load(EOS(STATIC_6064), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2, o2033) → 6069_0_resolve_aux_ArrayAccess(EOS(STATIC_6069), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 0, o2033, i869) | &&(=(matching1, 9), =(matching2, 0))
6069_0_resolve_aux_ArrayAccess(EOS(STATIC_6069), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2, java.lang.Object(o2038put), i869) → 6070_0_resolve_aux_ArrayAccess(EOS(STATIC_6070), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 0, java.lang.Object(o2038put), i869) | &&(=(matching1, 9), =(matching2, 0))
6070_0_resolve_aux_ArrayAccess(EOS(STATIC_6070), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2, java.lang.Object(ARRAY(i873)), i869) → 6073_0_resolve_aux_ArrayAccess(EOS(STATIC_6073), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 0, java.lang.Object(ARRAY(i873)), i869) | &&(&&(>=(i873, 0), =(matching1, 9)), =(matching2, 0))
6073_0_resolve_aux_ArrayAccess(EOS(STATIC_6073), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2, java.lang.Object(ARRAY(i873)), i869) → 6077_0_resolve_aux_ArrayAccess(EOS(STATIC_6077), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 0, java.lang.Object(ARRAY(i873)), i869) | &&(=(matching1, 9), =(matching2, 0))
6077_0_resolve_aux_ArrayAccess(EOS(STATIC_6077), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2, java.lang.Object(ARRAY(i873)), i869) → 6082_0_resolve_aux_NE(EOS(STATIC_6082), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 0, i874) | &&(&&(<(i869, i873), =(matching1, 9)), =(matching2, 0))
6082_0_resolve_aux_NE(EOS(STATIC_6082), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2, i876) → 6086_0_resolve_aux_NE(EOS(STATIC_6086), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 0, i876) | &&(=(matching1, 9), =(matching2, 0))
6082_0_resolve_aux_NE(EOS(STATIC_6082), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2, matching3) → 6087_0_resolve_aux_NE(EOS(STATIC_6087), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 0, 0) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0))
6086_0_resolve_aux_NE(EOS(STATIC_6086), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2, i876) → 6092_0_resolve_aux_Inc(EOS(STATIC_6092), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 0) | &&(&&(!(=(i876, 0)), =(matching1, 9)), =(matching2, 0))
6092_0_resolve_aux_Inc(EOS(STATIC_6092), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2) → 6098_0_resolve_aux_JMP(EOS(STATIC_6098), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, +(i869, 1), 0) | &&(&&(>=(i869, 0), =(matching1, 9)), =(matching2, 0))
6098_0_resolve_aux_JMP(EOS(STATIC_6098), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i877, matching2) → 6104_0_resolve_aux_Load(EOS(STATIC_6104), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i877, 0) | &&(=(matching1, 9), =(matching2, 0))
6104_0_resolve_aux_Load(EOS(STATIC_6104), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i877, matching2) → 6040_0_resolve_aux_Load(EOS(STATIC_6040), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i877, 0) | &&(=(matching1, 9), =(matching2, 0))
6087_0_resolve_aux_NE(EOS(STATIC_6087), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2, matching3) → 6093_0_resolve_aux_ConstantStackPush(EOS(STATIC_6093), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0))
6093_0_resolve_aux_ConstantStackPush(EOS(STATIC_6093), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869) → 6099_0_resolve_aux_Store(EOS(STATIC_6099), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 1) | =(matching1, 9)
6099_0_resolve_aux_Store(EOS(STATIC_6099), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2) → 6105_0_resolve_aux_JMP(EOS(STATIC_6105), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 1) | &&(=(matching1, 9), =(matching2, 1))
6105_0_resolve_aux_JMP(EOS(STATIC_6105), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2) → 6110_0_resolve_aux_Load(EOS(STATIC_6110), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 1) | &&(=(matching1, 9), =(matching2, 1))
6110_0_resolve_aux_Load(EOS(STATIC_6110), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2) → 6115_0_resolve_aux_EQ(EOS(STATIC_6115), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 1, 1) | &&(=(matching1, 9), =(matching2, 1))
6115_0_resolve_aux_EQ(EOS(STATIC_6115), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2, matching3) → 6119_0_resolve_aux_JMP(EOS(STATIC_6119), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869) | &&(&&(&&(>(1, 0), =(matching1, 9)), =(matching2, 1)), =(matching3, 1))
6119_0_resolve_aux_JMP(EOS(STATIC_6119), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869) → 6123_0_resolve_aux_ConstantStackPush(EOS(STATIC_6123), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869) | =(matching1, 9)
6123_0_resolve_aux_ConstantStackPush(EOS(STATIC_6123), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869) → 6129_0_resolve_aux_ArrayCreate(EOS(STATIC_6129), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, 9) | =(matching1, 9)
6129_0_resolve_aux_ArrayCreate(EOS(STATIC_6129), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, matching2) → 6133_0_resolve_aux_Store(EOS(STATIC_6133), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
6133_0_resolve_aux_Store(EOS(STATIC_6133), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, java.lang.Object(ARRAY(matching2))) → 6138_0_resolve_aux_Load(EOS(STATIC_6138), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
6138_0_resolve_aux_Load(EOS(STATIC_6138), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, java.lang.Object(ARRAY(matching2))) → 6145_0_resolve_aux_Load(EOS(STATIC_6145), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, java.lang.Object(ARRAY(9)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 9))
6145_0_resolve_aux_Load(EOS(STATIC_6145), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, java.lang.Object(ARRAY(matching2)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 6150_0_resolve_aux_Load(EOS(STATIC_6150), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, java.lang.Object(ARRAY(9)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i817) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6150_0_resolve_aux_Load(EOS(STATIC_6150), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, java.lang.Object(ARRAY(matching2)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i817) → 6155_0_resolve_aux_Load(EOS(STATIC_6155), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, java.lang.Object(ARRAY(9)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i817, i869) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6155_0_resolve_aux_Load(EOS(STATIC_6155), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, java.lang.Object(ARRAY(matching2)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i817, i869) → 6161_0_resolve_aux_InvokeMethod(EOS(STATIC_6161), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, java.lang.Object(ARRAY(9)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i817, i869, java.lang.Object(ARRAY(9))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6161_0_resolve_aux_InvokeMethod(EOS(STATIC_6161), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, i869, java.lang.Object(ARRAY(matching2)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i817, i869, java.lang.Object(ARRAY(matching4))) → 6168_1_resolve_aux_InvokeMethod(6168_0_possibleValues_ConstantStackPush(EOS(STATIC_6168), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i817, i869, java.lang.Object(ARRAY(9))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, i869, java.lang.Object(ARRAY(9)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i817, i869, java.lang.Object(ARRAY(9))) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
6168_1_resolve_aux_InvokeMethod(7516_0_possibleValues_Return(EOS(STATIC_7516)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i1646, i1647, java.lang.Object(ARRAY(matching4))) → 7574_0_possibleValues_Return(EOS(STATIC_7574), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1646, i1647, java.lang.Object(ARRAY(9))) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
7574_0_possibleValues_Return(EOS(STATIC_7574), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i1646, i1647, java.lang.Object(ARRAY(matching4))) → 7599_0_resolve_aux_ConstantStackPush(EOS(STATIC_7599), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9))) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
7599_0_resolve_aux_ConstantStackPush(EOS(STATIC_7599), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2))) → 7612_0_resolve_aux_Store(EOS(STATIC_7612), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), 0) | &&(=(matching1, 9), =(matching2, 9))
7612_0_resolve_aux_Store(EOS(STATIC_7612), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), matching3) → 7630_0_resolve_aux_Load(EOS(STATIC_7630), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
7630_0_resolve_aux_Load(EOS(STATIC_7630), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), matching3) → 7882_0_resolve_aux_Load(EOS(STATIC_7882), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
7882_0_resolve_aux_Load(EOS(STATIC_7882), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i2095) → 8135_0_resolve_aux_Load(EOS(STATIC_8135), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i2095) | &&(=(matching1, 9), =(matching2, 9))
8135_0_resolve_aux_Load(EOS(STATIC_8135), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i2535) → 8259_0_resolve_aux_Load(EOS(STATIC_8259), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i2535) | &&(=(matching1, 9), =(matching2, 9))
8259_0_resolve_aux_Load(EOS(STATIC_8259), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i2643) → 8412_0_resolve_aux_Load(EOS(STATIC_8412), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i2643) | &&(=(matching1, 9), =(matching2, 9))
8412_0_resolve_aux_Load(EOS(STATIC_8412), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i2952) → 8434_0_resolve_aux_ConstantStackPush(EOS(STATIC_8434), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i2952, i2952) | &&(=(matching1, 9), =(matching2, 9))
8434_0_resolve_aux_ConstantStackPush(EOS(STATIC_8434), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i2952, i2952) → 8456_0_resolve_aux_GE(EOS(STATIC_8456), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i2952, i2952, 9) | &&(=(matching1, 9), =(matching2, 9))
8456_0_resolve_aux_GE(EOS(STATIC_8456), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, i3185, matching3) → 8483_0_resolve_aux_GE(EOS(STATIC_8483), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, i3185, 9) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8483_0_resolve_aux_GE(EOS(STATIC_8483), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, i3185, matching3) → 8514_0_resolve_aux_Load(EOS(STATIC_8514), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185) | &&(&&(&&(<(i3185, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8514_0_resolve_aux_Load(EOS(STATIC_8514), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185) → 8538_0_resolve_aux_Load(EOS(STATIC_8538), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
8538_0_resolve_aux_Load(EOS(STATIC_8538), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(ARRAY(matching3))) → 8566_0_resolve_aux_ArrayAccess(EOS(STATIC_8566), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(ARRAY(9)), i3185) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8566_0_resolve_aux_ArrayAccess(EOS(STATIC_8566), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(ARRAY(matching3)), i3185) → 8603_0_resolve_aux_EQ(EOS(STATIC_8603), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, i3565) | &&(&&(&&(<(i3185, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8603_0_resolve_aux_EQ(EOS(STATIC_8603), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, i3684) → 8634_0_resolve_aux_EQ(EOS(STATIC_8634), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, i3684) | &&(=(matching1, 9), =(matching2, 9))
8603_0_resolve_aux_EQ(EOS(STATIC_8603), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, matching3) → 8635_0_resolve_aux_EQ(EOS(STATIC_8635), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
8634_0_resolve_aux_EQ(EOS(STATIC_8634), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, i3684) → 8671_0_resolve_aux_Load(EOS(STATIC_8671), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185) | &&(&&(!(=(i3684, 0)), =(matching1, 9)), =(matching2, 9))
8671_0_resolve_aux_Load(EOS(STATIC_8671), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185) → 8712_0_resolve_aux_FieldAccess(EOS(STATIC_8712), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 9))
8712_0_resolve_aux_FieldAccess(EOS(STATIC_8712), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 8747_0_resolve_aux_Load(EOS(STATIC_8747), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(ARRAY(9))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8747_0_resolve_aux_Load(EOS(STATIC_8747), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(ARRAY(matching3))) → 8782_0_resolve_aux_ArrayAccess(EOS(STATIC_8782), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(ARRAY(9)), i1646) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8782_0_resolve_aux_ArrayAccess(EOS(STATIC_8782), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(ARRAY(matching3)), i1646) → 8818_0_resolve_aux_Load(EOS(STATIC_8818), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, o9107) | &&(&&(&&(<(i1646, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8818_0_resolve_aux_Load(EOS(STATIC_8818), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, o9107) → 8838_0_resolve_aux_Load(EOS(STATIC_8838), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, o9107, i1647) | &&(=(matching1, 9), =(matching2, 9))
8838_0_resolve_aux_Load(EOS(STATIC_8838), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, o9107, i1647) → 8866_0_resolve_aux_ConstantStackPush(EOS(STATIC_8866), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, o9107, i1647, i3185) | &&(=(matching1, 9), =(matching2, 9))
8866_0_resolve_aux_ConstantStackPush(EOS(STATIC_8866), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, o9107, i1647, i3185) → 8911_0_resolve_aux_IntArithmetic(EOS(STATIC_8911), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, o9107, i1647, i3185) | &&(=(matching1, 9), =(matching2, 9))
8911_0_resolve_aux_IntArithmetic(EOS(STATIC_8911), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, o9107, i1647, i3185) → 8940_0_resolve_aux_ArrayAccess(EOS(STATIC_8940), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, o9107, i1647) | &&(&&(>=(i3185, 0), =(matching1, 9)), =(matching2, 9))
8940_0_resolve_aux_ArrayAccess(EOS(STATIC_8940), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(o10030put), i1647) → 8965_0_resolve_aux_ArrayAccess(EOS(STATIC_8965), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(o10030put), i1647) | &&(=(matching1, 9), =(matching2, 9))
8965_0_resolve_aux_ArrayAccess(EOS(STATIC_8965), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(ARRAY(i4712)), i1647) → 8997_0_resolve_aux_ArrayAccess(EOS(STATIC_8997), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(ARRAY(i4712)), i1647) | &&(&&(>=(i4712, 0), =(matching1, 9)), =(matching2, 9))
8997_0_resolve_aux_ArrayAccess(EOS(STATIC_8997), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(ARRAY(i4712)), i1647) → 9023_0_resolve_aux_ArrayAccess(EOS(STATIC_9023), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(ARRAY(i4712)), i1647) | &&(=(matching1, 9), =(matching2, 9))
9023_0_resolve_aux_ArrayAccess(EOS(STATIC_9023), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(ARRAY(i4712)), i1647) → 9053_0_resolve_aux_Load(EOS(STATIC_9053), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185) | &&(&&(<(i1647, i4712), =(matching1, 9)), =(matching2, 9))
9053_0_resolve_aux_Load(EOS(STATIC_9053), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185) → 9086_0_resolve_aux_Load(EOS(STATIC_9086), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 9))
9086_0_resolve_aux_Load(EOS(STATIC_9086), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 9102_0_resolve_aux_ConstantStackPush(EOS(STATIC_9102), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
9102_0_resolve_aux_ConstantStackPush(EOS(STATIC_9102), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i573) → 9124_0_resolve_aux_IntArithmetic(EOS(STATIC_9124), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, 1) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
9124_0_resolve_aux_IntArithmetic(EOS(STATIC_9124), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i573, matching4) → 9152_0_resolve_aux_InvokeMethod(EOS(STATIC_9152), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), -(i573, 1)) | &&(&&(&&(&&(>(i573, 0), =(matching1, 9)), =(matching2, 9)), =(matching3, 9)), =(matching4, 1))
9152_0_resolve_aux_InvokeMethod(EOS(STATIC_9152), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i5119) → 9174_1_resolve_aux_InvokeMethod(9174_0_resolve_aux_Load(EOS(STATIC_9174), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i5119), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i5119) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
9174_0_resolve_aux_Load(EOS(STATIC_9174), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i5119) → 9198_0_resolve_aux_Load(EOS(STATIC_9198), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i5119) | =(matching1, 9)
9174_1_resolve_aux_InvokeMethod(8539_0_resolve_aux_Return(EOS(STATIC_8539), matching1), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching2)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching3)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching4)))), i5415) → 9309_0_resolve_aux_Return(EOS(STATIC_9309), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i5415, 0) | &&(&&(&&(=(matching1, 0), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
9198_0_resolve_aux_Load(EOS(STATIC_9198), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i5119) → 4511_0_resolve_aux_Load(EOS(STATIC_4511), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i5119) | =(matching1, 9)
4511_0_resolve_aux_Load(EOS(STATIC_4511), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i566) → 4513_0_resolve_aux_LE(EOS(STATIC_4513), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i566, i566) | =(matching1, 9)
9309_0_resolve_aux_Return(EOS(STATIC_9309), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i5415, matching4) → 9350_0_resolve_aux_EQ(EOS(STATIC_9350), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
9350_0_resolve_aux_EQ(EOS(STATIC_9350), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, matching3) → 9379_0_resolve_aux_Load(EOS(STATIC_9379), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
9379_0_resolve_aux_Load(EOS(STATIC_9379), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185) → 9412_0_resolve_aux_FieldAccess(EOS(STATIC_9412), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 9))
9412_0_resolve_aux_FieldAccess(EOS(STATIC_9412), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 9438_0_resolve_aux_Load(EOS(STATIC_9438), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(ARRAY(9))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
9438_0_resolve_aux_Load(EOS(STATIC_9438), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(ARRAY(matching3))) → 9460_0_resolve_aux_ArrayAccess(EOS(STATIC_9460), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(ARRAY(9)), i1646) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
9460_0_resolve_aux_ArrayAccess(EOS(STATIC_9460), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(ARRAY(matching3)), i1646) → 9479_0_resolve_aux_Load(EOS(STATIC_9479), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, o13087) | &&(&&(&&(<(i1646, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
9479_0_resolve_aux_Load(EOS(STATIC_9479), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, o13087) → 9499_0_resolve_aux_ConstantStackPush(EOS(STATIC_9499), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, o13087, i1647) | &&(=(matching1, 9), =(matching2, 9))
9499_0_resolve_aux_ConstantStackPush(EOS(STATIC_9499), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, o13087, i1647) → 9526_0_resolve_aux_ArrayAccess(EOS(STATIC_9526), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, o13087, i1647, 0) | &&(=(matching1, 9), =(matching2, 9))
9526_0_resolve_aux_ArrayAccess(EOS(STATIC_9526), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(o13203put), i1647, matching3) → 9538_0_resolve_aux_ArrayAccess(EOS(STATIC_9538), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(o13203put), i1647, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
9538_0_resolve_aux_ArrayAccess(EOS(STATIC_9538), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(ARRAY(i5858)), i1647, matching3) → 9557_0_resolve_aux_ArrayAccess(EOS(STATIC_9557), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(ARRAY(i5858)), i1647, 0) | &&(&&(&&(>=(i5858, 0), =(matching1, 9)), =(matching2, 9)), =(matching3, 0))
9557_0_resolve_aux_ArrayAccess(EOS(STATIC_9557), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(ARRAY(i5858)), i1647, matching3) → 9569_0_resolve_aux_ArrayAccess(EOS(STATIC_9569), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185, java.lang.Object(ARRAY(i5858)), i1647, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
9569_0_resolve_aux_ArrayAccess(EOS(STATIC_9569), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, java.lang.Object(ARRAY(i5858)), i1647, matching3) → 9583_0_resolve_aux_Inc(EOS(STATIC_9583), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185) | &&(&&(&&(<(i1647, i5858), =(matching1, 9)), =(matching2, 9)), =(matching3, 0))
9583_0_resolve_aux_Inc(EOS(STATIC_9583), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185) → 9595_0_resolve_aux_JMP(EOS(STATIC_9595), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), +(i3185, 1)) | &&(&&(>=(i3185, 0), =(matching1, 9)), =(matching2, 9))
9595_0_resolve_aux_JMP(EOS(STATIC_9595), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i5887) → 9612_0_resolve_aux_Load(EOS(STATIC_9612), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i5887) | &&(=(matching1, 9), =(matching2, 9))
9612_0_resolve_aux_Load(EOS(STATIC_9612), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i5887) → 8412_0_resolve_aux_Load(EOS(STATIC_8412), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i5887) | &&(=(matching1, 9), =(matching2, 9))
8635_0_resolve_aux_EQ(EOS(STATIC_8635), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185, matching3) → 8673_0_resolve_aux_Inc(EOS(STATIC_8673), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
8673_0_resolve_aux_Inc(EOS(STATIC_8673), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i1646, i1647, java.lang.Object(ARRAY(matching2)), i3185) → 9583_0_resolve_aux_Inc(EOS(STATIC_9583), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i1646, i1647, java.lang.Object(ARRAY(9)), i3185) | &&(=(matching1, 9), =(matching2, 9))
6048_0_resolve_aux_GE(EOS(STATIC_6048), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, matching2, matching3, matching4, matching5) → 6051_0_resolve_aux_Load(EOS(STATIC_6051), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, 9, 0) | &&(&&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0)), =(matching4, 9)), =(matching5, 9))
6051_0_resolve_aux_Load(EOS(STATIC_6051), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, matching2, matching3) → 6054_0_resolve_aux_EQ(EOS(STATIC_6054), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, 9, 0, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6054_0_resolve_aux_EQ(EOS(STATIC_6054), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, matching2, matching3, matching4) → 6058_0_resolve_aux_Inc(EOS(STATIC_6058), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i817, 9, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0)), =(matching4, 0))
6058_0_resolve_aux_Inc(EOS(STATIC_6058), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i817, matching2, matching3) → 6061_0_resolve_aux_JMP(EOS(STATIC_6061), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, +(i817, 1), 9, 0) | &&(&&(&&(>=(i817, 0), =(matching1, 9)), =(matching2, 9)), =(matching3, 0))
6061_0_resolve_aux_JMP(EOS(STATIC_6061), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i870, matching2, matching3) → 6066_0_resolve_aux_Load(EOS(STATIC_6066), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i870, 9, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6066_0_resolve_aux_Load(EOS(STATIC_6066), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i573, i870, matching2, matching3) → 5761_0_resolve_aux_Load(EOS(STATIC_5761), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i573, i870, 9, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
R rules:
6168_0_possibleValues_ConstantStackPush(EOS(STATIC_6168), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i817, i869, java.lang.Object(ARRAY(matching2))) → 6175_0_possibleValues_ConstantStackPush(EOS(STATIC_6175), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i817, i869, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
6175_0_possibleValues_ConstantStackPush(EOS(STATIC_6175), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i817, i869, java.lang.Object(ARRAY(matching2))) → 6190_0_possibleValues_ConstantStackPush(EOS(STATIC_6190), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i817, i869, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
5795_0_possibleValues_ConstantStackPush(EOS(STATIC_5795), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), matching2, i813, java.lang.Object(ARRAY(matching3))) → 6190_0_possibleValues_ConstantStackPush(EOS(STATIC_6190), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), 9, i813, java.lang.Object(ARRAY(9))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6190_0_possibleValues_ConstantStackPush(EOS(STATIC_6190), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2))) → 6196_0_possibleValues_Store(EOS(STATIC_6196), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), 0) | &&(=(matching1, 9), =(matching2, 9))
6196_0_possibleValues_Store(EOS(STATIC_6196), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), matching3) → 6200_0_possibleValues_Load(EOS(STATIC_6200), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6200_0_possibleValues_Load(EOS(STATIC_6200), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), matching3) → 6246_0_possibleValues_Load(EOS(STATIC_6246), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6246_0_possibleValues_Load(EOS(STATIC_6246), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i889) → 6273_0_possibleValues_Load(EOS(STATIC_6273), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i889) | &&(=(matching1, 9), =(matching2, 9))
6273_0_possibleValues_Load(EOS(STATIC_6273), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i894) → 6288_0_possibleValues_Load(EOS(STATIC_6288), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i894) | &&(=(matching1, 9), =(matching2, 9))
6288_0_possibleValues_Load(EOS(STATIC_6288), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i899) → 6302_0_possibleValues_Load(EOS(STATIC_6302), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i899) | &&(=(matching1, 9), =(matching2, 9))
6302_0_possibleValues_Load(EOS(STATIC_6302), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i902) → 6303_0_possibleValues_ConstantStackPush(EOS(STATIC_6303), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i902, i902) | &&(=(matching1, 9), =(matching2, 9))
6303_0_possibleValues_ConstantStackPush(EOS(STATIC_6303), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i902, i902) → 6305_0_possibleValues_GE(EOS(STATIC_6305), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i902, i902, 9) | &&(=(matching1, 9), =(matching2, 9))
6305_0_possibleValues_GE(EOS(STATIC_6305), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i905, i905, matching3) → 6306_0_possibleValues_GE(EOS(STATIC_6306), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i905, i905, 9) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6305_0_possibleValues_GE(EOS(STATIC_6305), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), matching3, matching4, matching5) → 6307_0_possibleValues_GE(EOS(STATIC_6307), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), 9, 9, 9) | &&(&&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9)), =(matching5, 9))
6306_0_possibleValues_GE(EOS(STATIC_6306), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i905, i905, matching3) → 6308_0_possibleValues_Load(EOS(STATIC_6308), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i905) | &&(&&(&&(<(i905, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
6307_0_possibleValues_GE(EOS(STATIC_6307), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), matching3, matching4, matching5) → 6310_0_possibleValues_ConstantStackPush(EOS(STATIC_6310), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9))) | &&(&&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9)), =(matching5, 9))
6308_0_possibleValues_Load(EOS(STATIC_6308), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i905) → 6311_0_possibleValues_Load(EOS(STATIC_6311), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i905, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
6310_0_possibleValues_ConstantStackPush(EOS(STATIC_6310), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2))) → 6312_0_possibleValues_Store(EOS(STATIC_6312), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), 0) | &&(=(matching1, 9), =(matching2, 9))
6311_0_possibleValues_Load(EOS(STATIC_6311), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i905, java.lang.Object(ARRAY(matching3))) → 6313_0_possibleValues_ConstantStackPush(EOS(STATIC_6313), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i905, java.lang.Object(ARRAY(9)), i905) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6312_0_possibleValues_Store(EOS(STATIC_6312), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), matching3) → 6315_0_possibleValues_Load(EOS(STATIC_6315), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6313_0_possibleValues_ConstantStackPush(EOS(STATIC_6313), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i905, java.lang.Object(ARRAY(matching3)), i905) → 6316_0_possibleValues_ArrayAccess(EOS(STATIC_6316), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i905, java.lang.Object(ARRAY(9)), i905) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6315_0_possibleValues_Load(EOS(STATIC_6315), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), matching3) → 6384_0_possibleValues_Load(EOS(STATIC_6384), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6316_0_possibleValues_ArrayAccess(EOS(STATIC_6316), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i905, java.lang.Object(ARRAY(matching3)), i905) → 6319_0_possibleValues_Inc(EOS(STATIC_6319), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i905) | &&(&&(&&(<(i905, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
6319_0_possibleValues_Inc(EOS(STATIC_6319), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i905) → 6321_0_possibleValues_JMP(EOS(STATIC_6321), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), +(i905, 1)) | &&(&&(>=(i905, 0), =(matching1, 9)), =(matching2, 9))
6321_0_possibleValues_JMP(EOS(STATIC_6321), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i907) → 6325_0_possibleValues_Load(EOS(STATIC_6325), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i907) | &&(=(matching1, 9), =(matching2, 9))
6325_0_possibleValues_Load(EOS(STATIC_6325), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i907) → 6302_0_possibleValues_Load(EOS(STATIC_6302), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i907) | &&(=(matching1, 9), =(matching2, 9))
6384_0_possibleValues_Load(EOS(STATIC_6384), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i920, i883, java.lang.Object(ARRAY(matching2)), i921) → 6450_0_possibleValues_Load(EOS(STATIC_6450), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i920, i883, java.lang.Object(ARRAY(9)), i921) | &&(=(matching1, 9), =(matching2, 9))
6450_0_possibleValues_Load(EOS(STATIC_6450), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i937, i883, java.lang.Object(ARRAY(matching2)), i938) → 6514_0_possibleValues_Load(EOS(STATIC_6514), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i937, i883, java.lang.Object(ARRAY(9)), i938) | &&(=(matching1, 9), =(matching2, 9))
6514_0_possibleValues_Load(EOS(STATIC_6514), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i953, i883, java.lang.Object(ARRAY(matching2)), i954) → 6576_0_possibleValues_Load(EOS(STATIC_6576), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i953, i883, java.lang.Object(ARRAY(9)), i954) | &&(=(matching1, 9), =(matching2, 9))
6576_0_possibleValues_Load(EOS(STATIC_6576), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), i970) → 6578_0_possibleValues_ConstantStackPush(EOS(STATIC_6578), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9)), i970, i970) | &&(=(matching1, 9), =(matching2, 9))
6578_0_possibleValues_ConstantStackPush(EOS(STATIC_6578), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), i970, i970) → 6580_0_possibleValues_GE(EOS(STATIC_6580), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9)), i970, i970, 9) | &&(=(matching1, 9), =(matching2, 9))
6580_0_possibleValues_GE(EOS(STATIC_6580), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), i975, i975, matching3) → 6581_0_possibleValues_GE(EOS(STATIC_6581), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9)), i975, i975, 9) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6580_0_possibleValues_GE(EOS(STATIC_6580), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), matching3, matching4, matching5) → 6582_0_possibleValues_GE(EOS(STATIC_6582), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9)), 9, 9, 9) | &&(&&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9)), =(matching5, 9))
6581_0_possibleValues_GE(EOS(STATIC_6581), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), i975, i975, matching3) → 6584_0_possibleValues_Load(EOS(STATIC_6584), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9)), i975) | &&(&&(&&(<(i975, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
6582_0_possibleValues_GE(EOS(STATIC_6582), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), matching3, matching4, matching5) → 6585_0_possibleValues_ConstantStackPush(EOS(STATIC_6585), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9))) | &&(&&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9)), =(matching5, 9))
6584_0_possibleValues_Load(EOS(STATIC_6584), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), i975) → 6586_0_possibleValues_FieldAccess(EOS(STATIC_6586), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 9))
6585_0_possibleValues_ConstantStackPush(EOS(STATIC_6585), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2))) → 6587_0_possibleValues_Store(EOS(STATIC_6587), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9)), 0) | &&(=(matching1, 9), =(matching2, 9))
6586_0_possibleValues_FieldAccess(EOS(STATIC_6586), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 6588_0_possibleValues_Load(EOS(STATIC_6588), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6587_0_possibleValues_Store(EOS(STATIC_6587), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), matching3) → 6590_0_possibleValues_Load(EOS(STATIC_6590), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9)), 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6588_0_possibleValues_Load(EOS(STATIC_6588), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3))) → 6591_0_possibleValues_ArrayAccess(EOS(STATIC_6591), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i969) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6590_0_possibleValues_Load(EOS(STATIC_6590), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), matching3) → 6715_0_possibleValues_Load(EOS(STATIC_6715), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9)), 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6591_0_possibleValues_ArrayAccess(EOS(STATIC_6591), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i978, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i978) → 6593_0_possibleValues_ArrayAccess(EOS(STATIC_6593), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i978, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i978) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6591_0_possibleValues_ArrayAccess(EOS(STATIC_6591), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i979, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i979) → 6594_0_possibleValues_ArrayAccess(EOS(STATIC_6594), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i979, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i979) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6593_0_possibleValues_ArrayAccess(EOS(STATIC_6593), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i978, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i978) → 6597_0_<init>_Load(EOS(STATIC_6597), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i978, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(&&(<=(i978, -1), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
6594_0_possibleValues_ArrayAccess(EOS(STATIC_6594), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i980) → 6598_0_possibleValues_ArrayAccess(EOS(STATIC_6598), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i980) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6594_0_possibleValues_ArrayAccess(EOS(STATIC_6594), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i981, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i981) → 6599_0_possibleValues_ArrayAccess(EOS(STATIC_6599), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i981, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i981) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6597_0_<init>_Load(EOS(STATIC_6597), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i978, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6605_0_<init>_InvokeMethod(EOS(STATIC_6605), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i978, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6598_0_possibleValues_ArrayAccess(EOS(STATIC_6598), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i980) → 6601_0_possibleValues_Load(EOS(STATIC_6601), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, o2259) | &&(&&(&&(<(i980, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
6599_0_possibleValues_ArrayAccess(EOS(STATIC_6599), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i981, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i981) → 6602_0_<init>_Load(EOS(STATIC_6602), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i981, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(&&(&&(>=(i981, 9), <=(9, 9)), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
6601_0_possibleValues_Load(EOS(STATIC_6601), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, o2259) → 6606_0_possibleValues_ArrayAccess(EOS(STATIC_6606), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, o2259, i975) | &&(=(matching1, 9), =(matching2, 9))
6602_0_<init>_Load(EOS(STATIC_6602), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i981, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6612_0_<init>_InvokeMethod(EOS(STATIC_6612), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i981, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6605_0_<init>_InvokeMethod(EOS(STATIC_6605), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i978, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6608_0_<init>_Load(EOS(STATIC_6608), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i978, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6606_0_possibleValues_ArrayAccess(EOS(STATIC_6606), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(o2262put), i975) → 6610_0_possibleValues_ArrayAccess(EOS(STATIC_6610), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(o2262put), i975) | &&(=(matching1, 9), =(matching2, 9))
6606_0_possibleValues_ArrayAccess(EOS(STATIC_6606), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, NULL, i975) → 6611_0_possibleValues_ArrayAccess(EOS(STATIC_6611), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, NULL, i975) | &&(=(matching1, 9), =(matching2, 9))
6608_0_<init>_Load(EOS(STATIC_6608), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i978, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6620_0_<init>_InvokeMethod(EOS(STATIC_6620), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i978, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6610_0_possibleValues_ArrayAccess(EOS(STATIC_6610), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6615_0_possibleValues_ArrayAccess(EOS(STATIC_6615), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(i982)), i975) | &&(&&(>=(i982, 0), =(matching1, 9)), =(matching2, 9))
6611_0_possibleValues_ArrayAccess(EOS(STATIC_6611), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, NULL, i975) → 6616_0_possibleValues_ArrayAccess(EOS(STATIC_6616), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, NULL, i975) | &&(=(matching1, 9), =(matching2, 9))
6612_0_<init>_InvokeMethod(EOS(STATIC_6612), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i981, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6617_0_<init>_Load(EOS(STATIC_6617), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i981, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6615_0_possibleValues_ArrayAccess(EOS(STATIC_6615), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6621_0_possibleValues_ArrayAccess(EOS(STATIC_6621), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(i982)), i975) | &&(=(matching1, 9), =(matching2, 9))
6615_0_possibleValues_ArrayAccess(EOS(STATIC_6615), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6622_0_possibleValues_ArrayAccess(EOS(STATIC_6622), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(i982)), i975) | &&(=(matching1, 9), =(matching2, 9))
6616_0_possibleValues_ArrayAccess(EOS(STATIC_6616), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, NULL, i975) → 6623_0_<init>_Load(EOS(STATIC_6623), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, NULL, i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC)))))) | &&(=(matching1, 9), =(matching2, 9))
6617_0_<init>_Load(EOS(STATIC_6617), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i981, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6630_0_<init>_InvokeMethod(EOS(STATIC_6630), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i981, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6620_0_<init>_InvokeMethod(EOS(STATIC_6620), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i978, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6626_0_<init>_Load(EOS(STATIC_6626), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i978, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6621_0_possibleValues_ArrayAccess(EOS(STATIC_6621), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6627_0_possibleValues_EQ(EOS(STATIC_6627), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, i983) | &&(&&(<(i975, i982), =(matching1, 9)), =(matching2, 9))
6622_0_possibleValues_ArrayAccess(EOS(STATIC_6622), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6628_0_<init>_Load(EOS(STATIC_6628), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(i982)), i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(>=(i975, i982), =(matching1, 9)), =(matching2, 9))
6623_0_<init>_Load(EOS(STATIC_6623), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, NULL, i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC)))))) → 6636_0_<init>_InvokeMethod(EOS(STATIC_6636), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, NULL, i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC)))))) | &&(=(matching1, 9), =(matching2, 9))
6626_0_<init>_Load(EOS(STATIC_6626), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i978, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6641_0_<init>_InvokeMethod(EOS(STATIC_6641), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i978, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6627_0_possibleValues_EQ(EOS(STATIC_6627), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, i985) → 6633_0_possibleValues_EQ(EOS(STATIC_6633), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, i985) | &&(=(matching1, 9), =(matching2, 9))
6627_0_possibleValues_EQ(EOS(STATIC_6627), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, matching3) → 6634_0_possibleValues_EQ(EOS(STATIC_6634), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6628_0_<init>_Load(EOS(STATIC_6628), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6645_0_<init>_InvokeMethod(EOS(STATIC_6645), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(i982)), i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(=(matching1, 9), =(matching2, 9))
6630_0_<init>_InvokeMethod(EOS(STATIC_6630), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i981, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6637_0_<init>_Load(EOS(STATIC_6637), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i981, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6633_0_possibleValues_EQ(EOS(STATIC_6633), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, i985) → 6642_0_possibleValues_Load(EOS(STATIC_6642), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975) | &&(&&(!(=(i985, 0)), =(matching1, 9)), =(matching2, 9))
6634_0_possibleValues_EQ(EOS(STATIC_6634), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, matching3) → 6643_0_possibleValues_Inc(EOS(STATIC_6643), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6636_0_<init>_InvokeMethod(EOS(STATIC_6636), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, NULL, i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC)))))) → 6646_0_<init>_Load(EOS(STATIC_6646), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, NULL, i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC)))))) | &&(=(matching1, 9), =(matching2, 9))
6637_0_<init>_Load(EOS(STATIC_6637), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i981, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6656_0_<init>_InvokeMethod(EOS(STATIC_6656), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i981, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6641_0_<init>_InvokeMethod(EOS(STATIC_6641), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i978, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6651_0_<init>_Load(EOS(STATIC_6651), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i978, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6642_0_possibleValues_Load(EOS(STATIC_6642), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975) → 6652_0_possibleValues_Load(EOS(STATIC_6652), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
6643_0_possibleValues_Inc(EOS(STATIC_6643), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975) → 6816_0_possibleValues_Inc(EOS(STATIC_6816), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975) | &&(=(matching1, 9), =(matching2, 9))
6645_0_<init>_InvokeMethod(EOS(STATIC_6645), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6654_0_<init>_Load(EOS(STATIC_6654), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(i982)), i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(=(matching1, 9), =(matching2, 9))
6646_0_<init>_Load(EOS(STATIC_6646), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, NULL, i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC)))))) → 6665_0_<init>_InvokeMethod(EOS(STATIC_6665), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, NULL, i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC)))))) | &&(=(matching1, 9), =(matching2, 9))
6651_0_<init>_Load(EOS(STATIC_6651), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i978, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6671_0_<init>_InvokeMethod(EOS(STATIC_6671), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i978, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6652_0_possibleValues_Load(EOS(STATIC_6652), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3))) → 6661_0_possibleValues_FieldAccess(EOS(STATIC_6661), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6654_0_<init>_Load(EOS(STATIC_6654), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6674_0_<init>_InvokeMethod(EOS(STATIC_6674), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(i982)), i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(=(matching1, 9), =(matching2, 9))
6656_0_<init>_InvokeMethod(EOS(STATIC_6656), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i981, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6666_0_<init>_Load(EOS(STATIC_6666), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i981, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6661_0_possibleValues_FieldAccess(EOS(STATIC_6661), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching4))))) → 6672_0_possibleValues_Load(EOS(STATIC_6672), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(9))) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
6665_0_<init>_InvokeMethod(EOS(STATIC_6665), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, NULL, i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC)))))) → 6675_0_<init>_Load(EOS(STATIC_6675), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, NULL, i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC)))))) | &&(=(matching1, 9), =(matching2, 9))
6666_0_<init>_Load(EOS(STATIC_6666), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i981, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6685_0_<init>_InvokeMethod(EOS(STATIC_6685), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i981, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6671_0_<init>_InvokeMethod(EOS(STATIC_6671), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i978, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6682_0_<init>_Load(EOS(STATIC_6682), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i978, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6672_0_possibleValues_Load(EOS(STATIC_6672), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(matching4))) → 6683_0_possibleValues_ArrayAccess(EOS(STATIC_6683), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(9)), i980) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
6674_0_<init>_InvokeMethod(EOS(STATIC_6674), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6684_0_<init>_Load(EOS(STATIC_6684), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(i982)), i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(=(matching1, 9), =(matching2, 9))
6675_0_<init>_Load(EOS(STATIC_6675), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, NULL, i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC)))))) → 6694_0_<init>_InvokeMethod(EOS(STATIC_6694), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, NULL, i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC)))))) | &&(=(matching1, 9), =(matching2, 9))
6682_0_<init>_Load(EOS(STATIC_6682), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i978, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6702_0_<init>_InvokeMethod(EOS(STATIC_6702), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i978, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6683_0_possibleValues_ArrayAccess(EOS(STATIC_6683), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(matching4)), i980) → 6692_0_possibleValues_Load(EOS(STATIC_6692), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), o2293) | &&(&&(&&(&&(<(i980, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
6684_0_<init>_Load(EOS(STATIC_6684), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6706_0_<init>_InvokeMethod(EOS(STATIC_6706), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(i982)), i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(=(matching1, 9), =(matching2, 9))
6685_0_<init>_InvokeMethod(EOS(STATIC_6685), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i981, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6695_0_<init>_Load(EOS(STATIC_6695), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i981, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6692_0_possibleValues_Load(EOS(STATIC_6692), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), o2293) → 6704_0_possibleValues_ArrayAccess(EOS(STATIC_6704), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), o2293, i975) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6694_0_<init>_InvokeMethod(EOS(STATIC_6694), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, NULL, i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC)))))) → 6707_0_<init>_Load(EOS(STATIC_6707), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, NULL, i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.NullPointerException(EOC)))))) | &&(=(matching1, 9), =(matching2, 9))
6695_0_<init>_Load(EOS(STATIC_6695), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i981, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6722_0_<init>_InvokeMethod(EOS(STATIC_6722), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i981, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i981, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6702_0_<init>_InvokeMethod(EOS(STATIC_6702), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i978, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) → 6717_0_<init>_Load(EOS(STATIC_6717), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i978, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), i978, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC))))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6704_0_possibleValues_ArrayAccess(EOS(STATIC_6704), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), java.lang.Object(o2318put), i975) → 6718_0_possibleValues_ArrayAccess(EOS(STATIC_6718), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), java.lang.Object(o2318put), i975) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6704_0_possibleValues_ArrayAccess(EOS(STATIC_6704), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), NULL, i975) → 6719_0_possibleValues_ArrayAccess(EOS(STATIC_6719), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, java.lang.Object(ARRAY(9)), NULL, i975) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6706_0_<init>_InvokeMethod(EOS(STATIC_6706), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975, java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))), java.lang.Object(java.lang.Throwable(java.lang.Exception(java.lang.RuntimeException(java.lang.IndexOutOfBoundsException(java.lang.ArrayIndexOutOfBoundsException(EOC)))))),