(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:
7444_0_possibleValues_Load(EOS(STATIC_7444), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1272, java.lang.Object(ARRAY(matching2)), i1312, i1361, i1253, i1253) → 7457_0_possibleValues_GE(EOS(STATIC_7457), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1272, java.lang.Object(ARRAY(9)), i1312, i1361, i1253, i1253, i1312) | &&(=(matching1, 9), =(matching2, 9))
7457_0_possibleValues_GE(EOS(STATIC_7457), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1272, java.lang.Object(ARRAY(matching2)), i1312, i1361, i1253, i1253, i1312) → 7470_0_possibleValues_GE(EOS(STATIC_7470), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1272, java.lang.Object(ARRAY(9)), i1312, i1361, i1253, i1253, i1312) | &&(=(matching1, 9), =(matching2, 9))
7470_0_possibleValues_GE(EOS(STATIC_7470), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1272, java.lang.Object(ARRAY(matching2)), i1312, i1361, i1253, i1253, i1312) → 7484_0_possibleValues_Load(EOS(STATIC_7484), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1272, java.lang.Object(ARRAY(9)), i1312, i1361, i1253) | &&(&&(<(i1253, i1312), =(matching1, 9)), =(matching2, 9))
7484_0_possibleValues_Load(EOS(STATIC_7484), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1272, java.lang.Object(ARRAY(matching2)), i1312, i1361, i1253) → 7500_0_possibleValues_Store(EOS(STATIC_7500), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1272, java.lang.Object(ARRAY(9)), i1312, i1361, i1253, i1272) | &&(=(matching1, 9), =(matching2, 9))
7500_0_possibleValues_Store(EOS(STATIC_7500), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1272, java.lang.Object(ARRAY(matching2)), i1312, i1361, i1253, i1272) → 7515_0_possibleValues_Load(EOS(STATIC_7515), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1272, java.lang.Object(ARRAY(9)), i1312, i1361, i1253, i1272) | &&(=(matching1, 9), =(matching2, 9))
7515_0_possibleValues_Load(EOS(STATIC_7515), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1272, java.lang.Object(ARRAY(matching2)), i1312, i1361, i1253, i1272) → 7943_0_possibleValues_Load(EOS(STATIC_7943), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1272, java.lang.Object(ARRAY(9)), i1312, i1361, i1253, i1272) | &&(=(matching1, 9), =(matching2, 9))
7943_0_possibleValues_Load(EOS(STATIC_7943), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2430, i2431) → 7959_0_possibleValues_Load(EOS(STATIC_7959), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2430, i2431, i2431) | &&(=(matching1, 9), =(matching2, 9))
7959_0_possibleValues_Load(EOS(STATIC_7959), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2430, i2431, i2431) → 7978_0_possibleValues_GE(EOS(STATIC_7978), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2430, i2431, i2431, i1361) | &&(=(matching1, 9), =(matching2, 9))
7978_0_possibleValues_GE(EOS(STATIC_7978), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2430, i2431, i2431, i1361) → 7997_0_possibleValues_GE(EOS(STATIC_7997), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2430, i2431, i2431, i1361) | &&(=(matching1, 9), =(matching2, 9))
7978_0_possibleValues_GE(EOS(STATIC_7978), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2430, i2431, i2431, i1361) → 7998_0_possibleValues_GE(EOS(STATIC_7998), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2430, i2431, i2431, i1361) | &&(=(matching1, 9), =(matching2, 9))
7997_0_possibleValues_GE(EOS(STATIC_7997), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2430, i2431, i2431, i1361) → 8019_0_possibleValues_Inc(EOS(STATIC_8019), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2430) | &&(&&(>=(i2431, i1361), =(matching1, 9)), =(matching2, 9))
8019_0_possibleValues_Inc(EOS(STATIC_8019), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2430) → 8030_0_possibleValues_JMP(EOS(STATIC_8030), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, +(i2430, 1)) | &&(=(matching1, 9), =(matching2, 9))
8030_0_possibleValues_JMP(EOS(STATIC_8030), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2533) → 8040_0_possibleValues_Load(EOS(STATIC_8040), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2533) | &&(=(matching1, 9), =(matching2, 9))
8040_0_possibleValues_Load(EOS(STATIC_8040), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2533) → 7433_0_possibleValues_Load(EOS(STATIC_7433), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2533) | &&(=(matching1, 9), =(matching2, 9))
7433_0_possibleValues_Load(EOS(STATIC_7433), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1272, java.lang.Object(ARRAY(matching2)), i1312, i1361, i1253) → 7444_0_possibleValues_Load(EOS(STATIC_7444), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1272, java.lang.Object(ARRAY(9)), i1312, i1361, i1253, i1253) | &&(=(matching1, 9), =(matching2, 9))
7998_0_possibleValues_GE(EOS(STATIC_7998), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2430, i2431, i2431, i1361) → 8020_0_possibleValues_Load(EOS(STATIC_8020), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2430, i2431) | &&(&&(<(i2431, i1361), =(matching1, 9)), =(matching2, 9))
8020_0_possibleValues_Load(EOS(STATIC_8020), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2430, i2431) → 8031_0_possibleValues_FieldAccess(EOS(STATIC_8031), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2430, i2431, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 9))
8031_0_possibleValues_FieldAccess(EOS(STATIC_8031), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2430, i2431, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 8041_0_possibleValues_Load(EOS(STATIC_8041), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2430, i2431, java.lang.Object(ARRAY(9))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8041_0_possibleValues_Load(EOS(STATIC_8041), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2430, i2431, java.lang.Object(ARRAY(matching3))) → 8053_0_possibleValues_ArrayAccess(EOS(STATIC_8053), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2430, i2431, java.lang.Object(ARRAY(9)), i2430) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8053_0_possibleValues_ArrayAccess(EOS(STATIC_8053), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2554, i2431, java.lang.Object(ARRAY(matching3)), i2554) → 8062_0_possibleValues_ArrayAccess(EOS(STATIC_8062), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2554, i2431, java.lang.Object(ARRAY(9)), i2554) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8062_0_possibleValues_ArrayAccess(EOS(STATIC_8062), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2431, java.lang.Object(ARRAY(matching3)), i2568) → 8079_0_possibleValues_ArrayAccess(EOS(STATIC_8079), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2431, java.lang.Object(ARRAY(9)), i2568) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8079_0_possibleValues_ArrayAccess(EOS(STATIC_8079), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2431, java.lang.Object(ARRAY(matching3)), i2568) → 8088_0_possibleValues_Load(EOS(STATIC_8088), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2431, o5706) | &&(&&(&&(<(i2568, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8088_0_possibleValues_Load(EOS(STATIC_8088), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2431, o5706) → 8101_0_possibleValues_ArrayAccess(EOS(STATIC_8101), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2431, o5706, i2431) | &&(=(matching1, 9), =(matching2, 9))
8101_0_possibleValues_ArrayAccess(EOS(STATIC_8101), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2431, java.lang.Object(o5751put), i2431) → 8111_0_possibleValues_ArrayAccess(EOS(STATIC_8111), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2431, java.lang.Object(o5751put), i2431) | &&(=(matching1, 9), =(matching2, 9))
8111_0_possibleValues_ArrayAccess(EOS(STATIC_8111), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2431, java.lang.Object(ARRAY(i2625)), i2431) → 8128_0_possibleValues_ArrayAccess(EOS(STATIC_8128), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2431, java.lang.Object(ARRAY(i2625)), i2431) | &&(&&(>=(i2625, 0), =(matching1, 9)), =(matching2, 9))
8128_0_possibleValues_ArrayAccess(EOS(STATIC_8128), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(i2625)), i2650) → 8146_0_possibleValues_ArrayAccess(EOS(STATIC_8146), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(i2625)), i2650) | &&(=(matching1, 9), =(matching2, 9))
8146_0_possibleValues_ArrayAccess(EOS(STATIC_8146), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(i2625)), i2650) → 8154_0_possibleValues_ArrayAccess(EOS(STATIC_8154), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(i2625)), i2650) | &&(=(matching1, 9), =(matching2, 9))
8154_0_possibleValues_ArrayAccess(EOS(STATIC_8154), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(i2625)), i2650) → 8163_0_possibleValues_EQ(EOS(STATIC_8163), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, i2668) | &&(&&(<(i2650, i2625), =(matching1, 9)), =(matching2, 9))
8163_0_possibleValues_EQ(EOS(STATIC_8163), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, i2714) → 8182_0_possibleValues_EQ(EOS(STATIC_8182), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, i2714) | &&(=(matching1, 9), =(matching2, 9))
8163_0_possibleValues_EQ(EOS(STATIC_8163), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, matching3) → 8183_0_possibleValues_EQ(EOS(STATIC_8183), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
8182_0_possibleValues_EQ(EOS(STATIC_8182), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, i2714) → 8190_0_possibleValues_Load(EOS(STATIC_8190), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650) | &&(&&(!(=(i2714, 0)), =(matching1, 9)), =(matching2, 9))
8190_0_possibleValues_Load(EOS(STATIC_8190), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650) → 8205_0_possibleValues_Load(EOS(STATIC_8205), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
8205_0_possibleValues_Load(EOS(STATIC_8205), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(matching3))) → 8226_0_possibleValues_FieldAccess(EOS(STATIC_8226), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(9)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8226_0_possibleValues_FieldAccess(EOS(STATIC_8226), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(matching3)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching4))))) → 8237_0_possibleValues_Load(EOS(STATIC_8237), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(9))) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
8237_0_possibleValues_Load(EOS(STATIC_8237), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(matching4))) → 8253_0_possibleValues_ArrayAccess(EOS(STATIC_8253), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(9)), i2568) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
8253_0_possibleValues_ArrayAccess(EOS(STATIC_8253), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(matching4)), i2568) → 8275_0_possibleValues_Load(EOS(STATIC_8275), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(9)), o6427) | &&(&&(&&(&&(<(i2568, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
8275_0_possibleValues_Load(EOS(STATIC_8275), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(matching3)), o6427) → 8293_0_possibleValues_ArrayAccess(EOS(STATIC_8293), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(9)), o6427, i2650) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8293_0_possibleValues_ArrayAccess(EOS(STATIC_8293), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(matching3)), java.lang.Object(o6631put), i2650) → 8312_0_possibleValues_ArrayAccess(EOS(STATIC_8312), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(9)), java.lang.Object(o6631put), i2650) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8312_0_possibleValues_ArrayAccess(EOS(STATIC_8312), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(i3123)), i2650) → 8336_0_possibleValues_ArrayAccess(EOS(STATIC_8336), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(i3123)), i2650) | &&(&&(&&(>=(i3123, 0), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8336_0_possibleValues_ArrayAccess(EOS(STATIC_8336), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(i3123)), i2650) → 8357_0_possibleValues_ArrayAccess(EOS(STATIC_8357), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(i3123)), i2650) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8357_0_possibleValues_ArrayAccess(EOS(STATIC_8357), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(i3123)), i2650) → 8384_0_possibleValues_ConstantStackPush(EOS(STATIC_8384), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(9)), i3283) | &&(&&(&&(<(i2650, i3123), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8384_0_possibleValues_ConstantStackPush(EOS(STATIC_8384), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(matching3)), i3283) → 8410_0_possibleValues_IntArithmetic(EOS(STATIC_8410), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(9)), i3283, 1) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8410_0_possibleValues_IntArithmetic(EOS(STATIC_8410), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(matching3)), i3283, matching4) → 8435_0_possibleValues_ConstantStackPush(EOS(STATIC_8435), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(9)), -(i3283, 1)) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 1))
8435_0_possibleValues_ConstantStackPush(EOS(STATIC_8435), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(matching3)), i3465) → 8469_0_possibleValues_ArrayAccess(EOS(STATIC_8469), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(9)), i3465, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8469_0_possibleValues_ArrayAccess(EOS(STATIC_8469), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(matching3)), i3714, matching4) → 8500_0_possibleValues_ArrayAccess(EOS(STATIC_8500), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(9)), i3714, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
8500_0_possibleValues_ArrayAccess(EOS(STATIC_8500), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(matching3)), i3845, matching4) → 8535_0_possibleValues_ArrayAccess(EOS(STATIC_8535), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(9)), i3845, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
8535_0_possibleValues_ArrayAccess(EOS(STATIC_8535), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, java.lang.Object(ARRAY(matching3)), i3845, matching4) → 8571_0_possibleValues_Inc(EOS(STATIC_8571), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650) | &&(&&(&&(&&(<(i3845, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
8571_0_possibleValues_Inc(EOS(STATIC_8571), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650) → 8607_0_possibleValues_JMP(EOS(STATIC_8607), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, +(i2650, 1)) | &&(&&(>=(i2650, 0), =(matching1, 9)), =(matching2, 9))
8607_0_possibleValues_JMP(EOS(STATIC_8607), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i4079) → 8635_0_possibleValues_Load(EOS(STATIC_8635), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i4079) | &&(=(matching1, 9), =(matching2, 9))
8635_0_possibleValues_Load(EOS(STATIC_8635), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i4079) → 7943_0_possibleValues_Load(EOS(STATIC_7943), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i4079) | &&(=(matching1, 9), =(matching2, 9))
8183_0_possibleValues_EQ(EOS(STATIC_8183), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650, matching3) → 8191_0_possibleValues_Inc(EOS(STATIC_8191), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
8191_0_possibleValues_Inc(EOS(STATIC_8191), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i2429, java.lang.Object(ARRAY(matching2)), i1312, i1361, i2568, i2650) → 8571_0_possibleValues_Inc(EOS(STATIC_8571), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i2429, java.lang.Object(ARRAY(9)), i1312, i1361, i2568, i2650) | &&(=(matching1, 9), =(matching2, 9))
R rules:

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


P rules:
7978_0_possibleValues_GE(EOS(STATIC_7978), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), x1, java.lang.Object(ARRAY(9)), x3, x4, x5, x6, x6, x4) → 7978_0_possibleValues_GE(EOS(STATIC_7978), 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)))
7978_0_possibleValues_GE(EOS(STATIC_7978), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), x1, java.lang.Object(ARRAY(9)), x3, x4, x5, x6, x6, x4) → 7978_0_possibleValues_GE(EOS(STATIC_7978), 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:



7978_0_possibleValues_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → 7978_0_possibleValues_GE(x3, x5, x6, x7, x8, x9, x10)
ARRAY(x1) → ARRAY
Sudoku(x1, x2) → Sudoku
EOS(x1) → EOS
Cond_7978_0_possibleValues_GE1(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) → Cond_7978_0_possibleValues_GE1(x1, x4, x6, x7, x8, x9, x10, x11)
Cond_7978_0_possibleValues_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) → Cond_7978_0_possibleValues_GE(x1, x4, x6, x7, x8, x9, x10, x11)

Filtered duplicate args:



7978_0_possibleValues_GE(x1, x2, x3, x4, x5, x6, x7) → 7978_0_possibleValues_GE(x1, x2, x4, x6, x7)
Cond_7978_0_possibleValues_GE(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_7978_0_possibleValues_GE(x1, x2, x3, x5, x7, x8)
Cond_7978_0_possibleValues_GE1(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_7978_0_possibleValues_GE1(x1, x2, x3, x5, x7, x8)

Filtered unneeded arguments:



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

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


P rules:
7978_0_possibleValues_GE(x1, x3, x5, x6, x4) → 7978_0_possibleValues_GE(x1, x3, +(x5, 1), x1, x4) | &&(>=(x6, x4), >(x3, +(x5, 1)))
7978_0_possibleValues_GE(x1, x3, x5, x6, x4) → 7978_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:
7978_0_POSSIBLEVALUES_GE(x1, x3, x5, x6, x4) → COND_7978_0_POSSIBLEVALUES_GE(&&(>=(x6, x4), >(x3, +(x5, 1))), x1, x3, x5, x6, x4)
COND_7978_0_POSSIBLEVALUES_GE(TRUE, x1, x3, x5, x6, x4) → 7978_0_POSSIBLEVALUES_GE(x1, x3, +(x5, 1), x1, x4)
7978_0_POSSIBLEVALUES_GE(x1, x3, x5, x6, x4) → COND_7978_0_POSSIBLEVALUES_GE1(&&(&&(>(x6, -1), <(x6, x4)), <(x5, 9)), x1, x3, x5, x6, x4)
COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1, x3, x5, x6, x4) → 7978_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): 7978_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0]) → COND_7978_0_POSSIBLEVALUES_GE(x6[0] >= x4[0] && x3[0] > x5[0] + 1, x1[0], x3[0], x5[0], x6[0], x4[0])
(1): COND_7978_0_POSSIBLEVALUES_GE(TRUE, x1[1], x3[1], x5[1], x6[1], x4[1]) → 7978_0_POSSIBLEVALUES_GE(x1[1], x3[1], x5[1] + 1, x1[1], x4[1])
(2): 7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_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_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_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@2bb39071 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 7978_0_POSSIBLEVALUES_GE(x1, x3, x5, x6, x4) → COND_7978_0_POSSIBLEVALUES_GE(&&(>=(x6, x4), >(x3, +(x5, 1))), x1, x3, x5, x6, x4) the following chains were created:
  • We consider the chain 7978_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0]) → COND_7978_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0]), COND_7978_0_POSSIBLEVALUES_GE(TRUE, x1[1], x3[1], x5[1], x6[1], x4[1]) → 7978_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]7978_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0])≥NonInfC∧7978_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0])≥COND_7978_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])∧(UIncreasing(COND_7978_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))=TRUE7978_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0])≥NonInfC∧7978_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0])≥COND_7978_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])∧(UIncreasing(COND_7978_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_7978_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_7978_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_7978_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_7978_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_7978_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_7978_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_7978_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_7978_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_7978_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_7978_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_7978_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_7978_0_POSSIBLEVALUES_GE(TRUE, x1, x3, x5, x6, x4) → 7978_0_POSSIBLEVALUES_GE(x1, x3, +(x5, 1), x1, x4) the following chains were created:
  • We consider the chain COND_7978_0_POSSIBLEVALUES_GE(TRUE, x1[1], x3[1], x5[1], x6[1], x4[1]) → 7978_0_POSSIBLEVALUES_GE(x1[1], x3[1], +(x5[1], 1), x1[1], x4[1]) which results in the following constraint:

    (14)    (COND_7978_0_POSSIBLEVALUES_GE(TRUE, x1[1], x3[1], x5[1], x6[1], x4[1])≥NonInfC∧COND_7978_0_POSSIBLEVALUES_GE(TRUE, x1[1], x3[1], x5[1], x6[1], x4[1])≥7978_0_POSSIBLEVALUES_GE(x1[1], x3[1], +(x5[1], 1), x1[1], x4[1])∧(UIncreasing(7978_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(7978_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(7978_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(7978_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(7978_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 7978_0_POSSIBLEVALUES_GE(x1, x3, x5, x6, x4) → COND_7978_0_POSSIBLEVALUES_GE1(&&(&&(>(x6, -1), <(x6, x4)), <(x5, 9)), x1, x3, x5, x6, x4) the following chains were created:
  • We consider the chain 7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2]), COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_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]7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥NonInfC∧7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥COND_7978_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_7978_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])=TRUE7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥NonInfC∧7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥COND_7978_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_7978_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_7978_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_7978_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_7978_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_7978_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_7978_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] + x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_7978_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)


    (27)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_7978_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)







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

    (28)    (COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3])≥NonInfC∧COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3])≥7978_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])∧(UIncreasing(7978_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(7978_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(7978_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(7978_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(7978_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.
  • 7978_0_POSSIBLEVALUES_GE(x1, x3, x5, x6, x4) → COND_7978_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_7978_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_7978_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_7978_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_7978_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_7978_0_POSSIBLEVALUES_GE(TRUE, x1, x3, x5, x6, x4) → 7978_0_POSSIBLEVALUES_GE(x1, x3, +(x5, 1), x1, x4)
    • ((UIncreasing(7978_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)

  • 7978_0_POSSIBLEVALUES_GE(x1, x3, x5, x6, x4) → COND_7978_0_POSSIBLEVALUES_GE1(&&(&&(>(x6, -1), <(x6, x4)), <(x5, 9)), x1, x3, x5, x6, x4)
    • ([8] + x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_7978_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)
    • ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_7978_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)

  • COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1, x3, x5, x6, x4) → 7978_0_POSSIBLEVALUES_GE(x1, x3, x5, +(x6, 1), x4)
    • ((UIncreasing(7978_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(7978_0_POSSIBLEVALUES_GE(x1, x2, x3, x4, x5)) = [-1] + [-1]x3 + x2   
POL(COND_7978_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_7978_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_7978_0_POSSIBLEVALUES_GE(TRUE, x1[1], x3[1], x5[1], x6[1], x4[1]) → 7978_0_POSSIBLEVALUES_GE(x1[1], x3[1], +(x5[1], 1), x1[1], x4[1])

The following pairs are in Pbound:

7978_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0]) → COND_7978_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:

7978_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0]) → COND_7978_0_POSSIBLEVALUES_GE(&&(>=(x6[0], x4[0]), >(x3[0], +(x5[0], 1))), x1[0], x3[0], x5[0], x6[0], x4[0])
7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])
COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_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): 7978_0_POSSIBLEVALUES_GE(x1[0], x3[0], x5[0], x6[0], x4[0]) → COND_7978_0_POSSIBLEVALUES_GE(x6[0] >= x4[0] && x3[0] > x5[0] + 1, x1[0], x3[0], x5[0], x6[0], x4[0])
(2): 7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_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_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_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_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], x6[3] + 1, x4[3])
(2): 7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_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@2bb39071 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_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3]) the following chains were created:
  • We consider the chain COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3]) which results in the following constraint:

    (1)    (COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3])≥NonInfC∧COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3])≥7978_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])∧(UIncreasing(7978_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(7978_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(7978_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(7978_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(7978_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 7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_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 7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2]), COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_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]7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥NonInfC∧7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥COND_7978_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_7978_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])=TRUE7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥NonInfC∧7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥COND_7978_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_7978_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_7978_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_7978_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_7978_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_7978_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] + x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_7978_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)


    (13)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_7978_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)







