language ESSENCE' 1.0 given N : int(1..) $ inputted size $ starting board given start : matrix indexed by [int(1..N), int(1..N)] of int(0..N) find puzzle : matrix indexed by [int(1..N), int(1..N)] of int(1..N) such that $ initial board matches solution board forAll i : int(1..N) . forAll j : int(1..N) . start[i,j] > 0 -> puzzle[i,j] = start[i,j], $ every row is distinct forAll i : int(1..N) . allDiff(puzzle[i, ..]), $ every column is distinct forAll j : int(1..N) . allDiff(puzzle[..,j])