BooleanCircuit
plain-language theorem explainer
BooleanCircuit n encodes a feed-forward Boolean circuit over n inputs as a restricted sub-ledger with local DAG wiring and no global lattice coupling. Researchers formalizing the Recognition Science P versus NP gap cite this structure to derive polynomial Z-capacity bounds from gate count. The definition is a direct structural bundle of gate count, topological gate map, input-variable constraint, and output existence, with no separate proof steps.
Claim. A Boolean circuit over $n$ input variables is a structure with gate count $S$, a map from each index in Fin $S$ to a gate of type Gate $S$, a predicate ensuring every input-type gate references one variable in Fin $n$, and an existence witness for at least one output-type gate.
background
The module treats Boolean circuits as Stage 1 of the P versus NP reduction in Recognition Science: a feed-forward sub-ledger whose reach is bounded by depth rather than the global J-cost gradient of the full R̂ ledger. GateType is the inductive type with constructors Input (leaf reading one variable), And, Or, Not, and Output. Gate S packages a gate type together with a list of at most two parent indices, each strictly smaller than the current index to enforce the DAG property. Upstream LedgerFactorization supplies the J-cost calibration that later stages contrast with the circuit's local bond count.
proof idea
This is a structural definition; the fields gate_count, gates, input_var, and has_output are declared directly with their types and predicates. No tactics or lemmas are applied beyond the sibling Gate structure that already encodes arity_le and ff_bound.
why it matters
BooleanCircuit supplies the base type for BooleanCircuitWithEval, CircuitBondCount, circuit_bond_count_le, and circuit_capacity_bound, which together prove that any circuit of size S has Z-capacity at most 2S. It therefore anchors the module's claim that polynomial-size circuits remain polynomially bounded in Z-complexity, feeding CircuitLedgerCert and the defect-moat separation argument. The open piece remains the translation from spectral gap to Turing-machine step count that would close the exponential-depth requirement.
Switch to Lean above to see the machine-checked source, dependencies, and usage graph.