Exact circuit syntax counts #
This file equips lines, programs, and circuits over a finite signature with finite enumerations and proves exact formulas for their cardinalities.
@[instance_reducible]
Equations
- Algebraic.instFintypeLine = Fintype.ofEquiv ((op : σ.Op) × (Fin (σ.Arity op) → Cslib.Circuits.Wire n g)) (Algebraic.lineEquiv σ n g).symm
A zero-gate program carries no data.
Equations
- Algebraic.programZeroEquiv σ n = { toFun := fun (x : Cslib.Circuits.Program σ n 0) => (), invFun := fun (x : Unit) => Cslib.Circuits.Program.empty, left_inv := ⋯, right_inv := ⋯ }
Instances For
@[instance_reducible]
Recursive finite enumeration of straight-line programs.
Equations
Instances For
@[instance_reducible]
Equations
Exact number of topologically ordered programs.
A circuit with exactly g gates is its program paired with its designated
output wires.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
- Algebraic.instFintypeCircuit = Fintype.ofEquiv (Cslib.Circuits.Program σ n g × (Fin m → Cslib.Circuits.Wire n g)) (Algebraic.circuitEquiv σ n g m).symm
Number of functions from U^n to U^m.
Equations
- Algebraic.Target.count U n m = Nat.card (Algebraic.Target U n m)