Documentation

Complexity.Computability.QueryComplexity.SensitivitySeparation.Internal.RecursiveFailures

Superquadratic sensitivity separation: recursive failures #

For a fixed input x of the recursive construction, a row clause i fails either because the final predicate rejects a target child in row i or because a gate predicate accepts the labeled child along an outgoing edge of i. This file collects these failures, singles out the rows with exactly one failed condition (target candidates and gate candidates) together with a chosen witness, and shows that there are fewer than 16 target candidates (by the good-labeling property) and at most 3 gate candidates (by an internal edge count).

Main definitions #

Main results #

References #

def Cslib.QueryComplexity.SensitivitySeparation.Internal.targetFailures {k r h : ℕ} {I : Type} (F : Fin (h + 1) → (I → Bool) → Bool) (x : (Fin k × Fin r) × I → Bool) (i : Fin k) :

The columns of a row whose target predicates reject.

Instances For
    noncomputable def Cslib.QueryComplexity.SensitivitySeparation.Internal.gateFailures {k r h : ℕ} {I : Type} (T : Tournament k) (label : Fin k → Fin k → Fin r) (F : Fin (h + 1) → (I → Bool) → Bool) (q : Fin h) (x : (Fin k × Fin r) × I → Bool) (i : Fin k) :

    Outgoing neighbors whose gate predicates accept, violating their row conditions.

    Instances For
      noncomputable def Cslib.QueryComplexity.SensitivitySeparation.Internal.targetCandidates {k r h : ℕ} {I : Type} (T : Tournament k) (label : Fin k → Fin k → Fin r) (F : Fin (h + 1) → (I → Bool) → Bool) (q : Fin h) (x : (Fin k × Fin r) × I → Bool) :

      Rows with exactly one failed target and no failed gate condition.

      Instances For
        noncomputable def Cslib.QueryComplexity.SensitivitySeparation.Internal.gateCandidates {k r h : ℕ} {I : Type} (T : Tournament k) (label : Fin k → Fin k → Fin r) (F : Fin (h + 1) → (I → Bool) → Bool) (q : Fin h) (x : (Fin k × Fin r) × I → Bool) :

        Rows with no failed target and exactly one failed gate condition.

        Instances For
          noncomputable def Cslib.QueryComplexity.SensitivitySeparation.Internal.targetWitness {k r h : ℕ} {I : Type} (F : Fin (h + 1) → (I → Bool) → Bool) (x : (Fin k × Fin r) × I → Bool) (hr : 0 < r) (i : Fin k) :
          Fin r

          Choose a failed target column, with column zero as fallback.

          Instances For
            noncomputable def Cslib.QueryComplexity.SensitivitySeparation.Internal.gateWitness {k r h : ℕ} {I : Type} (T : Tournament k) (label : Fin k → Fin k → Fin r) (F : Fin (h + 1) → (I → Bool) → Bool) (q : Fin h) (x : (Fin k × Fin r) × I → Bool) (i : Fin k) :
            Fin k

            Choose a failed gate neighbor, with the row itself as fallback.

            Instances For
              theorem Cslib.QueryComplexity.SensitivitySeparation.Internal.targetFailures_empty_iff {k r h : ℕ} {I : Type} (F : Fin (h + 1) → (I → Bool) → Bool) (x : (Fin k × Fin r) × I → Bool) (i : Fin k) :
              targetFailures F x i = ∅ ↔ ∀ (c : Fin r), F (Fin.last h) (recursiveChild x i c) = true

              A row i has no failed target if and only if the final predicate F (Fin.last h) accepts every child recursiveChild x i c of that row.

              theorem Cslib.QueryComplexity.SensitivitySeparation.Internal.gateFailures_empty_iff {k r h : ℕ} {I : Type} (T : Tournament k) (label : Fin k → Fin k → Fin r) (F : Fin (h + 1) → (I → Bool) → Bool) (q : Fin h) (x : (Fin k × Fin r) × I → Bool) (i : Fin k) :
              gateFailures T label F q x i = ∅ ↔ ∀ (j : Fin k), T.Adj i j → F (gateIndex q) (recursiveChild x j (label i j)) = false

              A row i has no failed gate if and only if, for every outgoing neighbor j of i, the gate predicate F (gateIndex q) rejects the child recursiveChild x j (label i j).

              theorem Cslib.QueryComplexity.SensitivitySeparation.Internal.targetFailures_singleton {k r h : ℕ} {I : Type} (T : Tournament k) (label : Fin k → Fin k → Fin r) (F : Fin (h + 1) → (I → Bool) → Bool) (q : Fin h) (x : (Fin k × Fin r) × I → Bool) (hr : 0 < r) (i : Fin k) (hi : i ∈ targetCandidates T label F q x) :

              For a target candidate i, the set of failed target columns is exactly {targetWitness F x hr i}.

              theorem Cslib.QueryComplexity.SensitivitySeparation.Internal.gateFailures_singleton {k r h : ℕ} {I : Type} (T : Tournament k) (label : Fin k → Fin k → Fin r) (F : Fin (h + 1) → (I → Bool) → Bool) (q : Fin h) (x : (Fin k × Fin r) × I → Bool) (i : Fin k) (hi : i ∈ gateCandidates T label F q x) :
              gateFailures T label F q x i = {gateWitness T label F q x i}

              For a gate candidate i, the set of failed gate neighbors is exactly {gateWitness T label F q x i}.

              theorem Cslib.QueryComplexity.SensitivitySeparation.Internal.targetCandidates_card {k r h : ℕ} {I : Type} (T : Tournament k) (A : GoodLabeling T r) (F : Fin (h + 1) → (I → Bool) → Bool) (hF : NestedFamily F) (q : Fin h) (x : (Fin k × Fin r) × I → Bool) (hr : 0 < r) :
              (targetCandidates T A.label F q x).card < 16

              For a good labeling A and a nested family F, there are fewer than 16 target candidates: their witnesses form a target assignment that A.label respects on all internal edges.

              theorem Cslib.QueryComplexity.SensitivitySeparation.Internal.gateCandidates_neighbor {k r h : ℕ} {I : Type} (T : Tournament k) (label : Fin k → Fin k → Fin r) (F : Fin (h + 1) → (I → Bool) → Bool) (hF : NestedFamily F) (q : Fin h) (x : (Fin k × Fin r) × I → Bool) (i j : Fin k) (hi : i ∈ gateCandidates T label F q x) (hj : j ∈ gateCandidates T label F q x) (hij : T.Adj i j) :
              j = gateWitness T label F q x i

              If F is nested and i → j is an edge between two gate candidates, then j is the gate witness of i.

              theorem Cslib.QueryComplexity.SensitivitySeparation.Internal.gateCandidates_card {k r h : ℕ} {I : Type} (T : Tournament k) (label : Fin k → Fin k → Fin r) (F : Fin (h + 1) → (I → Bool) → Bool) (hF : NestedFamily F) (q : Fin h) (x : (Fin k × Fin r) × I → Bool) :
              (gateCandidates T label F q x).card ≤ 3

              If F is nested, there are at most 3 gate candidates, since each has internal outdegree at most one among them.