The name of the puzzle is jigsawdoku-sudoku. Load init-jigsawdoku. Ok. The name of the action is write-1-to-4. You can write a number that is between one and four onto an empty location. If the value of a location is absent then the location is empty. The solution has four steps. Load fail-jigsawdoku. The name of a failure is same-row-value. Ok. If the row of a location is the row of a location and the value of the former location is the value of the latter location then you lose. The name of a failure is same-col-value. Ok. If the column of a location is the column of a location and the value of the former location is the value of the latter location then you lose. The name of a failure is same-section-value. Ok. If the section of a location is the section of a location and the value of the former location is the value of the latter location then you lose. Load final-jigsawdoku. The name of the goal is all-filled. Ok. The goal is that all locations are filled. If the value of a location is more than zero then the location is filled. Done. No.