To summarize, we get the following constraints P for the following pairs.
  • COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])
    • ((UIncreasing(7978_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)

  • 7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])
    • ([8] + x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_7978_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)
    • ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_7978_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)




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_7978_0_POSSIBLEVALUES_GE1(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + [-1]x4 + [-1]x5   
POL(7978_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_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])

The following pairs are in Pbound:

7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_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:

7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_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.

(14) Complex Obligation (AND)

(15) 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): 7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_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.

(16) IDependencyGraphProof (EQUIVALENT transformation)

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

(17) TRUE

(18) 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_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], x6[3] + 1, x4[3])


The set Q is empty.

(19) IDependencyGraphProof (EQUIVALENT transformation)

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

(20) TRUE

(21) Obligation:

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


The following domains are used:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_7978_0_POSSIBLEVALUES_GE(TRUE, x1[1], x3[1], x5[1], x6[1], x4[1]) → 7978_0_POSSIBLEVALUES_GE(x1[1], x3[1], x5[1] + 1, x1[1], x4[1])
(2): 7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_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_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_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.

(22) IDependencyGraphProof (EQUIVALENT transformation)

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

(23) Obligation:

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


The following domains are used:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(3): COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], x6[3] + 1, x4[3])
(2): 7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_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.

(24) 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@2bb39071 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_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3]) the following chains were created:
  • We consider the chain COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3]) which results in the following constraint:

    (1)    (COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3])≥NonInfC∧COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3])≥7978_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])∧(UIncreasing(7978_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(7978_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(7978_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(7978_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(7978_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 7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_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 7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2]), COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_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]7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥NonInfC∧7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥COND_7978_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_7978_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])=TRUE7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥NonInfC∧7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2])≥COND_7978_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_7978_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_7978_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_7978_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_7978_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_7978_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] + x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_7978_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)


    (13)    ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_7978_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)







