gsf wrote:what sudoku properties/techniques do you use to propagate the constraints?
I'm not sure what you mean by propagate constraints.
In this approach I'm just thinking of a Sudoku as up to 729 candidates and up to 324 constraints. Every candidate belongs to 4 constraints (a row, a column, a box and a cell) and every constraint contains up to 9 candidates of which only one can be true and at least one must be true. For example all the digits 2 in row 7 build one constraint or all different digits in cell R3C9 build another one.
I start with an empty table of implications and first look at every constraint, one after the other. I look up the 9 (or less) candidates for each constraint and set the A => ~B for every pair of those candidates thus getting a couple of weak inferences if you will by applying the One Rule of sudoku.
I also look if there are only two candidates A and B in the constraint. If so, I set the implication ~A => B.
I then look if I can link any two of the implications I already have. If A => ~B and ~B => C then I set A => C (and its contrapositive ~C => ~A). And if C => ~D, I set ~B => ~D, A => ~D and so on ...
So I don't propagate constraints, I propagate implications. And I don't use sudoku techniques, I just apply the sudoku rule to generate a first set of implications.
The conclusions come if I get a combination like A => B and A => ~B. You would call this a contradiction which proves that A must be false. Or you can view the contrapositive B => ~A and ~B => ~A which leads to the same conclusion.