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.
A gate k belongs to p.innerGates if and only if its operation has nonzero arity.
Without arguments every gate is a constant, so a circuit of fan-in zero has inner size zero.
If every operation symbol has arity at most r, every program over the signature has fan-in at
most r.
If every operation symbol has arity at most r, every circuit over the signature has fan-in at
most r.
Every circuit over the full basis of arity r has fan-in at most r.