To summarize, we get the following constraints P for the following pairs.
  • COND_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])
    • ((UIncreasing(7978_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)

  • 7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_0_POSSIBLEVALUES_GE1(&&(&&(>(x6[2], -1), <(x6[2], x4[2])), <(x5[2], 9)), x1[2], x3[2], x5[2], x6[2], x4[2])
    • ([8] + x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_7978_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)
    • ([8] + [-1]x5[2] ≥ 0∧x6[2] ≥ 0∧x4[2] ≥ 0∧x5[2] ≥ 0 ⇒ (UIncreasing(COND_7978_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)




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_7978_0_POSSIBLEVALUES_GE1(x1, x2, x3, x4, x5, x6)) = x6 + [-1]x4 + [-1]x5   
POL(7978_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>:

7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_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:

7978_0_POSSIBLEVALUES_GE(x1[2], x3[2], x5[2], x6[2], x4[2]) → COND_7978_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_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_0_POSSIBLEVALUES_GE(x1[3], x3[3], x5[3], +(x6[3], 1), x4[3])

There are no usable rules.

(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_7978_0_POSSIBLEVALUES_GE1(TRUE, x1[3], x3[3], x5[3], x6[3], x4[3]) → 7978_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:
7299_0_possibleValues_ConstantStackPush(EOS(STATIC_7299), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1245, java.lang.Object(ARRAY(matching2)), i1246, i1246) → 7300_0_possibleValues_GE(EOS(STATIC_7300), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1245, java.lang.Object(ARRAY(9)), i1246, i1246, 9) | &&(=(matching1, 9), =(matching2, 9))
7300_0_possibleValues_GE(EOS(STATIC_7300), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1245, java.lang.Object(ARRAY(matching2)), i1251, i1251, matching3) → 7301_0_possibleValues_GE(EOS(STATIC_7301), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1245, java.lang.Object(ARRAY(9)), i1251, i1251, 9) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7301_0_possibleValues_GE(EOS(STATIC_7301), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1245, java.lang.Object(ARRAY(matching2)), i1251, i1251, matching3) → 7303_0_possibleValues_Load(EOS(STATIC_7303), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1245, java.lang.Object(ARRAY(9)), i1251) | &&(&&(&&(<(i1251, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
7303_0_possibleValues_Load(EOS(STATIC_7303), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1245, java.lang.Object(ARRAY(matching2)), i1251) → 7306_0_possibleValues_FieldAccess(EOS(STATIC_7306), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1245, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 9))
7306_0_possibleValues_FieldAccess(EOS(STATIC_7306), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1245, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 7308_0_possibleValues_Load(EOS(STATIC_7308), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1245, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7308_0_possibleValues_Load(EOS(STATIC_7308), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1245, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3))) → 7311_0_possibleValues_ArrayAccess(EOS(STATIC_7311), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1245, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9)), i1251) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7311_0_possibleValues_ArrayAccess(EOS(STATIC_7311), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1245, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3)), i1251) → 7313_0_possibleValues_Load(EOS(STATIC_7313), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1245, java.lang.Object(ARRAY(9)), i1251, o3382) | &&(&&(&&(<(i1251, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
7313_0_possibleValues_Load(EOS(STATIC_7313), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1245, java.lang.Object(ARRAY(matching2)), i1251, o3382) → 7316_0_possibleValues_ArrayAccess(EOS(STATIC_7316), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1245, java.lang.Object(ARRAY(9)), i1251, o3382, i1245) | &&(=(matching1, 9), =(matching2, 9))
7316_0_possibleValues_ArrayAccess(EOS(STATIC_7316), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1245, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(o3384put), i1245) → 7318_0_possibleValues_ArrayAccess(EOS(STATIC_7318), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1245, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(o3384put), i1245) | &&(=(matching1, 9), =(matching2, 9))
7318_0_possibleValues_ArrayAccess(EOS(STATIC_7318), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1245, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(i1254)), i1245) → 7322_0_possibleValues_ArrayAccess(EOS(STATIC_7322), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1245, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(i1254)), i1245) | &&(&&(>=(i1254, 0), =(matching1, 9)), =(matching2, 9))
7322_0_possibleValues_ArrayAccess(EOS(STATIC_7322), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(i1254)), i1256) → 7326_0_possibleValues_ArrayAccess(EOS(STATIC_7326), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(i1254)), i1256) | &&(=(matching1, 9), =(matching2, 9))
7326_0_possibleValues_ArrayAccess(EOS(STATIC_7326), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(i1254)), i1256) → 7331_0_possibleValues_ArrayAccess(EOS(STATIC_7331), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(i1254)), i1256) | &&(=(matching1, 9), =(matching2, 9))
7331_0_possibleValues_ArrayAccess(EOS(STATIC_7331), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(i1254)), i1256) → 7335_0_possibleValues_EQ(EOS(STATIC_7335), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, i1257) | &&(&&(<(i1256, i1254), =(matching1, 9)), =(matching2, 9))
7335_0_possibleValues_EQ(EOS(STATIC_7335), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, i1271) → 7343_0_possibleValues_EQ(EOS(STATIC_7343), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, i1271) | &&(=(matching1, 9), =(matching2, 9))
7335_0_possibleValues_EQ(EOS(STATIC_7335), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, matching3) → 7344_0_possibleValues_EQ(EOS(STATIC_7344), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
7343_0_possibleValues_EQ(EOS(STATIC_7343), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, i1271) → 7349_0_possibleValues_Load(EOS(STATIC_7349), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251) | &&(&&(!(=(i1271, 0)), =(matching1, 9)), =(matching2, 9))
7349_0_possibleValues_Load(EOS(STATIC_7349), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251) → 7355_0_possibleValues_Load(EOS(STATIC_7355), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
7355_0_possibleValues_Load(EOS(STATIC_7355), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3))) → 7365_0_possibleValues_FieldAccess(EOS(STATIC_7365), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7365_0_possibleValues_FieldAccess(EOS(STATIC_7365), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching4))))) → 7371_0_possibleValues_Load(EOS(STATIC_7371), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(9))) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
7371_0_possibleValues_Load(EOS(STATIC_7371), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(matching4))) → 7376_0_possibleValues_ArrayAccess(EOS(STATIC_7376), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(9)), i1251) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
7376_0_possibleValues_ArrayAccess(EOS(STATIC_7376), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(matching4)), i1251) → 7385_0_possibleValues_Load(EOS(STATIC_7385), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9)), o3469) | &&(&&(&&(&&(<(i1251, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
7385_0_possibleValues_Load(EOS(STATIC_7385), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3)), o3469) → 7390_0_possibleValues_ArrayAccess(EOS(STATIC_7390), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9)), o3469, i1256) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7390_0_possibleValues_ArrayAccess(EOS(STATIC_7390), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3)), java.lang.Object(o3481put), i1256) → 7394_0_possibleValues_ArrayAccess(EOS(STATIC_7394), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9)), java.lang.Object(o3481put), i1256) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7394_0_possibleValues_ArrayAccess(EOS(STATIC_7394), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(i1370)), i1256) → 7406_0_possibleValues_ArrayAccess(EOS(STATIC_7406), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(i1370)), i1256) | &&(&&(&&(>=(i1370, 0), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
7406_0_possibleValues_ArrayAccess(EOS(STATIC_7406), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(i1370)), i1256) → 7415_0_possibleValues_ArrayAccess(EOS(STATIC_7415), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9)), java.lang.Object(ARRAY(i1370)), i1256) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7415_0_possibleValues_ArrayAccess(EOS(STATIC_7415), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3)), java.lang.Object(ARRAY(i1370)), i1256) → 7426_0_possibleValues_ConstantStackPush(EOS(STATIC_7426), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9)), i1411) | &&(&&(&&(<(i1256, i1370), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
7426_0_possibleValues_ConstantStackPush(EOS(STATIC_7426), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3)), i1411) → 7437_0_possibleValues_IntArithmetic(EOS(STATIC_7437), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9)), i1411, 1) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7437_0_possibleValues_IntArithmetic(EOS(STATIC_7437), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3)), i1411, matching4) → 7448_0_possibleValues_ConstantStackPush(EOS(STATIC_7448), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9)), -(i1411, 1)) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 1))
7448_0_possibleValues_ConstantStackPush(EOS(STATIC_7448), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3)), i1462) → 7461_0_possibleValues_ArrayAccess(EOS(STATIC_7461), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9)), i1462, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
7461_0_possibleValues_ArrayAccess(EOS(STATIC_7461), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3)), i1536, matching4) → 7474_0_possibleValues_ArrayAccess(EOS(STATIC_7474), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9)), i1536, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
7474_0_possibleValues_ArrayAccess(EOS(STATIC_7474), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3)), i1577, matching4) → 7489_0_possibleValues_ArrayAccess(EOS(STATIC_7489), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251, java.lang.Object(ARRAY(9)), i1577, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
7489_0_possibleValues_ArrayAccess(EOS(STATIC_7489), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, java.lang.Object(ARRAY(matching3)), i1577, matching4) → 7504_0_possibleValues_Inc(EOS(STATIC_7504), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251) | &&(&&(&&(&&(<(i1577, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
7504_0_possibleValues_Inc(EOS(STATIC_7504), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251) → 7521_0_possibleValues_JMP(EOS(STATIC_7521), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), +(i1251, 1)) | &&(&&(>=(i1251, 0), =(matching1, 9)), =(matching2, 9))
7521_0_possibleValues_JMP(EOS(STATIC_7521), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1658) → 7535_0_possibleValues_Load(EOS(STATIC_7535), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1658) | &&(=(matching1, 9), =(matching2, 9))
7535_0_possibleValues_Load(EOS(STATIC_7535), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1658) → 7297_0_possibleValues_Load(EOS(STATIC_7297), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1658) | &&(=(matching1, 9), =(matching2, 9))
7297_0_possibleValues_Load(EOS(STATIC_7297), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1245, java.lang.Object(ARRAY(matching2)), i1246) → 7299_0_possibleValues_ConstantStackPush(EOS(STATIC_7299), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1245, java.lang.Object(ARRAY(9)), i1246, i1246) | &&(=(matching1, 9), =(matching2, 9))
7344_0_possibleValues_EQ(EOS(STATIC_7344), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251, matching3) → 7350_0_possibleValues_Inc(EOS(STATIC_7350), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
7350_0_possibleValues_Inc(EOS(STATIC_7350), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i1256, java.lang.Object(ARRAY(matching2)), i1251) → 7504_0_possibleValues_Inc(EOS(STATIC_7504), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1256, java.lang.Object(ARRAY(9)), i1251) | &&(=(matching1, 9), =(matching2, 9))
R rules:

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


P rules:
7299_0_possibleValues_ConstantStackPush(EOS(STATIC_7299), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), x1, java.lang.Object(ARRAY(9)), x3, x3) → 7299_0_possibleValues_ConstantStackPush(EOS(STATIC_7299), 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:



7299_0_possibleValues_ConstantStackPush(x1, x2, x3, x4, x5, x6) → 7299_0_possibleValues_ConstantStackPush(x3, x5, x6)
ARRAY(x1) → ARRAY
Sudoku(x1, x2) → Sudoku
EOS(x1) → EOS
Cond_7299_0_possibleValues_ConstantStackPush(x1, x2, x3, x4, x5, x6, x7) → Cond_7299_0_possibleValues_ConstantStackPush(x1, x4, x6, x7)

Filtered duplicate args:



7299_0_possibleValues_ConstantStackPush(x1, x2, x3) → 7299_0_possibleValues_ConstantStackPush(x1, x3)
Cond_7299_0_possibleValues_ConstantStackPush(x1, x2, x3, x4) → Cond_7299_0_possibleValues_ConstantStackPush(x1, x2, x4)

Filtered unneeded arguments:



Cond_7299_0_possibleValues_ConstantStackPush(x1, x2, x3) → Cond_7299_0_possibleValues_ConstantStackPush(x1, x3)
7299_0_possibleValues_ConstantStackPush(x1, x2) → 7299_0_possibleValues_ConstantStackPush(x2)

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


P rules:
7299_0_possibleValues_ConstantStackPush(x3) → 7299_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:
7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3) → COND_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3, -1), <(x3, 9)), x3)
COND_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3) → 7299_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): 7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0]) → COND_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0] > -1 && x3[0] < 9, x3[0])
(1): COND_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3[1]) → 7299_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@2bb39071 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 7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3) → COND_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3, -1), <(x3, 9)), x3) the following chains were created:
  • We consider the chain 7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0]) → COND_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3[0], -1), <(x3[0], 9)), x3[0]), COND_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3[1]) → 7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3[1], 1)) which results in the following constraint:

    (1)    (&&(>(x3[0], -1), <(x3[0], 9))=TRUEx3[0]=x3[1]7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0])≥NonInfC∧7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0])≥COND_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3[0], -1), <(x3[0], 9)), x3[0])∧(UIncreasing(COND_7299_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)=TRUE7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0])≥NonInfC∧7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0])≥COND_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3[0], -1), <(x3[0], 9)), x3[0])∧(UIncreasing(COND_7299_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_7299_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_7299_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_7299_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_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3) → 7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3, 1)) the following chains were created:
  • We consider the chain COND_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3[1]) → 7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3[1], 1)) which results in the following constraint:

    (6)    (COND_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3[1])≥NonInfC∧COND_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3[1])≥7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3[1], 1))∧(UIncreasing(7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3[1], 1))), ≥))



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

    (7)    ((UIncreasing(7299_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(7299_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(7299_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(7299_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.
  • 7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3) → COND_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3, -1), <(x3, 9)), x3)
    • (x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0 ⇒ (UIncreasing(COND_7299_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_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3) → 7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3, 1))
    • ((UIncreasing(7299_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(7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1)) = [-1] + [-1]x1   
POL(COND_7299_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_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3[1]) → 7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x3[1], 1))

The following pairs are in Pbound:

7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0]) → COND_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x3[0], -1), <(x3[0], 9)), x3[0])

The following pairs are in P:

