-
Sub-grid level
‘(x(1,1,1)​∨x(1,2,1)​∨x(1,3,1)​∨x(2,1,1)​∨x(2,2,1)​∨x(2,3,1)​∨x(3,1,1)​∨x(3,2,1)​∨x(3,3,1)​)‘
‘∧(x(1,1,2)​∨x(1,2,2)​∨x(1,3,2)​∨x(2,1,2)​∨x(2,2,2)​∨x(2,3,2)​∨x(3,1,2)​∨x(3,2,2)​∨x(3,3,2)​)‘
‘⋯‘
‘∧(x(1,1,9)​∨x(1,2,9)​∨x(1,3,9)​∨x(2,1,9)​∨x(2,2,9)​∨x(2,3,9)​∨x(3,1,9)​∨x(3,2,9)​∨x(3,3,9)​)‘
-
Row level
‘(x(1,1,1)​∨x(1,2,1)​∨x(1,3,1)​∨x(1,4,1)​∨x(1,5,1)​∨x(1,6,1)​∨x(1,7,1)​∨x(1,8,1)​∨x(1,9,1)​)‘
‘∧(x(1,1,2)​∨x(1,2,2)​∨x(1,3,2)​∨x(1,4,2)​∨x(1,5,2)​∨x(1,6,2)​∨x(1,7,2)​∨x(1,8,2)​∨x(1,9,2)​)‘
‘⋯‘
‘∧(x(1,1,9)​∨x(1,2,9)​∨x(1,3,9)​∨x(1,4,9)​∨x(1,5,9)​∨x(1,6,9)​∨x(1,7,9)​∨x(1,8,9)​∨x(1,9,9)​)‘
-
Column level
‘(x(1,1,1)​∨x(2,1,1)​∨x(3,1,1)​∨x(4,1,1)​∨x(5,1,1)​∨x(6,1,1)​∨x(7,1,1)​∨x(8,1,1)​∨x(9,1,1)​)‘
‘∧(x(1,1,2)​∨x(2,1,2)​∨x(3,1,2)​∨x(4,1,2)​∨x(5,1,2)​∨x(6,1,2)​∨x(7,1,2)​∨x(8,1,2)​∨x(9,1,2)​)‘
‘⋯‘
‘∧(x(1,1,9)​∨x(2,1,9)​∨x(3,1,9)​∨x(4,1,9)​∨x(5,1,9)​∨x(6,1,9)​∨x(7,1,9)​∨x(8,1,9)​∨x(9,1,9)​)‘
-
For all sets of disjunctions above: Make negative tuples of nonsame elements of them to make no any duplicated candidates get still alive in solutions.
‘(x(1,1,1)​∨x(2,1,1)​⋯x(9,1,1)​)‘
‘→(¬x(1,1,1)​∨¬x(2,1,1)​)∧(¬x(1,1,1)​∨¬x(3,1,1)​)∧⋯∧(¬x(8,1,1)​∨¬x(9,1,1)​)‘