donald -- search analysis records
==================================

2026-10-15  Arc consistency: analytic check (search advisor, arc consistency gap)
---------------------------------------------------------------------------------
Script: donald_ac.py (independent Python), python3 donald_ac.py
Model: the spec (csp, columns right to left, forward checking removes an assigned digit from
the other letters).  Compared with the same search plus arc consistency after each column:
each column sum keeps only values with a supporting combination, and a letter with one
digit left removes it from the others, repeated until nothing changes.

Results (every solution):
  forward checking only   426 states, 10,842 constraint checks, 1 solution
  plus arc consistency     10 states, 27,414 constraint checks, 1 solution
                           (16 children found dead before expansion; 74 values removed)
Arc consistency makes the search almost free of backtracking, at 2.5 times the constraint
checks; since each wouldwork state costs far more than a constraint check, it should pay.
One size only: the lesson is structural (column sums with carries propagate strongly).

2026-10-15  Arc consistency in wouldwork (library src/ww-arc-consistency.lisp)
------------------------------------------------------------------------------
Spec: probs/problem-donald-1.lisp (problem-donald.lisp plus an update after each column that
narrows every remaining list to a fixpoint: six column-sum constraints, each column's letters
different, and the all-different rule; an empty list asserts (inconsistent-state)).
Runs: *solution-type* every, *threads* 16, user's Windows machine (confirmed in the Linux VM).
  donald     424 program cycles, 425 states, solution at depth 5, 0.003 s
  donald-1     4 program cycles,   5 states, solution at depth 1, 0.003 s;
             17 inconsistent children abandoned before becoming states
Same single solution: 526485 + 197485 = 723970.  After the first column (D=5, T=0) the
propagation fixes every letter and carry, so the goal holds at depth 1 (the Python check
counted 10 states because it still walked the remaining columns).  Times are too small to
compare; the lesson is structural: column sums with carries propagate strongly.

2026-11-10  Consolidation
-------------------------
problem-donald-1.lisp (arc consistency) replaced problem-donald.lisp under the name donald;
the forward-checking-only spec was retired.  The donald-1 runs above are now donald.