7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0]) → COND_7299_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): 7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0]) → COND_7299_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_7299_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x3[1]) → 7299_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:
6576_0_possibleValues_ConstantStackPush(EOS(STATIC_6576), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, java.lang.Object(ARRAY(matching2)), i970, i970) → 6577_0_possibleValues_GE(EOS(STATIC_6577), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, java.lang.Object(ARRAY(9)), i970, i970, 9) | &&(=(matching1, 9), =(matching2, 9))
6577_0_possibleValues_GE(EOS(STATIC_6577), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, java.lang.Object(ARRAY(matching2)), i975, i975, matching3) → 6578_0_possibleValues_GE(EOS(STATIC_6578), 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))
6578_0_possibleValues_GE(EOS(STATIC_6578), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, java.lang.Object(ARRAY(matching2)), i975, i975, matching3) → 6580_0_possibleValues_Load(EOS(STATIC_6580), 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))
6580_0_possibleValues_Load(EOS(STATIC_6580), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, java.lang.Object(ARRAY(matching2)), i975) → 6583_0_possibleValues_FieldAccess(EOS(STATIC_6583), 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))
6583_0_possibleValues_FieldAccess(EOS(STATIC_6583), 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))))) → 6585_0_possibleValues_Load(EOS(STATIC_6585), 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))
6585_0_possibleValues_Load(EOS(STATIC_6585), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3))) → 6588_0_possibleValues_ArrayAccess(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)), i969) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6588_0_possibleValues_ArrayAccess(EOS(STATIC_6588), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i979, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i979) → 6591_0_possibleValues_ArrayAccess(EOS(STATIC_6591), 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))
6591_0_possibleValues_ArrayAccess(EOS(STATIC_6591), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i980) → 6595_0_possibleValues_ArrayAccess(EOS(STATIC_6595), 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))
6595_0_possibleValues_ArrayAccess(EOS(STATIC_6595), 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_Load(EOS(STATIC_6598), 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))
6598_0_possibleValues_Load(EOS(STATIC_6598), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, o2259) → 6603_0_possibleValues_ArrayAccess(EOS(STATIC_6603), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, o2259, i975) | &&(=(matching1, 9), =(matching2, 9))
6603_0_possibleValues_ArrayAccess(EOS(STATIC_6603), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(o2262put), i975) → 6607_0_possibleValues_ArrayAccess(EOS(STATIC_6607), 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))
6607_0_possibleValues_ArrayAccess(EOS(STATIC_6607), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6612_0_possibleValues_ArrayAccess(EOS(STATIC_6612), 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))
6612_0_possibleValues_ArrayAccess(EOS(STATIC_6612), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6617_0_possibleValues_ArrayAccess(EOS(STATIC_6617), 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))
6617_0_possibleValues_ArrayAccess(EOS(STATIC_6617), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6624_0_possibleValues_EQ(EOS(STATIC_6624), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, i983) | &&(&&(<(i975, i982), =(matching1, 9)), =(matching2, 9))
6624_0_possibleValues_EQ(EOS(STATIC_6624), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, i985) → 6630_0_possibleValues_EQ(EOS(STATIC_6630), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, i985) | &&(=(matching1, 9), =(matching2, 9))
6624_0_possibleValues_EQ(EOS(STATIC_6624), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, matching3) → 6631_0_possibleValues_EQ(EOS(STATIC_6631), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6630_0_possibleValues_EQ(EOS(STATIC_6630), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, i985) → 6639_0_possibleValues_Load(EOS(STATIC_6639), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975) | &&(&&(!(=(i985, 0)), =(matching1, 9)), =(matching2, 9))
6639_0_possibleValues_Load(EOS(STATIC_6639), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975) → 6649_0_possibleValues_Load(EOS(STATIC_6649), 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))
6649_0_possibleValues_Load(EOS(STATIC_6649), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3))) → 6658_0_possibleValues_FieldAccess(EOS(STATIC_6658), 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))
6658_0_possibleValues_FieldAccess(EOS(STATIC_6658), 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))))) → 6671_0_possibleValues_Load(EOS(STATIC_6671), 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))
6671_0_possibleValues_Load(EOS(STATIC_6671), 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))) → 6680_0_possibleValues_ArrayAccess(EOS(STATIC_6680), 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))
6680_0_possibleValues_ArrayAccess(EOS(STATIC_6680), 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) → 6690_0_possibleValues_Load(EOS(STATIC_6690), 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))
6690_0_possibleValues_Load(EOS(STATIC_6690), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), o2293) → 6701_0_possibleValues_ArrayAccess(EOS(STATIC_6701), 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))
6701_0_possibleValues_ArrayAccess(EOS(STATIC_6701), 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) → 6715_0_possibleValues_ArrayAccess(EOS(STATIC_6715), 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))
6715_0_possibleValues_ArrayAccess(EOS(STATIC_6715), 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) → 6722_0_possibleValues_ArrayAccess(EOS(STATIC_6722), 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))
6722_0_possibleValues_ArrayAccess(EOS(STATIC_6722), 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) → 6730_0_possibleValues_ArrayAccess(EOS(STATIC_6730), 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))
6730_0_possibleValues_ArrayAccess(EOS(STATIC_6730), 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) → 6742_0_possibleValues_ConstantStackPush(EOS(STATIC_6742), 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))
6742_0_possibleValues_ConstantStackPush(EOS(STATIC_6742), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i1014) → 6751_0_possibleValues_IntArithmetic(EOS(STATIC_6751), 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))
6751_0_possibleValues_IntArithmetic(EOS(STATIC_6751), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i1014, matching4) → 6759_0_possibleValues_ConstantStackPush(EOS(STATIC_6759), 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))
6759_0_possibleValues_ConstantStackPush(EOS(STATIC_6759), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i1015) → 6771_0_possibleValues_ArrayAccess(EOS(STATIC_6771), 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))
6771_0_possibleValues_ArrayAccess(EOS(STATIC_6771), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i1019, matching4) → 6782_0_possibleValues_ArrayAccess(EOS(STATIC_6782), 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))
6782_0_possibleValues_ArrayAccess(EOS(STATIC_6782), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i1020, matching4) → 6795_0_possibleValues_ArrayAccess(EOS(STATIC_6795), 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))
6795_0_possibleValues_ArrayAccess(EOS(STATIC_6795), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i1020, matching4) → 6810_0_possibleValues_Inc(EOS(STATIC_6810), 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))
6810_0_possibleValues_Inc(EOS(STATIC_6810), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975) → 6826_0_possibleValues_JMP(EOS(STATIC_6826), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), +(i975, 1)) | &&(&&(>=(i975, 0), =(matching1, 9)), =(matching2, 9))
6826_0_possibleValues_JMP(EOS(STATIC_6826), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i1023) → 6842_0_possibleValues_Load(EOS(STATIC_6842), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i1023) | &&(=(matching1, 9), =(matching2, 9))
6842_0_possibleValues_Load(EOS(STATIC_6842), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i1023) → 6574_0_possibleValues_Load(EOS(STATIC_6574), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i1023) | &&(=(matching1, 9), =(matching2, 9))
6574_0_possibleValues_Load(EOS(STATIC_6574), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, java.lang.Object(ARRAY(matching2)), i970) → 6576_0_possibleValues_ConstantStackPush(EOS(STATIC_6576), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, java.lang.Object(ARRAY(9)), i970, i970) | &&(=(matching1, 9), =(matching2, 9))
6631_0_possibleValues_EQ(EOS(STATIC_6631), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975, matching3) → 6640_0_possibleValues_Inc(EOS(STATIC_6640), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, java.lang.Object(ARRAY(9)), i975) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6640_0_possibleValues_Inc(EOS(STATIC_6640), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, java.lang.Object(ARRAY(matching2)), i975) → 6810_0_possibleValues_Inc(EOS(STATIC_6810), 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:
6576_0_possibleValues_ConstantStackPush(EOS(STATIC_6576), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), x1, java.lang.Object(ARRAY(9)), x3, x3) → 6576_0_possibleValues_ConstantStackPush(EOS(STATIC_6576), 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:



6576_0_possibleValues_ConstantStackPush(x1, x2, x3, x4, x5, x6) → 6576_0_possibleValues_ConstantStackPush(x3, x5, x6)
ARRAY(x1) → ARRAY
Sudoku(x1, x2) → Sudoku
EOS(x1) → EOS
Cond_6576_0_possibleValues_ConstantStackPush(x1, x2, x3, x4, x5, x6, x7) → Cond_6576_0_possibleValues_ConstantStackPush(x1, x4, x6, x7)

Filtered duplicate args:



6576_0_possibleValues_ConstantStackPush(x1, x2, x3) → 6576_0_possibleValues_ConstantStackPush(x1, x3)
Cond_6576_0_possibleValues_ConstantStackPush(x1, x2, x3, x4) → Cond_6576_0_possibleValues_ConstantStackPush(x1, x2, x4)

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


P rules:
6576_0_possibleValues_ConstantStackPush(x1, x3) → 6576_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:
6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1, x3) → COND_6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3, -1), <(x3, 9)), <(x1, 9)), x1, x3)
COND_6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1, x3) → 6576_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): 6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0]) → COND_6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x3[0] > -1 && x3[0] < 9 && x1[0] < 9, x1[0], x3[0])
(1): COND_6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1], x3[1]) → 6576_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@2bb39071 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 6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1, x3) → COND_6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3, -1), <(x3, 9)), <(x1, 9)), x1, x3) the following chains were created:
  • We consider the chain 6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0]) → COND_6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0]), COND_6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1], x3[1]) → 6576_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]6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0])≥NonInfC∧6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0])≥COND_6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0])∧(UIncreasing(COND_6576_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)=TRUE6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0])≥NonInfC∧6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0])≥COND_6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3[0], -1), <(x3[0], 9)), <(x1[0], 9)), x1[0], x3[0])∧(UIncreasing(COND_6576_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_6576_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_6576_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_6576_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] + x1[0] ≥ 0∧x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_6576_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)


    (7)    ([8] + [-1]x1[0] ≥ 0∧x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_6576_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)







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

    (8)    (COND_6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1], x3[1])≥NonInfC∧COND_6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1], x3[1])≥6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1], +(x3[1], 1))∧(UIncreasing(6576_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(6576_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(6576_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(6576_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(6576_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.
  • 6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1, x3) → COND_6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(&&(>(x3, -1), <(x3, 9)), <(x1, 9)), x1, x3)
    • ([8] + x1[0] ≥ 0∧x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_6576_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)
    • ([8] + [-1]x1[0] ≥ 0∧x3[0] ≥ 0∧[8] + [-1]x3[0] ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(COND_6576_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)

  • COND_6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1, x3) → 6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1, +(x3, 1))
    • ((UIncreasing(6576_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(6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(COND_6576_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_6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1], x3[1]) → 6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[1], +(x3[1], 1))

The following pairs are in Pbound:

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

The following pairs are in P:

6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0]) → COND_6576_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): 6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0], x3[0]) → COND_6576_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_6576_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1], x3[1]) → 6576_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:
6307_0_possibleValues_ConstantStackPush(EOS(STATIC_6307), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i903, i903) → 6308_0_possibleValues_GE(EOS(STATIC_6308), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i903, i903, 9) | =(matching1, 9)
6308_0_possibleValues_GE(EOS(STATIC_6308), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i906, i906, matching2) → 6310_0_possibleValues_GE(EOS(STATIC_6310), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i906, i906, 9) | &&(=(matching1, 9), =(matching2, 9))
6310_0_possibleValues_GE(EOS(STATIC_6310), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i906, i906, matching2) → 6312_0_possibleValues_Load(EOS(STATIC_6312), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i906) | &&(&&(<(i906, 9), =(matching1, 9)), =(matching2, 9))
6312_0_possibleValues_Load(EOS(STATIC_6312), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i906) → 6314_0_possibleValues_Load(EOS(STATIC_6314), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i906, java.lang.Object(ARRAY(9))) | =(matching1, 9)
6314_0_possibleValues_Load(EOS(STATIC_6314), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i906, java.lang.Object(ARRAY(matching2))) → 6317_0_possibleValues_ConstantStackPush(EOS(STATIC_6317), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i906, java.lang.Object(ARRAY(9)), i906) | &&(=(matching1, 9), =(matching2, 9))
6317_0_possibleValues_ConstantStackPush(EOS(STATIC_6317), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i906, java.lang.Object(ARRAY(matching2)), i906) → 6319_0_possibleValues_ArrayAccess(EOS(STATIC_6319), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i906, java.lang.Object(ARRAY(9)), i906) | &&(=(matching1, 9), =(matching2, 9))
6319_0_possibleValues_ArrayAccess(EOS(STATIC_6319), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i906, java.lang.Object(ARRAY(matching2)), i906) → 6322_0_possibleValues_Inc(EOS(STATIC_6322), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i906) | &&(&&(<(i906, 9), =(matching1, 9)), =(matching2, 9))
6322_0_possibleValues_Inc(EOS(STATIC_6322), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i906) → 6325_0_possibleValues_JMP(EOS(STATIC_6325), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), +(i906, 1)) | &&(>=(i906, 0), =(matching1, 9))
6325_0_possibleValues_JMP(EOS(STATIC_6325), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i907) → 6328_0_possibleValues_Load(EOS(STATIC_6328), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i907) | =(matching1, 9)
6328_0_possibleValues_Load(EOS(STATIC_6328), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i907) → 6306_0_possibleValues_Load(EOS(STATIC_6306), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i907) | =(matching1, 9)
6306_0_possibleValues_Load(EOS(STATIC_6306), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(matching1)), i903) → 6307_0_possibleValues_ConstantStackPush(EOS(STATIC_6307), java.lang.Object(Sudoku(EOC)), java.lang.Object(ARRAY(9)), i903, i903) | =(matching1, 9)
R rules:

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


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

Filtered ground terms:



6307_0_possibleValues_ConstantStackPush(x1, x2, x3, x4, x5) → 6307_0_possibleValues_ConstantStackPush(x4, x5)
ARRAY(x1) → ARRAY
Sudoku(x1) → Sudoku
EOS(x1) → EOS
Cond_6307_0_possibleValues_ConstantStackPush(x1, x2, x3, x4, x5, x6) → Cond_6307_0_possibleValues_ConstantStackPush(x1, x5, x6)

Filtered duplicate args:



6307_0_possibleValues_ConstantStackPush(x1, x2) → 6307_0_possibleValues_ConstantStackPush(x2)
Cond_6307_0_possibleValues_ConstantStackPush(x1, x2, x3) → Cond_6307_0_possibleValues_ConstantStackPush(x1, x3)

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


P rules:
6307_0_possibleValues_ConstantStackPush(x1) → 6307_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:
6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1) → COND_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1, -1), <(x1, 9)), x1)
COND_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1) → 6307_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): 6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0]) → COND_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0] > -1 && x1[0] < 9, x1[0])
(1): COND_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1]) → 6307_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@2bb39071 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 6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1) → COND_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1, -1), <(x1, 9)), x1) the following chains were created:
  • We consider the chain 6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0]) → COND_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1[0], -1), <(x1[0], 9)), x1[0]), COND_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1]) → 6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1[1], 1)) which results in the following constraint:

    (1)    (&&(>(x1[0], -1), <(x1[0], 9))=TRUEx1[0]=x1[1]6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0])≥NonInfC∧6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0])≥COND_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1[0], -1), <(x1[0], 9)), x1[0])∧(UIncreasing(COND_6307_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)=TRUE6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0])≥NonInfC∧6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0])≥COND_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1[0], -1), <(x1[0], 9)), x1[0])∧(UIncreasing(COND_6307_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_6307_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_6307_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_6307_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_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1) → 6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1, 1)) the following chains were created:
  • We consider the chain COND_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1]) → 6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1[1], 1)) which results in the following constraint:

    (6)    (COND_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1])≥NonInfC∧COND_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1])≥6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1[1], 1))∧(UIncreasing(6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1[1], 1))), ≥))



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

    (7)    ((UIncreasing(6307_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(6307_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(6307_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(6307_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.
  • 6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1) → COND_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1, -1), <(x1, 9)), x1)
    • (x1[0] ≥ 0∧[8] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_6307_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_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1) → 6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1, 1))
    • ((UIncreasing(6307_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(6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1)) = [-1] + [-1]x1   
POL(COND_6307_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_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1]) → 6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(+(x1[1], 1))

The following pairs are in Pbound:

6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0]) → COND_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(&&(>(x1[0], -1), <(x1[0], 9)), x1[0])

The following pairs are in P:

