Support coverage by dictionary circuits #
Interpret addition as finite-set union and a dictionary term as its prescribed support. Nonmembership of a target element is preserved by addition, so every covered target element must first appear at a dictionary gate. A local coverage bound therefore gives a weighted dictionary-cost lower bound. Shared gates are counted once; free supplied inputs must be disjoint from the target. The ambient support type may be infinite.
These are circuits of supports, with union as the operation. Applying the result to polynomial supports requires a separate semantic bridge; cancellation is not silently treated as union.
Main definitions #
Cslib.Circuits.SumOfTerms.supportInterpretation: dictionary supports with union gates.
Main results #
Cslib.Circuits.SumOfTerms.card_le_mul_dictionaryCost: weighted coverage bound for any wire.Cslib.Circuits.SumOfTerms.ceilDiv_card_le_termCost: term-count bound for any selected output.Cslib.Circuits.SumOfTerms.card_le_termCost_of_separated: one term per target element when each dictionary support meets the target in at most one element.
References #
- Adapted from LowerBound/Fusion/SumOfTerms/Coverage.lean in S. Schlesinger, Algebraic circuit formalizations in Complexitylib.
Interpret dictionary terms by finite supports and addition by union.
Instances For
Union cannot introduce an element absent from both arguments.
A nullary dictionary gate fails exactly at the target elements in its support.
Covering a target disjoint from the supplied inputs costs enough to pay for its elements. Capacity zero is allowed: it forces the covered target to be empty.
If each dictionary support covers at most capacity target elements, divide the target
size by that positive capacity and round up. Other circuit outputs are unrestricted.
A dictionary whose terms cover at most one target element needs at least target.card
terms, even when terms are shared by several additions.