Circuit input support #
This file computes the original inputs that can affect each wire and proves
that circuit evaluation depends only on those inputs. An input on which a function depends
essentially (EssentialAt) therefore reaches an output of every circuit computing it.
Main definitions #
Cslib.Circuits.EssentialAt: coordinates whose change can change a function.Cslib.Circuits.Program.wireSupport,Cslib.Circuits.Circuit.inputSupport.
Main results #
Cslib.Circuits.Circuit.dependsOn_eval: a circuit depends only on its input support.
The support interpretation unions the supports of a gate's argument wires.
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.
An input supports a circuit exactly when it supports a designated output wire.
Program traces agree on any wire whose supporting inputs agree.
Program gates agree whenever their 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.