6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0]) → COND_6307_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): 6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(x1[0]) → COND_6307_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_6307_0_POSSIBLEVALUES_CONSTANTSTACKPUSH(TRUE, x1[1]) → 6307_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:
8305_0_resolve_aux_ConstantStackPush(EOS(STATIC_8305), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i2934, i2934) → 8324_0_resolve_aux_GE(EOS(STATIC_8324), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i2934, i2934, 9) | &&(=(matching1, 9), =(matching2, 9))
8324_0_resolve_aux_GE(EOS(STATIC_8324), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3168, i3168, matching3) → 8347_0_resolve_aux_GE(EOS(STATIC_8347), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3168, i3168, 9) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8347_0_resolve_aux_GE(EOS(STATIC_8347), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3168, i3168, matching3) → 8374_0_resolve_aux_Load(EOS(STATIC_8374), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3168) | &&(&&(&&(<(i3168, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8374_0_resolve_aux_Load(EOS(STATIC_8374), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3168) → 8397_0_resolve_aux_Load(EOS(STATIC_8397), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3168, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
8397_0_resolve_aux_Load(EOS(STATIC_8397), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3168, java.lang.Object(ARRAY(matching3))) → 8422_0_resolve_aux_ArrayAccess(EOS(STATIC_8422), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3168, java.lang.Object(ARRAY(9)), i3168) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8422_0_resolve_aux_ArrayAccess(EOS(STATIC_8422), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3168, java.lang.Object(ARRAY(matching3)), i3168) → 8456_0_resolve_aux_EQ(EOS(STATIC_8456), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3168, i3549) | &&(&&(&&(<(i3168, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8456_0_resolve_aux_EQ(EOS(STATIC_8456), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3168, matching3) → 8486_0_resolve_aux_EQ(EOS(STATIC_8486), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3168, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
8486_0_resolve_aux_EQ(EOS(STATIC_8486), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3168, matching3) → 8520_0_resolve_aux_Inc(EOS(STATIC_8520), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3168) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
8520_0_resolve_aux_Inc(EOS(STATIC_8520), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3168) → 8558_0_resolve_aux_JMP(EOS(STATIC_8558), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), +(i3168, 1)) | &&(&&(>=(i3168, 0), =(matching1, 9)), =(matching2, 9))
8558_0_resolve_aux_JMP(EOS(STATIC_8558), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3933) → 8590_0_resolve_aux_Load(EOS(STATIC_8590), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3933) | &&(=(matching1, 9), =(matching2, 9))
8590_0_resolve_aux_Load(EOS(STATIC_8590), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i3933) → 8281_0_resolve_aux_Load(EOS(STATIC_8281), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i3933) | &&(=(matching1, 9), =(matching2, 9))
8281_0_resolve_aux_Load(EOS(STATIC_8281), java.lang.Object(Sudoku(EOC)), matching1, java.lang.Object(ARRAY(matching2)), i2934) → 8305_0_resolve_aux_ConstantStackPush(EOS(STATIC_8305), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), i2934, i2934) | &&(=(matching1, 9), =(matching2, 9))
R rules:

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


P rules:
8305_0_resolve_aux_ConstantStackPush(EOS(STATIC_8305), java.lang.Object(Sudoku(EOC)), 9, java.lang.Object(ARRAY(9)), x2, x2) → 8305_0_resolve_aux_ConstantStackPush(EOS(STATIC_8305), 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:



8305_0_resolve_aux_ConstantStackPush(x1, x2, x3, x4, x5, x6) → 8305_0_resolve_aux_ConstantStackPush(x5, x6)
ARRAY(x1) → ARRAY
Sudoku(x1) → Sudoku
EOS(x1) → EOS
Cond_8305_0_resolve_aux_ConstantStackPush(x1, x2, x3, x4, x5, x6, x7) → Cond_8305_0_resolve_aux_ConstantStackPush(x1, x6, x7)

Filtered duplicate args:



8305_0_resolve_aux_ConstantStackPush(x1, x2) → 8305_0_resolve_aux_ConstantStackPush(x2)
Cond_8305_0_resolve_aux_ConstantStackPush(x1, x2, x3) → Cond_8305_0_resolve_aux_ConstantStackPush(x1, x3)

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


P rules:
8305_0_resolve_aux_ConstantStackPush(x2) → 8305_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:
8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2) → COND_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2, -1), <(x2, 9)), x2)
COND_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2) → 8305_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): 8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0]) → COND_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0] > -1 && x2[0] < 9, x2[0])
(1): COND_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2[1]) → 8305_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@2bb39071 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 8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2) → COND_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2, -1), <(x2, 9)), x2) the following chains were created:
  • We consider the chain 8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0]) → COND_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2[0], -1), <(x2[0], 9)), x2[0]), COND_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2[1]) → 8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2[1], 1)) which results in the following constraint:

    (1)    (&&(>(x2[0], -1), <(x2[0], 9))=TRUEx2[0]=x2[1]8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0])≥NonInfC∧8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0])≥COND_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2[0], -1), <(x2[0], 9)), x2[0])∧(UIncreasing(COND_8305_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)=TRUE8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0])≥NonInfC∧8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0])≥COND_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2[0], -1), <(x2[0], 9)), x2[0])∧(UIncreasing(COND_8305_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_8305_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_8305_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_8305_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_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2) → 8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2, 1)) the following chains were created:
  • We consider the chain COND_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2[1]) → 8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2[1], 1)) which results in the following constraint:

    (6)    (COND_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2[1])≥NonInfC∧COND_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2[1])≥8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2[1], 1))∧(UIncreasing(8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2[1], 1))), ≥))



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

    (7)    ((UIncreasing(8305_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(8305_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(8305_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(8305_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.
  • 8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2) → COND_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2, -1), <(x2, 9)), x2)
    • (x2[0] ≥ 0∧[8] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_8305_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_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2) → 8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2, 1))
    • ((UIncreasing(8305_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(8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x1)) = [-1] + [-1]x1   
POL(COND_8305_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_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2[1]) → 8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(+(x2[1], 1))

The following pairs are in Pbound:

8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0]) → COND_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(&&(>(x2[0], -1), <(x2[0], 9)), x2[0])

The following pairs are in P:

