Existential convolution on the Boolean cube #
BitString.orConvolution f g x asks whether x = a + b for accepted inputs a of f and
b of g. The group operation is coordinatewise exclusive or, and the aggregation is
existential disjunction. Thus its accepted set is the sumset of the accepted sets of f and
g. It does not count representations or take their parity.
Main definitions #
Cslib.BitString.orConvolution: existential convolution of Boolean functions.
Main results #
Cslib.BitString.orConvolution_eq_true_iff_exists_add: the sumset characterization.Cslib.BitString.orConvolution_comm: existential convolution is commutative.
Existential XOR convolution: some accepted input of f, added to some accepted input of
g, equals the requested output.
Instances For
Existential convolution accepts exactly the sums of accepted inputs.
Swapping the two input functions preserves existential convolution.
An empty accepted set has empty convolution with every Boolean function.
An empty accepted set on the right also has empty convolution.
Convolving a point indicator with g translates g.