Sensitivity and block sensitivity #
The measures of Section 1.1 of bs_lambda.txt:
sensCoords f xis the set of coordinates sensitive atx, andsensAt f xiss(f,x), its cardinality;sens fiss(f);bsAt f xisbs(f,x), the largest number of pairwise disjoint sensitive blocks atx;bs fisbs(f).
bsAt is defined as a supremum over ℕ of the set of cardinalities of admissible
families; the set is bounded above, so le_bsAt_of_family gives the lower bounds we need.
card_le_bs_of_blocks packages the usual way to apply it: from an indexed family of
nonempty, pairwise disjoint sensitive blocks.
Adapted for Lean Pool from Timeroot/BS_Lam at commit
7bd39a8d41ee7910d3296d0477ad18f8fff9d870; ported to Lean Pool with proof and dependency cleanup.
A missing Set lemma #
Mathlib has the iSupIndep analogue (iSupIndep.injOn) but not the PairwiseDisjoint one;
it belongs next to Set.injOn_iff_pairwise_ne in Mathlib/Data/Set/Pairwise/Basic.lean.
A coordinate v is sensitive for f at x when flipping it changes the value.
Equations
- BSLambda.SensitiveCoord f x v = (f (BSLambda.flipSet x {v}) ≠ f x)
Instances For
Equations
- BSLambda.instDecidableSensitiveCoord f x v = { decide := !decide (f (BSLambda.flipSet x {v}) = f x), reflects_decide := ⋯ }
The sensitive coordinates of f at x.
Equations
- BSLambda.sensCoords f x = {v : V | BSLambda.SensitiveCoord f x v}
Instances For
s(f,x): the number of sensitive coordinates at x.
Equations
- BSLambda.sensAt f x = (BSLambda.sensCoords f x).card
Instances For
Any Finset containing every sensitive coordinate at x bounds s(f,x).
If every coordinate is sensitive at x then s(f,x) counts all coordinates.
s(f): the sensitivity of f.
Equations
Instances For
The usual way to exhibit a sensitive block: a nonempty A that turns f from false
to true.
A family of pairwise disjoint sensitive blocks at x.
- sensitive (A : Finset V) : A ∈ 𝓑 → IsSensitiveBlock f x A
- disjoint : (↑𝓑).PairwiseDisjoint id
Instances For
bs(f,x): the maximum number of pairwise disjoint sensitive blocks at x.
Equations
- BSLambda.bsAt f x = sSup (BSLambda.blockFamilyCards f x)
Instances For
bs(f): the block sensitivity of f.
Equations
- BSLambda.bs f = Finset.univ.sup (BSLambda.bsAt f)
Instances For
Exhibiting a family of pairwise disjoint sensitive blocks bounds bsAt from below.
The main lower-bound interface for block sensitivity.
Sensitive blocks indexed by a Finset ι and pairwise disjoint on it form a block family.
An indexed family of pairwise disjoint sensitive blocks bounds bs from below. The blocks
are automatically pairwise distinct, being nonempty and pairwise disjoint.