Circuit input support #
This file computes the original inputs that can affect each wire and proves that circuit evaluation depends only on those inputs.
The original inputs supporting a line, given the support of each wire.
Equations
- line.inputSupport wireSupport = Finset.univ.biUnion fun (k : Fin (σ.Arity line.op)) => wireSupport (line.wires k)
Instances For
The input support of every gate in a program.
Equations
- One or more equations did not get rendered due to their size.
- Cslib.Circuits.Program.empty.gateSupport = Fin.elim0
Instances For
The input support of every input or gate wire in a program.
Equations
- program.wireSupport = Cslib.Circuits.Wire.elim (fun (k : Fin n) => {k}) program.gateSupport
Instances For
An input wire is supported only by that input.
A gate-output wire has the support of that gate.
The new gate is supported by precisely the inputs supporting the new line.
The new wire is supported by precisely the inputs supporting the new line.
The input support of every designated output wire in a circuit.
Equations
- c.outputSupport = c.program.wireSupport ∘ c.outputs
Instances For
The union of the input supports of a circuit's outputs.
Equations
Instances For
An input supports a circuit exactly when it supports a designated output wire.
Program gates agree whenever their supporting inputs agree.
Program traces agree on any wire whose supporting inputs agree.
Circuit evaluation depends only on the circuit's structural input support.
A computed function depends only on the circuit's structural input support.
Legacy qualified name for structural support of a computed function.