Documentation

Complexity.Computability.QueryComplexity.SensitivitySeparation.Internal.Reindex

Superquadratic sensitivity separation: reindex #

Transport reindex e f of a Boolean function f along an equivalence e : I ≃ J of coordinate types. Sensitivity and block sensitivity, both pointwise and global, are invariant under reindexing, which allows functions on structured coordinate types to be moved onto an ordinary finite Boolean cube.

Main definitions #

Main results #

References #

def Cslib.QueryComplexity.SensitivitySeparation.Internal.reindex {I J : Type} (e : I ≃ J) (f : (I → Bool) → Bool) :
(J → Bool) → Bool

Transport a Boolean function along an equivalence of its coordinate types.

Instances For
    @[simp]

    Reindexing along e and then along e.symm recovers the original function.

    theorem Cslib.QueryComplexity.SensitivitySeparation.Internal.sensitivityAt_reindex {I J : Type} [Fintype I] [Fintype J] (e : I ≃ J) (f : (I → Bool) → Bool) (x : J → Bool) :
    sensitivityAt (reindex e f) x = sensitivityAt f fun (i : I) => x (e i)

    The sensitivity of reindex e f at x equals the sensitivity of f at the pullback fun i => x (e i).

    Reindexing preserves sensitivity: sensitivity (reindex e f) = sensitivity f.

    theorem Cslib.QueryComplexity.SensitivitySeparation.Internal.blockSensitivityAt_reindex {I J : Type} [Fintype I] [Fintype J] (e : I ≃ J) (f : (I → Bool) → Bool) (x : J → Bool) :
    blockSensitivityAt (reindex e f) x = blockSensitivityAt f fun (i : I) => x (e i)

    The block sensitivity of reindex e f at x equals the block sensitivity of f at the pullback fun i => x (e i).

    Reindexing preserves block sensitivity: blockSensitivity (reindex e f) = blockSensitivity f.