Documentation

Complexity.Computability.QueryComplexity.SensitivitySeparation.Internal.RecursiveChildren

Superquadratic sensitivity separation: recursive children #

This file counts the child positions read by a single row clause: the r target children of its own row together with one labeled gate child for each out-neighbour. These two sets are disjoint because tournaments are loopless, so for a regular tournament on 2 * M ^ 2 + 1 vertices every row clause reads exactly r + M ^ 2 children.

Main definitions #

Main results #

References #

noncomputable def Cslib.QueryComplexity.SensitivitySeparation.Internal.rowChildren {k r : ℕ} (T : Tournament k) (label : Fin k → Fin k → Fin r) (i : Fin k) :

Child positions used by a row clause, including its targets and outgoing gates.

Instances For
    theorem Cslib.QueryComplexity.SensitivitySeparation.Internal.rowChildren_disjoint {k r : ℕ} (T : Tournament k) (label : Fin k → Fin k → Fin r) (i : Fin k) :
    Disjoint (Finset.image (fun (c : Fin r) => (i, c)) Finset.univ) (Finset.image (fun (j : Fin k) => (j, label i j)) (Finset.filter (T.Adj i) Finset.univ))

    The target positions (i, c) of row i are disjoint from its gate positions (j, label i j) for the out-neighbours j of i.

    The clause of row i reads exactly r + d child positions, where d is the outdegree of i.

    theorem Cslib.QueryComplexity.SensitivitySeparation.Internal.regular_rowChildren_card {M r : ℕ} (T : RegularTournament M) (label : Fin (2 * M ^ 2 + 1) → Fin (2 * M ^ 2 + 1) → Fin r) (i : Fin (2 * M ^ 2 + 1)) :
    (rowChildren T.toTournament label i).card = r + M ^ 2

    In a regular tournament on 2 * M ^ 2 + 1 vertices, every row clause reads exactly r + M ^ 2 child positions.