The name of the puzzle is kakuro. Load init-kakuro. Ok. The name of the action is write-1-to-9. You can write a number that is between one and nine onto an empty location. If the value of a location is absent then the location is empty. The solution has four steps. Load final-kakuro. 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. Load fail-kakuro. If two of the green locations are identical and they have the same row then you lose. Ok. If the locations have the same value then they are identical. If two of the green locations are identical and they have the same column then you lose. Ok. If the green locations in a file are filled and the sum of the values of the file is not the value of a location that is atop the file then you lose. Ok. If the blocks have the same column then they are in a file. If a block is blue and the column of the block is the column of a location then the block is atop the location. If the green locations in a rank are filled and the sum of the values of the rank is not the value of a location that is aside the rank then you lose. Ok. If the blocks have the same row then they are in a rank. If a block is yellow and the row of the block is the row of a location then the block is aside the location. Done. No.