Sudoku
A playable sudoku, compiled from shipped gifts.
The wiring ∘ feeds ⊗ parallel
This is the compiler’s reading of how the gifts compose into one app. Read left to right: each stage feeds the next (∘). A bracketed group (⊗) is parallel — its parts don’t depend on each other.
grid model- ∘
constraint check- ∘
render grid
Composition term: render-grid ∘ constraint-check ∘ grid-model
2 declared gaps — named below, not hidden.
CONSTRUCTIBLE-WITH-2-NAMED-GAPS
The declared gaps 2
A gap is a piece the compiler knows it needs but doesn’t yet have a witnessed gift for — honest derive-first work, declared rather than hidden. The app is constructible; these are the parts you’d build.
-
sudoku.solvepure-kernelnull-witness pure-kernel (constraint-propagation/backtracking fold to a solved grid); derive-first. Declared, not hidden.
-
sudoku.generatepure-kernelnull-witness pure-kernel (seeded puzzle generator, source-role); derive-first. Declared, not hidden. NOTE: a source-role kernel -- tests the verifier/compiler handle a gap that is not a fold.
Witness gifts 3
These shipped gifts witness stages of the pipeline — the real, downloadable parts the proof stands on.
The gifts are real and free; the wiring is a plan. Take the parts and build the app — as the schematic reads it, a variation, or something we’d never have compiled.
Built it, found a gap we missed, or think the wiring is wrong? Shea wants to hear it — success stories, questions, and corrections all land in the same inbox: