Boolean functions on the hypercube #
A Boolean function is a map {0,1}ⁿ → {0,1}, shared across the library as
Cslib.BooleanFunction on Cslib.BitString n. This file sets up block flips, which are the moves
of sensitivity and block sensitivity, and partial assignments. The complexity measures are built in
Measures.lean.
Main definitions #
BitString.flipBlock B x:xwith every coordinate ofBflipped.Block n: a set of coordinates.PartialAssignment n: a partial assignment, fixing some coordinates and leaving others free.restrict x S: the partial assignment reading offxon the coordinates inS.Agrees: An input is consistent with a partial assignment.
References #
- S. Arora, B. Barak, Computational Complexity: A Modern Approach, Chapter 12 (Decision Trees); the notions defined here underpin Sections 12.2 and 12.5.1.
- H. Buhrman, R. de Wolf, Complexity measures and decision tree complexity: a survey
Flipping blocks of bits #
Flipping a block is an involution.
A block: a set of coordinates.
Instances For
Partial assignments #
C i = some b fixes coordinate i to b; C i = none leaves it free.
Instances For
The coordinates the partial assignment fixes.
Instances For
How many coordinates the partial assignment fixes.
Instances For
x agrees with C when it matches C on every fixed coordinate.
Instances For
The total assignment reading off every coordinate of x.
Instances For
A total assignment read off x is agreed with by x alone.
Reading off the whole input fixes all n coordinates.
The partial assignment reading off x on the coordinates only in S.
Instances For
A partial assignment consistent with x is x restricted to its support.