Circuit semantics #
This file contains the small semantic vocabulary used by circuit lower bounds.
Circuit.ComputesWith is generic in the interpretation and number of outputs;
it agrees definitionally with CSLib's Circuit.Computes.
A single-output function on n inputs over U.
Equations
- Algebraic.ScalarFunction U n = ((Fin n → U) → U)
Instances For
An m-output function on n inputs over U.
Equations
- Algebraic.Target U n m = ((Fin n → U) → Fin m → U)
Instances For
The scalar function carried by one designated output wire.
Equations
- circuit.outputFunction interpretation output input = circuit.eval interpretation input output
Instances For
Exact pointwise computation of a function by a circuit.
Equations
- c.ComputesWith interpretation target = ∀ (input : Fin n → U), c.eval interpretation input = target input
Instances For
Legacy qualified name for generic circuit computation. Use
circuit.ComputesWith interpretation target with field notation.
Equations
- Algebraic.Circuit.Computes circuit interpretation target = circuit.ComputesWith interpretation target
Instances For
Pointwise computation gives equality of the computed and target functions.
Legacy qualified name for equality of the computed and target functions.
A target is gate-hard at budget G when no circuit with at most G
internal gates computes it.
Equations
- Cslib.Circuits.Circuit.GateHard interpretation G target = ∀ (circuit : Cslib.Circuits.Circuit σ n m), circuit.size ≤ G → ¬circuit.ComputesWith interpretation target
Instances For
A target is depth-hard at depth when every circuit computing it has
strictly greater depth.
Equations
- Cslib.Circuits.Circuit.DepthHard interpretation depth target = ∀ (circuit : Cslib.Circuits.Circuit σ n m), circuit.ComputesWith interpretation target → depth < circuit.depth
Instances For
An interpretation is functionally complete if every finite-arity, finite-output target has some circuit.
Equations
- interpretation.FunctionallyComplete = ∀ (n m : ℕ) (target : Algebraic.Target U n m), ∃ (circuit : Cslib.Circuits.Circuit σ n m), circuit.ComputesWith interpretation target
Instances For
A function depends only on the input coordinates in support.
Equations
- Algebraic.DependsOnlyOn function support = ∀ (left right : Fin n → U), (∀ k ∈ support, left k = right k) → function left = function right
Instances For
Every essential coordinate belongs to any support of the function.