v2.15.0
What's new
AllDiff GAC propagator (Régin 1994)
Implements the classic bipartite-matching + Tarjan-SCC filter for AllDifferent. Detects naked pairs, triples, and any other Hall-set violation without backtracking — fully replacing pairwise ≠ arc consistency for AllDiff constraints.
Propagation fixpoint loop
AC3 and AllDiff GAC now run in a combined fixpoint loop (PropagationFixpointSolver). Each propagator can enable the other to make further reductions. Many heavily-constrained problems are now solved entirely by propagation with no backtracking at all (e.g. Zebra: 5.5 s → 0.1 s, 66,515 → 20 constraint checks).
Solver chain short-circuit
When any preprocessing step reduces all domains to singletons the forced assignment is validated and returned immediately, skipping IndependentSubproblemSolver, TreeDecompositionSolver, and backtracking entirely.
Tree decomposition guard: minimum-degree pre-check
TreeDecompositionSolver now skips the junction-tree computation when the constraint graph's minimum degree ≥ targetTreewidth. This is an exact early exit: minimum-degree elimination would always produce a clique too large for the decomposer to use. Avoids the expensive graph-elimination computation for dense problems like Sudoku.