programgames/sudoku/sudoku.xtl

source · imports s: games/sudoku/SudokuGrid.xtl

g : Int

value · line 8
g ← 1 s̲elect ˢp̲uzzles @

U : Int

value · line 13
U ← ˢu̲nits @

c : Int

value · line 20
c ← ˢc̲andidates g

h : Int

value · line 35
h ← 2 s̲elect ˢp̲uzzles @

k : Int

value · line 41
k ← 4 s̲elect ˢp̲uzzles @

x : Int

value · line 46
x ← ˢs̲olve k

s : Int

value · line 53
s ← ˢn̲ew 1

ok : Unit

value · line 61
ok ← "'& r_/ (k = 0) | x = k" a̲ssert< "the solution keeps every given"
a̲ssert< expands to
({ @ → ('∧ r̲/ (k = 0) ∨ x = k) ? @◆ ⎕E̲RR "assertion failed: '& r_/ (k = 0) | x = k (the solution keeps every given) [games/sudoku/sudoku.xtl:61]"◆ @ } @)

ok : Unit

value · line 62
ok ← "'& r_/ r_avel 1 = s:p_erUnit s:o_nehot x" a̲ssert< "every unit holds every digit once"
a̲ssert< expands to
({ @ → ('∧ r̲/ r̲avel 1 = ˢp̲erUnit ˢo̲nehot x) ? @◆ ⎕E̲RR "assertion failed: '& r_/ r_avel 1 = s:p_erUnit s:o_nehot x (every unit holds every digit once) [games/sudoku/sudoku.xtl:62]"◆ @ } @)