Thermometers

Mercury fills every thermometer from the bulb, without gaps — but how far is up to you. The clues count the filled cells in each row and column. Click a cell to cycle mercury → cross → blank; right-click plants a cross directly.

A thermometer is one scalar variable: how far the mercury reaches. That makes every row and column a sum of monotone step functions — and it quietly kills a rule that won the previous puzzle in this series. In Kakurasu, enumerating every way a line can meet its clue (witness enumeration) saw strictly more than interval arithmetic. Here it provably cannot: a mercury level moves in unit steps, so the number of cells a thermometer fills in a line sweeps a gap-free range, every witness sum is an interval, and per-line enumeration reaches exactly the interval fixpoint. This repo implements both and pins the equality with a property test — 900 positions, zero disagreements.

The strength has to come from somewhere else. The interval rule is what a person does: each line's clue, minus what the other thermometers can still cover, squeezes every mercury range from both ends. The probe is what a machine does: assume a level, propagate, and erase the levels that die. Measured over 200 unique boards per size: intervals alone finish 100% at 4×4 but 86% at 8×8 — and probing finished every unique board sampled, 600 of 600. The generator's own measurement: random mercury levels give a unique board 94% of the time at 4×4 and 8% at 8×8, so uniqueness is bought by rejection — 19 rerolls per accepted 8×8 board. Every board here is unique, finishable without guessing, and the Hint button names the rule that fires: bookkeeping, one line's count, chained counts, or a probe. Soundness is pinned by an independent brute-force solver that shares no code with the propagators: four counters must agree on solution counts, and a disagreement is how an unsound rule gets caught.