Documentation
¶
Overview ¶
Package propagate is the toolkit's fast constraint propagator for the "is the next state a table lookup of some combined index?" family of hypotheses. Given a corpus of (inputs → output) byte transitions and a wiring (which inputs feed the index and how they combine), it tries to fill a single 256-entry table directly from the data and reports conflicts. Zero conflicts means the wiring's single-lookup form is consistent; a nonzero floor across every wiring is a theorem that the output is not a function of any such merged index — which is exactly the wall the alias high-byte recurrence runs into.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Constraint ¶
type Constraint struct {
HPrev, HCur, Eo, HNext uint8
}
Constraint is one observed high-byte transition.
type Result ¶
type Result struct {
Wiring Wiring
Keys int // distinct index values observed
Conflicts int // index values mapping to more than one HNext
}
Result reports how a wiring fared.
func Propagate ¶
func Propagate(w Wiring, cons []Constraint) Result
Propagate fills a single 256-entry table T[index] = HNext directly from the constraints and counts conflicts (an index already bound to a different output). Zero conflicts means HNext is a function of this wiring's merged index.
type Wiring ¶
Wiring builds an index byte by folding the selected inputs left-to-right with the given ops: index = (((in0 op0 in1) op1 in2) ...). len(Ops) must be len(Inputs)-1.
func EnumerateWirings ¶
func EnumerateWirings() []Wiring
EnumerateWirings produces the single- and multi-input merged-index wirings over {Hprev, Hcur, eo} with combine ops {^,+,-}: the family the propagator can falsify in one pass.