Wiring with structured coordinates #
Explicit equivalences number the input and output coordinates. A selector between those coordinates lowers to ordinary circuit wiring, with no gates. Selectors need not be injective: several outputs can reuse one input. Standard finite sums and products supply executable layouts without choosing arbitrary enumerations.
Main definitions #
Cslib.Circuits.Circuit.wiringOn: wiring between explicitly numbered coordinate types.
Main results #
Cslib.Circuits.Circuit.eval_wiringOn: evaluation through the explicit coordinate numberings.Cslib.Circuits.Circuit.cost_program_wiringOn: structural wiring has zero weighted cost.