Inner gates #
A gate of arity zero is a constant: like an input, it is a leaf of the circuit. The inner gates of a program are its gates of positive arity, and the inner size of a circuit counts them. A lower bound that holds over every basis can only count inner gates, since every value of the alphabet may be a constant gate of the basis.
Main definitions #
Cslib.Circuits.Program.innerGates: the gates of positive arity.Cslib.Circuits.Circuit.innerSize: the number of gates of positive arity.
Main results #
Cslib.Circuits.Circuit.innerSize_le_size: constant gates are free.Cslib.Circuits.Circuit.innerSize_eq_size_of_forall_arity_ne_zero: without constant symbols, the inner size equals the size.Cslib.Circuits.Program.fanInAtMost_of_forall_arity_le,Cslib.Circuits.Circuit.fanInAtMost_of_forall_arity_le,Cslib.Circuits.Circuit.fanInAtMost_fullSignature: fan-in bounds from signature arities.Cslib.Circuits.Circuit.innerSize_eq_zero_of_fanInAtMost_zero: without arguments every gate is a constant.
theorem Cslib.Circuits.Circuit.innerSize_eq_zero_of_fanInAtMost_zero {σ : Signature} {n m : ℕ} {c : Circuit σ n m} (h : c.FanInAtMost 0) :
Without arguments every gate is a constant, so a circuit of fan-in zero has inner size zero.
theorem Cslib.Circuits.Program.fanInAtMost_of_forall_arity_le {σ : Signature} {n g : ℕ} (p : Program σ n g) {r : ℕ} (h : ∀ (op : σ.Op), σ.Arity op ≤ r) :
p.FanInAtMost r
If every operation symbol has arity at most r, every program over the signature has fan-in at
most r.
theorem Cslib.Circuits.Circuit.fanInAtMost_of_forall_arity_le {σ : Signature} {n m : ℕ} (c : Circuit σ n m) {r : ℕ} (h : ∀ (op : σ.Op), σ.Arity op ≤ r) :
c.FanInAtMost r
If every operation symbol has arity at most r, every circuit over the signature has fan-in at
most r.
theorem Cslib.Circuits.Circuit.fanInAtMost_fullSignature {n m : ℕ} {U : Type u_1} {r : ℕ} (c : Circuit (fullSignature r U) n m) :
c.FanInAtMost r
Every circuit over the full basis of arity r has fan-in at most r.