This program implements a sudoku solver that finds the unique solution for a sudoku puzzle using a depth-first search with constraint propagation. The search tree is pruned at the start of the solve and after each guess by checking solved neighbours and removing any digits that are no longer valid possibilities.