8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0]) → COND_8305_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): 8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(x2[0]) → COND_8305_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_8305_0_RESOLVE_AUX_CONSTANTSTACKPUSH(TRUE, x2[1]) → 8305_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:
4500_0_resolve_aux_LE(EOS(STATIC_4500), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i570) → 4504_0_resolve_aux_LE(EOS(STATIC_4504), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i570) | =(matching1, 9)
4504_0_resolve_aux_LE(EOS(STATIC_4504), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i570) → 4509_0_resolve_aux_ConstantStackPush(EOS(STATIC_4509), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570) | &&(>(i570, 0), =(matching1, 9))
4509_0_resolve_aux_ConstantStackPush(EOS(STATIC_4509), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570) → 4514_0_resolve_aux_Store(EOS(STATIC_4514), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, 0) | =(matching1, 9)
4514_0_resolve_aux_Store(EOS(STATIC_4514), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, matching2) → 4518_0_resolve_aux_ConstantStackPush(EOS(STATIC_4518), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570) | &&(=(matching1, 9), =(matching2, 0))
4518_0_resolve_aux_ConstantStackPush(EOS(STATIC_4518), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570) → 4524_0_resolve_aux_Store(EOS(STATIC_4524), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, 0) | =(matching1, 9)
4524_0_resolve_aux_Store(EOS(STATIC_4524), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, matching2) → 4531_0_resolve_aux_ConstantStackPush(EOS(STATIC_4531), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, 0) | &&(=(matching1, 9), =(matching2, 0))
4531_0_resolve_aux_ConstantStackPush(EOS(STATIC_4531), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, matching2) → 4537_0_resolve_aux_Store(EOS(STATIC_4537), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, 0, 0) | &&(=(matching1, 9), =(matching2, 0))
4537_0_resolve_aux_Store(EOS(STATIC_4537), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, matching2, matching3) → 4543_0_resolve_aux_ConstantStackPush(EOS(STATIC_4543), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, 0, 0) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0))
4543_0_resolve_aux_ConstantStackPush(EOS(STATIC_4543), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, matching2, matching3) → 4550_0_resolve_aux_Store(EOS(STATIC_4550), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, 0, 0, 0) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0))
4550_0_resolve_aux_Store(EOS(STATIC_4550), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, matching2, matching3, matching4) → 4558_0_resolve_aux_Load(EOS(STATIC_4558), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, 0, 0, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
4558_0_resolve_aux_Load(EOS(STATIC_4558), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, matching2, matching3, matching4) → 5064_0_resolve_aux_Load(EOS(STATIC_5064), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, 0, 0, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
5064_0_resolve_aux_Load(EOS(STATIC_5064), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i693, i694, matching2) → 5393_0_resolve_aux_Load(EOS(STATIC_5393), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i693, i694, 0) | &&(=(matching1, 9), =(matching2, 0))
5393_0_resolve_aux_Load(EOS(STATIC_5393), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i735, i736, matching2) → 5578_0_resolve_aux_Load(EOS(STATIC_5578), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i735, i736, 0) | &&(=(matching1, 9), =(matching2, 0))
5578_0_resolve_aux_Load(EOS(STATIC_5578), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i774, i775, matching2) → 5763_0_resolve_aux_Load(EOS(STATIC_5763), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i774, i775, 0) | &&(=(matching1, 9), =(matching2, 0))
5763_0_resolve_aux_Load(EOS(STATIC_5763), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i812, i813, matching2) → 5765_0_resolve_aux_ConstantStackPush(EOS(STATIC_5765), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i812, i813, 0, i812) | &&(=(matching1, 9), =(matching2, 0))
5765_0_resolve_aux_ConstantStackPush(EOS(STATIC_5765), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i812, i813, matching2, i812) → 5766_0_resolve_aux_GE(EOS(STATIC_5766), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i812, i813, 0, i812, 9) | &&(=(matching1, 9), =(matching2, 0))
5766_0_resolve_aux_GE(EOS(STATIC_5766), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i813, matching2, i817, matching3) → 5768_0_resolve_aux_GE(EOS(STATIC_5768), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i813, 0, i817, 9) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 9))
5768_0_resolve_aux_GE(EOS(STATIC_5768), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i813, matching2, i817, matching3) → 5770_0_resolve_aux_ConstantStackPush(EOS(STATIC_5770), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, 0) | &&(&&(&&(<(i817, 9), =(matching1, 9)), =(matching2, 0)), =(matching3, 9))
5770_0_resolve_aux_ConstantStackPush(EOS(STATIC_5770), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, matching2) → 5772_0_resolve_aux_Store(EOS(STATIC_5772), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, 0, 0) | &&(=(matching1, 9), =(matching2, 0))
5772_0_resolve_aux_Store(EOS(STATIC_5772), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, matching2, matching3) → 5775_0_resolve_aux_Load(EOS(STATIC_5775), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, 0, 0) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0))
5775_0_resolve_aux_Load(EOS(STATIC_5775), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, matching2, matching3) → 5835_0_resolve_aux_Load(EOS(STATIC_5835), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, 0, 0) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0))
5835_0_resolve_aux_Load(EOS(STATIC_5835), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i823, matching2) → 5909_0_resolve_aux_Load(EOS(STATIC_5909), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i823, 0) | &&(=(matching1, 9), =(matching2, 0))
5909_0_resolve_aux_Load(EOS(STATIC_5909), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i835, matching2) → 5975_0_resolve_aux_Load(EOS(STATIC_5975), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i835, 0) | &&(=(matching1, 9), =(matching2, 0))
5975_0_resolve_aux_Load(EOS(STATIC_5975), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i852, matching2) → 6046_0_resolve_aux_Load(EOS(STATIC_6046), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i852, 0) | &&(=(matching1, 9), =(matching2, 0))
6046_0_resolve_aux_Load(EOS(STATIC_6046), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i866, matching2) → 6047_0_resolve_aux_ConstantStackPush(EOS(STATIC_6047), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i866, 0, i866) | &&(=(matching1, 9), =(matching2, 0))
6047_0_resolve_aux_ConstantStackPush(EOS(STATIC_6047), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i866, matching2, i866) → 6050_0_resolve_aux_GE(EOS(STATIC_6050), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i866, 0, i866, 9) | &&(=(matching1, 9), =(matching2, 0))
6050_0_resolve_aux_GE(EOS(STATIC_6050), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2, i869, matching3) → 6053_0_resolve_aux_GE(EOS(STATIC_6053), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 0, i869, 9) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 9))
6050_0_resolve_aux_GE(EOS(STATIC_6050), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, matching2, matching3, matching4, matching5) → 6054_0_resolve_aux_GE(EOS(STATIC_6054), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, 9, 0, 9, 9) | &&(&&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0)), =(matching4, 9)), =(matching5, 9))
6053_0_resolve_aux_GE(EOS(STATIC_6053), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2, i869, matching3) → 6055_0_resolve_aux_Load(EOS(STATIC_6055), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 0) | &&(&&(&&(<(i869, 9), =(matching1, 9)), =(matching2, 0)), =(matching3, 9))
6055_0_resolve_aux_Load(EOS(STATIC_6055), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2) → 6059_0_resolve_aux_FieldAccess(EOS(STATIC_6059), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 0, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 0))
6059_0_resolve_aux_FieldAccess(EOS(STATIC_6059), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 6062_0_resolve_aux_Load(EOS(STATIC_6062), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 0, java.lang.Object(ARRAY(9))) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 9))
6062_0_resolve_aux_Load(EOS(STATIC_6062), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2, java.lang.Object(ARRAY(matching3))) → 6065_0_resolve_aux_ArrayAccess(EOS(STATIC_6065), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 0, java.lang.Object(ARRAY(9)), i817) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 9))
6065_0_resolve_aux_ArrayAccess(EOS(STATIC_6065), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2, java.lang.Object(ARRAY(matching3)), i817) → 6069_0_resolve_aux_Load(EOS(STATIC_6069), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 0, o2034) | &&(&&(&&(<(i817, 9), =(matching1, 9)), =(matching2, 0)), =(matching3, 9))
6069_0_resolve_aux_Load(EOS(STATIC_6069), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2, o2034) → 6074_0_resolve_aux_ArrayAccess(EOS(STATIC_6074), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 0, o2034, i869) | &&(=(matching1, 9), =(matching2, 0))
6074_0_resolve_aux_ArrayAccess(EOS(STATIC_6074), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2, java.lang.Object(o2038put), i869) → 6075_0_resolve_aux_ArrayAccess(EOS(STATIC_6075), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 0, java.lang.Object(o2038put), i869) | &&(=(matching1, 9), =(matching2, 0))
6075_0_resolve_aux_ArrayAccess(EOS(STATIC_6075), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2, java.lang.Object(ARRAY(i873)), i869) → 6079_0_resolve_aux_ArrayAccess(EOS(STATIC_6079), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 0, java.lang.Object(ARRAY(i873)), i869) | &&(&&(>=(i873, 0), =(matching1, 9)), =(matching2, 0))
6079_0_resolve_aux_ArrayAccess(EOS(STATIC_6079), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2, java.lang.Object(ARRAY(i873)), i869) → 6082_0_resolve_aux_ArrayAccess(EOS(STATIC_6082), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 0, java.lang.Object(ARRAY(i873)), i869) | &&(=(matching1, 9), =(matching2, 0))
6082_0_resolve_aux_ArrayAccess(EOS(STATIC_6082), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2, java.lang.Object(ARRAY(i873)), i869) → 6088_0_resolve_aux_NE(EOS(STATIC_6088), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 0, i874) | &&(&&(<(i869, i873), =(matching1, 9)), =(matching2, 0))
6088_0_resolve_aux_NE(EOS(STATIC_6088), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2, i876) → 6091_0_resolve_aux_NE(EOS(STATIC_6091), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 0, i876) | &&(=(matching1, 9), =(matching2, 0))
6088_0_resolve_aux_NE(EOS(STATIC_6088), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2, matching3) → 6092_0_resolve_aux_NE(EOS(STATIC_6092), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 0, 0) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0))
6091_0_resolve_aux_NE(EOS(STATIC_6091), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2, i876) → 6097_0_resolve_aux_Inc(EOS(STATIC_6097), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 0) | &&(&&(!(=(i876, 0)), =(matching1, 9)), =(matching2, 0))
6097_0_resolve_aux_Inc(EOS(STATIC_6097), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2) → 6104_0_resolve_aux_JMP(EOS(STATIC_6104), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, +(i869, 1), 0) | &&(&&(>=(i869, 0), =(matching1, 9)), =(matching2, 0))
6104_0_resolve_aux_JMP(EOS(STATIC_6104), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i877, matching2) → 6110_0_resolve_aux_Load(EOS(STATIC_6110), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i877, 0) | &&(=(matching1, 9), =(matching2, 0))
6110_0_resolve_aux_Load(EOS(STATIC_6110), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i877, matching2) → 6046_0_resolve_aux_Load(EOS(STATIC_6046), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i877, 0) | &&(=(matching1, 9), =(matching2, 0))
6092_0_resolve_aux_NE(EOS(STATIC_6092), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2, matching3) → 6099_0_resolve_aux_ConstantStackPush(EOS(STATIC_6099), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869) | &&(&&(=(matching1, 9), =(matching2, 0)), =(matching3, 0))
6099_0_resolve_aux_ConstantStackPush(EOS(STATIC_6099), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869) → 6105_0_resolve_aux_Store(EOS(STATIC_6105), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 1) | =(matching1, 9)
6105_0_resolve_aux_Store(EOS(STATIC_6105), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2) → 6111_0_resolve_aux_JMP(EOS(STATIC_6111), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 1) | &&(=(matching1, 9), =(matching2, 1))
6111_0_resolve_aux_JMP(EOS(STATIC_6111), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2) → 6115_0_resolve_aux_Load(EOS(STATIC_6115), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 1) | &&(=(matching1, 9), =(matching2, 1))
6115_0_resolve_aux_Load(EOS(STATIC_6115), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2) → 6120_0_resolve_aux_EQ(EOS(STATIC_6120), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 1, 1) | &&(=(matching1, 9), =(matching2, 1))
6120_0_resolve_aux_EQ(EOS(STATIC_6120), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2, matching3) → 6124_0_resolve_aux_JMP(EOS(STATIC_6124), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869) | &&(&&(&&(>(1, 0), =(matching1, 9)), =(matching2, 1)), =(matching3, 1))
6124_0_resolve_aux_JMP(EOS(STATIC_6124), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869) → 6128_0_resolve_aux_ConstantStackPush(EOS(STATIC_6128), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869) | =(matching1, 9)
6128_0_resolve_aux_ConstantStackPush(EOS(STATIC_6128), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869) → 6134_0_resolve_aux_ArrayCreate(EOS(STATIC_6134), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, 9) | =(matching1, 9)
6134_0_resolve_aux_ArrayCreate(EOS(STATIC_6134), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, matching2) → 6139_0_resolve_aux_Store(EOS(STATIC_6139), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
6139_0_resolve_aux_Store(EOS(STATIC_6139), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, java.lang.Object(ARRAY(matching2))) → 6143_0_resolve_aux_Load(EOS(STATIC_6143), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
6143_0_resolve_aux_Load(EOS(STATIC_6143), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, java.lang.Object(ARRAY(matching2))) → 6150_0_resolve_aux_Load(EOS(STATIC_6150), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, java.lang.Object(ARRAY(9)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 9))
6150_0_resolve_aux_Load(EOS(STATIC_6150), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, java.lang.Object(ARRAY(matching2)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 6156_0_resolve_aux_Load(EOS(STATIC_6156), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, i869, java.lang.Object(ARRAY(9)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i817) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6156_0_resolve_aux_Load(EOS(STATIC_6156), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, java.lang.Object(ARRAY(matching2)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i817) → 6160_0_resolve_aux_Load(EOS(STATIC_6160), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, 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))
6160_0_resolve_aux_Load(EOS(STATIC_6160), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, java.lang.Object(ARRAY(matching2)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i817, i869) → 6167_0_resolve_aux_InvokeMethod(EOS(STATIC_6167), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, 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))
6167_0_resolve_aux_InvokeMethod(EOS(STATIC_6167), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, i869, java.lang.Object(ARRAY(matching2)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i817, i869, java.lang.Object(ARRAY(matching4))) → 6174_1_resolve_aux_InvokeMethod(6174_0_possibleValues_ConstantStackPush(EOS(STATIC_6174), 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)))), i570, 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))
6174_1_resolve_aux_InvokeMethod(7483_0_possibleValues_Return(EOS(STATIC_7483)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i1642, i1643, java.lang.Object(ARRAY(matching4))) → 7529_0_possibleValues_Return(EOS(STATIC_7529), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i1642, i1643, java.lang.Object(ARRAY(9))) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
7529_0_possibleValues_Return(EOS(STATIC_7529), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i1642, i1643, java.lang.Object(ARRAY(matching4))) → 7548_0_resolve_aux_ConstantStackPush(EOS(STATIC_7548), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9))) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
7548_0_resolve_aux_ConstantStackPush(EOS(STATIC_7548), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2))) → 7560_0_resolve_aux_Store(EOS(STATIC_7560), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), 0) | &&(=(matching1, 9), =(matching2, 9))
7560_0_resolve_aux_Store(EOS(STATIC_7560), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), matching3) → 7576_0_resolve_aux_Load(EOS(STATIC_7576), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
7576_0_resolve_aux_Load(EOS(STATIC_7576), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), matching3) → 7783_0_resolve_aux_Load(EOS(STATIC_7783), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
7783_0_resolve_aux_Load(EOS(STATIC_7783), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i2088) → 8018_0_resolve_aux_Load(EOS(STATIC_8018), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i2088) | &&(=(matching1, 9), =(matching2, 9))
8018_0_resolve_aux_Load(EOS(STATIC_8018), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i2525) → 8140_0_resolve_aux_Load(EOS(STATIC_8140), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i2525) | &&(=(matching1, 9), =(matching2, 9))
8140_0_resolve_aux_Load(EOS(STATIC_8140), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i2630) → 8286_0_resolve_aux_Load(EOS(STATIC_8286), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i2630) | &&(=(matching1, 9), =(matching2, 9))
8286_0_resolve_aux_Load(EOS(STATIC_8286), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i2939) → 8306_0_resolve_aux_ConstantStackPush(EOS(STATIC_8306), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i2939, i2939) | &&(=(matching1, 9), =(matching2, 9))
8306_0_resolve_aux_ConstantStackPush(EOS(STATIC_8306), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i2939, i2939) → 8326_0_resolve_aux_GE(EOS(STATIC_8326), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i2939, i2939, 9) | &&(=(matching1, 9), =(matching2, 9))
8326_0_resolve_aux_GE(EOS(STATIC_8326), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, i3169, matching3) → 8349_0_resolve_aux_GE(EOS(STATIC_8349), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, i3169, 9) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8349_0_resolve_aux_GE(EOS(STATIC_8349), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, i3169, matching3) → 8377_0_resolve_aux_Load(EOS(STATIC_8377), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169) | &&(&&(&&(<(i3169, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8377_0_resolve_aux_Load(EOS(STATIC_8377), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169) → 8398_0_resolve_aux_Load(EOS(STATIC_8398), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
8398_0_resolve_aux_Load(EOS(STATIC_8398), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(ARRAY(matching3))) → 8424_0_resolve_aux_ArrayAccess(EOS(STATIC_8424), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(ARRAY(9)), i3169) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8424_0_resolve_aux_ArrayAccess(EOS(STATIC_8424), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(ARRAY(matching3)), i3169) → 8457_0_resolve_aux_EQ(EOS(STATIC_8457), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, i3551) | &&(&&(&&(<(i3169, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8457_0_resolve_aux_EQ(EOS(STATIC_8457), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, i3667) → 8487_0_resolve_aux_EQ(EOS(STATIC_8487), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, i3667) | &&(=(matching1, 9), =(matching2, 9))
8457_0_resolve_aux_EQ(EOS(STATIC_8457), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, matching3) → 8488_0_resolve_aux_EQ(EOS(STATIC_8488), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
8487_0_resolve_aux_EQ(EOS(STATIC_8487), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, i3667) → 8521_0_resolve_aux_Load(EOS(STATIC_8521), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169) | &&(&&(!(=(i3667, 0)), =(matching1, 9)), =(matching2, 9))
8521_0_resolve_aux_Load(EOS(STATIC_8521), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169) → 8559_0_resolve_aux_FieldAccess(EOS(STATIC_8559), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 9))
8559_0_resolve_aux_FieldAccess(EOS(STATIC_8559), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 8592_0_resolve_aux_Load(EOS(STATIC_8592), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(ARRAY(9))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8592_0_resolve_aux_Load(EOS(STATIC_8592), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(ARRAY(matching3))) → 8624_0_resolve_aux_ArrayAccess(EOS(STATIC_8624), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(ARRAY(9)), i1642) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8624_0_resolve_aux_ArrayAccess(EOS(STATIC_8624), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(ARRAY(matching3)), i1642) → 8665_0_resolve_aux_Load(EOS(STATIC_8665), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, o9100) | &&(&&(&&(<(i1642, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
8665_0_resolve_aux_Load(EOS(STATIC_8665), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, o9100) → 8683_0_resolve_aux_Load(EOS(STATIC_8683), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, o9100, i1643) | &&(=(matching1, 9), =(matching2, 9))
8683_0_resolve_aux_Load(EOS(STATIC_8683), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, o9100, i1643) → 8710_0_resolve_aux_ConstantStackPush(EOS(STATIC_8710), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, o9100, i1643, i3169) | &&(=(matching1, 9), =(matching2, 9))
8710_0_resolve_aux_ConstantStackPush(EOS(STATIC_8710), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, o9100, i1643, i3169) → 8753_0_resolve_aux_IntArithmetic(EOS(STATIC_8753), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, o9100, i1643, i3169) | &&(=(matching1, 9), =(matching2, 9))
8753_0_resolve_aux_IntArithmetic(EOS(STATIC_8753), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, o9100, i1643, i3169) → 8782_0_resolve_aux_ArrayAccess(EOS(STATIC_8782), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, o9100, i1643) | &&(&&(>=(i3169, 0), =(matching1, 9)), =(matching2, 9))
8782_0_resolve_aux_ArrayAccess(EOS(STATIC_8782), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(o10020put), i1643) → 8807_0_resolve_aux_ArrayAccess(EOS(STATIC_8807), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(o10020put), i1643) | &&(=(matching1, 9), =(matching2, 9))
8807_0_resolve_aux_ArrayAccess(EOS(STATIC_8807), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(ARRAY(i4698)), i1643) → 8840_0_resolve_aux_ArrayAccess(EOS(STATIC_8840), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(ARRAY(i4698)), i1643) | &&(&&(>=(i4698, 0), =(matching1, 9)), =(matching2, 9))
8840_0_resolve_aux_ArrayAccess(EOS(STATIC_8840), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(ARRAY(i4698)), i1643) → 8864_0_resolve_aux_ArrayAccess(EOS(STATIC_8864), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(ARRAY(i4698)), i1643) | &&(=(matching1, 9), =(matching2, 9))
8864_0_resolve_aux_ArrayAccess(EOS(STATIC_8864), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(ARRAY(i4698)), i1643) → 8890_0_resolve_aux_Load(EOS(STATIC_8890), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169) | &&(&&(<(i1643, i4698), =(matching1, 9)), =(matching2, 9))
8890_0_resolve_aux_Load(EOS(STATIC_8890), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169) → 8920_0_resolve_aux_Load(EOS(STATIC_8920), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 9))
8920_0_resolve_aux_Load(EOS(STATIC_8920), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 8934_0_resolve_aux_ConstantStackPush(EOS(STATIC_8934), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8934_0_resolve_aux_ConstantStackPush(EOS(STATIC_8934), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i570) → 8953_0_resolve_aux_IntArithmetic(EOS(STATIC_8953), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, 1) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8953_0_resolve_aux_IntArithmetic(EOS(STATIC_8953), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i570, matching4) → 8977_0_resolve_aux_InvokeMethod(EOS(STATIC_8977), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), -(i570, 1)) | &&(&&(&&(&&(>(i570, 0), =(matching1, 9)), =(matching2, 9)), =(matching3, 9)), =(matching4, 1))
8977_0_resolve_aux_InvokeMethod(EOS(STATIC_8977), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i5106) → 8996_1_resolve_aux_InvokeMethod(8996_0_resolve_aux_Load(EOS(STATIC_8996), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i5106), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i5106) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
8996_0_resolve_aux_Load(EOS(STATIC_8996), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i5106) → 9017_0_resolve_aux_Load(EOS(STATIC_9017), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i5106) | =(matching1, 9)
8996_1_resolve_aux_InvokeMethod(8399_0_resolve_aux_Return(EOS(STATIC_8399), matching1), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching2)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching3)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching4)))), i5395) → 9117_0_resolve_aux_Return(EOS(STATIC_9117), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i5395, 0) | &&(&&(&&(=(matching1, 0), =(matching2, 9)), =(matching3, 9)), =(matching4, 9))
9017_0_resolve_aux_Load(EOS(STATIC_9017), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i5106) → 4497_0_resolve_aux_Load(EOS(STATIC_4497), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i5106) | =(matching1, 9)
4497_0_resolve_aux_Load(EOS(STATIC_4497), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i563) → 4500_0_resolve_aux_LE(EOS(STATIC_4500), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i563, i563) | =(matching1, 9)
9117_0_resolve_aux_Return(EOS(STATIC_9117), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3)))), i5395, matching4) → 9155_0_resolve_aux_EQ(EOS(STATIC_9155), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9)), =(matching4, 0))
9155_0_resolve_aux_EQ(EOS(STATIC_9155), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, matching3) → 9176_0_resolve_aux_Load(EOS(STATIC_9176), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
9176_0_resolve_aux_Load(EOS(STATIC_9176), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169) → 9204_0_resolve_aux_FieldAccess(EOS(STATIC_9204), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9))))) | &&(=(matching1, 9), =(matching2, 9))
9204_0_resolve_aux_FieldAccess(EOS(STATIC_9204), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching3))))) → 9229_0_resolve_aux_Load(EOS(STATIC_9229), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(ARRAY(9))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
9229_0_resolve_aux_Load(EOS(STATIC_9229), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(ARRAY(matching3))) → 9249_0_resolve_aux_ArrayAccess(EOS(STATIC_9249), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(ARRAY(9)), i1642) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
9249_0_resolve_aux_ArrayAccess(EOS(STATIC_9249), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(ARRAY(matching3)), i1642) → 9267_0_resolve_aux_Load(EOS(STATIC_9267), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, o13073) | &&(&&(&&(<(i1642, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
9267_0_resolve_aux_Load(EOS(STATIC_9267), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, o13073) → 9284_0_resolve_aux_ConstantStackPush(EOS(STATIC_9284), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, o13073, i1643) | &&(=(matching1, 9), =(matching2, 9))
9284_0_resolve_aux_ConstantStackPush(EOS(STATIC_9284), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, o13073, i1643) → 9309_0_resolve_aux_ArrayAccess(EOS(STATIC_9309), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, o13073, i1643, 0) | &&(=(matching1, 9), =(matching2, 9))
9309_0_resolve_aux_ArrayAccess(EOS(STATIC_9309), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(o13189put), i1643, matching3) → 9321_0_resolve_aux_ArrayAccess(EOS(STATIC_9321), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(o13189put), i1643, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
9321_0_resolve_aux_ArrayAccess(EOS(STATIC_9321), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(ARRAY(i5842)), i1643, matching3) → 9341_0_resolve_aux_ArrayAccess(EOS(STATIC_9341), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(ARRAY(i5842)), i1643, 0) | &&(&&(&&(>=(i5842, 0), =(matching1, 9)), =(matching2, 9)), =(matching3, 0))
9341_0_resolve_aux_ArrayAccess(EOS(STATIC_9341), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(ARRAY(i5842)), i1643, matching3) → 9354_0_resolve_aux_ArrayAccess(EOS(STATIC_9354), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169, java.lang.Object(ARRAY(i5842)), i1643, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
9354_0_resolve_aux_ArrayAccess(EOS(STATIC_9354), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, java.lang.Object(ARRAY(i5842)), i1643, matching3) → 9371_0_resolve_aux_Inc(EOS(STATIC_9371), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169) | &&(&&(&&(<(i1643, i5842), =(matching1, 9)), =(matching2, 9)), =(matching3, 0))
9371_0_resolve_aux_Inc(EOS(STATIC_9371), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169) → 9385_0_resolve_aux_JMP(EOS(STATIC_9385), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), +(i3169, 1)) | &&(&&(>=(i3169, 0), =(matching1, 9)), =(matching2, 9))
9385_0_resolve_aux_JMP(EOS(STATIC_9385), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i5871) → 9402_0_resolve_aux_Load(EOS(STATIC_9402), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i5871) | &&(=(matching1, 9), =(matching2, 9))
9402_0_resolve_aux_Load(EOS(STATIC_9402), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i5871) → 8286_0_resolve_aux_Load(EOS(STATIC_8286), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i5871) | &&(=(matching1, 9), =(matching2, 9))
8488_0_resolve_aux_EQ(EOS(STATIC_8488), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169, matching3) → 8522_0_resolve_aux_Inc(EOS(STATIC_8522), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
8522_0_resolve_aux_Inc(EOS(STATIC_8522), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i1642, i1643, java.lang.Object(ARRAY(matching2)), i3169) → 9371_0_resolve_aux_Inc(EOS(STATIC_9371), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i1642, i1643, java.lang.Object(ARRAY(9)), i3169) | &&(=(matching1, 9), =(matching2, 9))
6054_0_resolve_aux_GE(EOS(STATIC_6054), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, matching2, matching3, matching4, matching5) → 6056_0_resolve_aux_Load(EOS(STATIC_6056), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, 9, 0) | &&(&&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0)), =(matching4, 9)), =(matching5, 9))
6056_0_resolve_aux_Load(EOS(STATIC_6056), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, matching2, matching3) → 6060_0_resolve_aux_EQ(EOS(STATIC_6060), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, 9, 0, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6060_0_resolve_aux_EQ(EOS(STATIC_6060), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, matching2, matching3, matching4) → 6064_0_resolve_aux_Inc(EOS(STATIC_6064), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i817, 9, 0) | &&(&&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0)), =(matching4, 0))
6064_0_resolve_aux_Inc(EOS(STATIC_6064), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i817, matching2, matching3) → 6066_0_resolve_aux_JMP(EOS(STATIC_6066), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, +(i817, 1), 9, 0) | &&(&&(&&(>=(i817, 0), =(matching1, 9)), =(matching2, 9)), =(matching3, 0))
6066_0_resolve_aux_JMP(EOS(STATIC_6066), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i870, matching2, matching3) → 6071_0_resolve_aux_Load(EOS(STATIC_6071), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i870, 9, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6071_0_resolve_aux_Load(EOS(STATIC_6071), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i570, i870, matching2, matching3) → 5763_0_resolve_aux_Load(EOS(STATIC_5763), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i570, i870, 9, 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
R rules:
6174_0_possibleValues_ConstantStackPush(EOS(STATIC_6174), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i817, i869, java.lang.Object(ARRAY(matching2))) → 6181_0_possibleValues_ConstantStackPush(EOS(STATIC_6181), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i817, i869, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
6181_0_possibleValues_ConstantStackPush(EOS(STATIC_6181), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i817, i869, java.lang.Object(ARRAY(matching2))) → 6196_0_possibleValues_ConstantStackPush(EOS(STATIC_6196), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i817, i869, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
5798_0_possibleValues_ConstantStackPush(EOS(STATIC_5798), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), matching2, i813, java.lang.Object(ARRAY(matching3))) → 6196_0_possibleValues_ConstantStackPush(EOS(STATIC_6196), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), 9, i813, java.lang.Object(ARRAY(9))) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6196_0_possibleValues_ConstantStackPush(EOS(STATIC_6196), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2))) → 6201_0_possibleValues_Store(EOS(STATIC_6201), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), 0) | &&(=(matching1, 9), =(matching2, 9))
6201_0_possibleValues_Store(EOS(STATIC_6201), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), matching3) → 6205_0_possibleValues_Load(EOS(STATIC_6205), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6205_0_possibleValues_Load(EOS(STATIC_6205), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), matching3) → 6249_0_possibleValues_Load(EOS(STATIC_6249), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6249_0_possibleValues_Load(EOS(STATIC_6249), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i889) → 6276_0_possibleValues_Load(EOS(STATIC_6276), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i889) | &&(=(matching1, 9), =(matching2, 9))
6276_0_possibleValues_Load(EOS(STATIC_6276), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i894) → 6291_0_possibleValues_Load(EOS(STATIC_6291), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i894) | &&(=(matching1, 9), =(matching2, 9))
6291_0_possibleValues_Load(EOS(STATIC_6291), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i899) → 6306_0_possibleValues_Load(EOS(STATIC_6306), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i899) | &&(=(matching1, 9), =(matching2, 9))
6306_0_possibleValues_Load(EOS(STATIC_6306), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i903) → 6307_0_possibleValues_ConstantStackPush(EOS(STATIC_6307), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i903, i903) | &&(=(matching1, 9), =(matching2, 9))
6307_0_possibleValues_ConstantStackPush(EOS(STATIC_6307), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i903, i903) → 6308_0_possibleValues_GE(EOS(STATIC_6308), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i903, i903, 9) | &&(=(matching1, 9), =(matching2, 9))
6308_0_possibleValues_GE(EOS(STATIC_6308), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i906, i906, matching3) → 6310_0_possibleValues_GE(EOS(STATIC_6310), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i906, i906, 9) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6308_0_possibleValues_GE(EOS(STATIC_6308), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), matching3, matching4, matching5) → 6311_0_possibleValues_GE(EOS(STATIC_6311), 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))
6310_0_possibleValues_GE(EOS(STATIC_6310), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i906, i906, matching3) → 6312_0_possibleValues_Load(EOS(STATIC_6312), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i906) | &&(&&(&&(<(i906, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
6311_0_possibleValues_GE(EOS(STATIC_6311), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), matching3, matching4, matching5) → 6313_0_possibleValues_ConstantStackPush(EOS(STATIC_6313), 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))
6312_0_possibleValues_Load(EOS(STATIC_6312), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i906) → 6314_0_possibleValues_Load(EOS(STATIC_6314), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i906, java.lang.Object(ARRAY(9))) | &&(=(matching1, 9), =(matching2, 9))
6313_0_possibleValues_ConstantStackPush(EOS(STATIC_6313), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2))) → 6316_0_possibleValues_Store(EOS(STATIC_6316), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), 0) | &&(=(matching1, 9), =(matching2, 9))
6314_0_possibleValues_Load(EOS(STATIC_6314), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i906, java.lang.Object(ARRAY(matching3))) → 6317_0_possibleValues_ConstantStackPush(EOS(STATIC_6317), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i906, java.lang.Object(ARRAY(9)), i906) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6316_0_possibleValues_Store(EOS(STATIC_6316), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), matching3) → 6318_0_possibleValues_Load(EOS(STATIC_6318), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6317_0_possibleValues_ConstantStackPush(EOS(STATIC_6317), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i906, java.lang.Object(ARRAY(matching3)), i906) → 6319_0_possibleValues_ArrayAccess(EOS(STATIC_6319), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i906, java.lang.Object(ARRAY(9)), i906) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6318_0_possibleValues_Load(EOS(STATIC_6318), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), matching3) → 6386_0_possibleValues_Load(EOS(STATIC_6386), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6319_0_possibleValues_ArrayAccess(EOS(STATIC_6319), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i906, java.lang.Object(ARRAY(matching3)), i906) → 6322_0_possibleValues_Inc(EOS(STATIC_6322), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i906) | &&(&&(&&(<(i906, 9), =(matching1, 9)), =(matching2, 9)), =(matching3, 9))
6322_0_possibleValues_Inc(EOS(STATIC_6322), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i906) → 6325_0_possibleValues_JMP(EOS(STATIC_6325), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), +(i906, 1)) | &&(&&(>=(i906, 0), =(matching1, 9)), =(matching2, 9))
6325_0_possibleValues_JMP(EOS(STATIC_6325), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i907) → 6328_0_possibleValues_Load(EOS(STATIC_6328), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i907) | &&(=(matching1, 9), =(matching2, 9))
6328_0_possibleValues_Load(EOS(STATIC_6328), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i882, i883, java.lang.Object(ARRAY(matching2)), i907) → 6306_0_possibleValues_Load(EOS(STATIC_6306), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i882, i883, java.lang.Object(ARRAY(9)), i907) | &&(=(matching1, 9), =(matching2, 9))
6386_0_possibleValues_Load(EOS(STATIC_6386), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i920, i883, java.lang.Object(ARRAY(matching2)), i921) → 6448_0_possibleValues_Load(EOS(STATIC_6448), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i920, i883, java.lang.Object(ARRAY(9)), i921) | &&(=(matching1, 9), =(matching2, 9))
6448_0_possibleValues_Load(EOS(STATIC_6448), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i937, i883, java.lang.Object(ARRAY(matching2)), i938) → 6512_0_possibleValues_Load(EOS(STATIC_6512), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i937, i883, java.lang.Object(ARRAY(9)), i938) | &&(=(matching1, 9), =(matching2, 9))
6512_0_possibleValues_Load(EOS(STATIC_6512), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i953, i883, java.lang.Object(ARRAY(matching2)), i954) → 6574_0_possibleValues_Load(EOS(STATIC_6574), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i953, i883, java.lang.Object(ARRAY(9)), i954) | &&(=(matching1, 9), =(matching2, 9))
6574_0_possibleValues_Load(EOS(STATIC_6574), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), i970) → 6576_0_possibleValues_ConstantStackPush(EOS(STATIC_6576), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9)), i970, i970) | &&(=(matching1, 9), =(matching2, 9))
6576_0_possibleValues_ConstantStackPush(EOS(STATIC_6576), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), i970, i970) → 6577_0_possibleValues_GE(EOS(STATIC_6577), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9)), i970, i970, 9) | &&(=(matching1, 9), =(matching2, 9))
6577_0_possibleValues_GE(EOS(STATIC_6577), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), i975, i975, matching3) → 6578_0_possibleValues_GE(EOS(STATIC_6578), 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))
6577_0_possibleValues_GE(EOS(STATIC_6577), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), matching3, matching4, matching5) → 6579_0_possibleValues_GE(EOS(STATIC_6579), 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))
6578_0_possibleValues_GE(EOS(STATIC_6578), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), i975, i975, matching3) → 6580_0_possibleValues_Load(EOS(STATIC_6580), 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))
6579_0_possibleValues_GE(EOS(STATIC_6579), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), matching3, matching4, matching5) → 6581_0_possibleValues_ConstantStackPush(EOS(STATIC_6581), 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))
6580_0_possibleValues_Load(EOS(STATIC_6580), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), i975) → 6583_0_possibleValues_FieldAccess(EOS(STATIC_6583), 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))
6581_0_possibleValues_ConstantStackPush(EOS(STATIC_6581), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2))) → 6584_0_possibleValues_Store(EOS(STATIC_6584), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9)), 0) | &&(=(matching1, 9), =(matching2, 9))
6583_0_possibleValues_FieldAccess(EOS(STATIC_6583), 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))))) → 6585_0_possibleValues_Load(EOS(STATIC_6585), 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))
6584_0_possibleValues_Store(EOS(STATIC_6584), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), matching3) → 6586_0_possibleValues_Load(EOS(STATIC_6586), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i969, i883, java.lang.Object(ARRAY(9)), 0) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6585_0_possibleValues_Load(EOS(STATIC_6585), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3))) → 6588_0_possibleValues_ArrayAccess(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)), i969) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 9))
6586_0_possibleValues_Load(EOS(STATIC_6586), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i969, i883, java.lang.Object(ARRAY(matching2)), matching3) → 6712_0_possibleValues_Load(EOS(STATIC_6712), 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_ArrayAccess(EOS(STATIC_6588), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i978, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i978) → 6590_0_possibleValues_ArrayAccess(EOS(STATIC_6590), 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))
6588_0_possibleValues_ArrayAccess(EOS(STATIC_6588), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i979, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i979) → 6591_0_possibleValues_ArrayAccess(EOS(STATIC_6591), 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))
6590_0_possibleValues_ArrayAccess(EOS(STATIC_6590), 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_<init>_Load(EOS(STATIC_6593), 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))
6591_0_possibleValues_ArrayAccess(EOS(STATIC_6591), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i980) → 6595_0_possibleValues_ArrayAccess(EOS(STATIC_6595), 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))
6591_0_possibleValues_ArrayAccess(EOS(STATIC_6591), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i981, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i981) → 6596_0_possibleValues_ArrayAccess(EOS(STATIC_6596), 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))
6593_0_<init>_Load(EOS(STATIC_6593), 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))))))) → 6602_0_<init>_InvokeMethod(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)))), 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))
6595_0_possibleValues_ArrayAccess(EOS(STATIC_6595), 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_Load(EOS(STATIC_6598), 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))
6596_0_possibleValues_ArrayAccess(EOS(STATIC_6596), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i981, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), i981) → 6600_0_<init>_Load(EOS(STATIC_6600), 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))
6598_0_possibleValues_Load(EOS(STATIC_6598), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, o2259) → 6603_0_possibleValues_ArrayAccess(EOS(STATIC_6603), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, o2259, i975) | &&(=(matching1, 9), =(matching2, 9))
6600_0_<init>_Load(EOS(STATIC_6600), 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))))))) → 6610_0_<init>_InvokeMethod(EOS(STATIC_6610), 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))
6602_0_<init>_InvokeMethod(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)))), 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))))))) → 6606_0_<init>_Load(EOS(STATIC_6606), 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))
6603_0_possibleValues_ArrayAccess(EOS(STATIC_6603), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(o2262put), i975) → 6607_0_possibleValues_ArrayAccess(EOS(STATIC_6607), 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))
6603_0_possibleValues_ArrayAccess(EOS(STATIC_6603), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, NULL, i975) → 6608_0_possibleValues_ArrayAccess(EOS(STATIC_6608), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, NULL, i975) | &&(=(matching1, 9), =(matching2, 9))
6606_0_<init>_Load(EOS(STATIC_6606), 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))))))) → 6616_0_<init>_InvokeMethod(EOS(STATIC_6616), 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))
6607_0_possibleValues_ArrayAccess(EOS(STATIC_6607), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6612_0_possibleValues_ArrayAccess(EOS(STATIC_6612), 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))
6608_0_possibleValues_ArrayAccess(EOS(STATIC_6608), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, NULL, i975) → 6613_0_possibleValues_ArrayAccess(EOS(STATIC_6613), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, NULL, i975) | &&(=(matching1, 9), =(matching2, 9))
6610_0_<init>_InvokeMethod(EOS(STATIC_6610), 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))))))) → 6614_0_<init>_Load(EOS(STATIC_6614), 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))
6612_0_possibleValues_ArrayAccess(EOS(STATIC_6612), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6617_0_possibleValues_ArrayAccess(EOS(STATIC_6617), 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))
6612_0_possibleValues_ArrayAccess(EOS(STATIC_6612), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6618_0_possibleValues_ArrayAccess(EOS(STATIC_6618), 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))
6613_0_possibleValues_ArrayAccess(EOS(STATIC_6613), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, NULL, i975) → 6620_0_<init>_Load(EOS(STATIC_6620), 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))
6614_0_<init>_Load(EOS(STATIC_6614), 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))))))) → 6626_0_<init>_InvokeMethod(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)))), 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))
6616_0_<init>_InvokeMethod(EOS(STATIC_6616), 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))))))) → 6622_0_<init>_Load(EOS(STATIC_6622), 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))
6617_0_possibleValues_ArrayAccess(EOS(STATIC_6617), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6624_0_possibleValues_EQ(EOS(STATIC_6624), 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))
6618_0_possibleValues_ArrayAccess(EOS(STATIC_6618), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(i982)), i975) → 6625_0_<init>_Load(EOS(STATIC_6625), 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))
6620_0_<init>_Load(EOS(STATIC_6620), 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)))))) → 6633_0_<init>_InvokeMethod(EOS(STATIC_6633), 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))
6622_0_<init>_Load(EOS(STATIC_6622), 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))))))) → 6637_0_<init>_InvokeMethod(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)))), 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))
6624_0_possibleValues_EQ(EOS(STATIC_6624), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, i985) → 6630_0_possibleValues_EQ(EOS(STATIC_6630), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975, i985) | &&(=(matching1, 9), =(matching2, 9))
6624_0_possibleValues_EQ(EOS(STATIC_6624), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, matching3) → 6631_0_possibleValues_EQ(EOS(STATIC_6631), 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))
6625_0_<init>_Load(EOS(STATIC_6625), 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))))))) → 6642_0_<init>_InvokeMethod(EOS(STATIC_6642), 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))
6626_0_<init>_InvokeMethod(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)))), 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))))))) → 6634_0_<init>_Load(EOS(STATIC_6634), 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))
6630_0_possibleValues_EQ(EOS(STATIC_6630), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, i985) → 6639_0_possibleValues_Load(EOS(STATIC_6639), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975) | &&(&&(!(=(i985, 0)), =(matching1, 9)), =(matching2, 9))
6631_0_possibleValues_EQ(EOS(STATIC_6631), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, matching3) → 6640_0_possibleValues_Inc(EOS(STATIC_6640), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975) | &&(&&(=(matching1, 9), =(matching2, 9)), =(matching3, 0))
6633_0_<init>_InvokeMethod(EOS(STATIC_6633), 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)))))) → 6643_0_<init>_Load(EOS(STATIC_6643), 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))
6634_0_<init>_Load(EOS(STATIC_6634), 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))))))) → 6653_0_<init>_InvokeMethod(EOS(STATIC_6653), 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))
6637_0_<init>_InvokeMethod(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)))), 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))))))) → 6648_0_<init>_Load(EOS(STATIC_6648), 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))
6639_0_possibleValues_Load(EOS(STATIC_6639), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975) → 6649_0_possibleValues_Load(EOS(STATIC_6649), 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))
6640_0_possibleValues_Inc(EOS(STATIC_6640), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975) → 6810_0_possibleValues_Inc(EOS(STATIC_6810), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(9)))), i980, i883, java.lang.Object(ARRAY(9)), i975) | &&(=(matching1, 9), =(matching2, 9))
6642_0_<init>_InvokeMethod(EOS(STATIC_6642), 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))))))) → 6652_0_<init>_Load(EOS(STATIC_6652), 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))
6643_0_<init>_Load(EOS(STATIC_6643), 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)))))) → 6662_0_<init>_InvokeMethod(EOS(STATIC_6662), 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))
6648_0_<init>_Load(EOS(STATIC_6648), 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))))))) → 6669_0_<init>_InvokeMethod(EOS(STATIC_6669), 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))
6649_0_possibleValues_Load(EOS(STATIC_6649), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3))) → 6658_0_possibleValues_FieldAccess(EOS(STATIC_6658), 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))
6652_0_<init>_Load(EOS(STATIC_6652), 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))))))) → 6672_0_<init>_InvokeMethod(EOS(STATIC_6672), 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))
6653_0_<init>_InvokeMethod(EOS(STATIC_6653), 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))))))) → 6663_0_<init>_Load(EOS(STATIC_6663), 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))
6658_0_possibleValues_FieldAccess(EOS(STATIC_6658), 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))))) → 6671_0_possibleValues_Load(EOS(STATIC_6671), 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))
6662_0_<init>_InvokeMethod(EOS(STATIC_6662), 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)))))) → 6673_0_<init>_Load(EOS(STATIC_6673), 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))
6663_0_<init>_Load(EOS(STATIC_6663), 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))))))) → 6683_0_<init>_InvokeMethod(EOS(STATIC_6683), 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))
6669_0_<init>_InvokeMethod(EOS(STATIC_6669), 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))))))) → 6679_0_<init>_Load(EOS(STATIC_6679), 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))
6671_0_possibleValues_Load(EOS(STATIC_6671), 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))) → 6680_0_possibleValues_ArrayAccess(EOS(STATIC_6680), 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))
6672_0_<init>_InvokeMethod(EOS(STATIC_6672), 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))))))) → 6681_0_<init>_Load(EOS(STATIC_6681), 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))
6673_0_<init>_Load(EOS(STATIC_6673), 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)))))) → 6691_0_<init>_InvokeMethod(EOS(STATIC_6691), 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))
6679_0_<init>_Load(EOS(STATIC_6679), 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))))))) → 6700_0_<init>_InvokeMethod(EOS(STATIC_6700), 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))
6680_0_possibleValues_ArrayAccess(EOS(STATIC_6680), 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) → 6690_0_possibleValues_Load(EOS(STATIC_6690), 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))
6681_0_<init>_Load(EOS(STATIC_6681), 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))))))) → 6703_0_<init>_InvokeMethod(EOS(STATIC_6703), 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))
6683_0_<init>_InvokeMethod(EOS(STATIC_6683), 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))))))) → 6692_0_<init>_Load(EOS(STATIC_6692), 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))
6690_0_possibleValues_Load(EOS(STATIC_6690), java.lang.Object(Sudoku(EOC, java.lang.Object(ARRAY(matching1)))), i980, i883, java.lang.Object(ARRAY(matching2)), i975, java.lang.Object(ARRAY(matching3)), o2293) → 6701_0_possibleValues_ArrayAccess(EOS(STATIC_6701), 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))
6691_0_<init>_InvokeMethod(EOS(STATIC_6691), 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)))))) → 6704_0_<init>_Load(EOS(STATIC_6704), 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))
6692_0_<init>_Load(EOS(STATIC_6692), 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))))))) → 6719_0_<init>_InvokeMethod(EOS(STATIC_6719), 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))
6700_0_<init>_InvokeMethod(EOS(STATIC_6700), 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))))))) → 6714_0_<init>_Load(EOS(STATIC_6714), 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))
6701_0_possibleValues_ArrayAccess(EOS(STATIC_6701), 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) → 6715_0_possibleValues_ArrayAccess(EOS(STATIC_6715), 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))
6701_0_possibleValues_ArrayAccess(EOS(STATIC_6701), 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) → 6716_0_possibleValues_ArrayAccess(EOS(STATIC_6716), 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))
6703_0_<init>_InvokeMethod(EOS(STATIC_6703), 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)))))),