Documentation

Complexitylib.BooleanAnalysis.Sensitivity.Internal.RecursiveDefinitions

Sensitivity separation: recursive definitions #

Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a. Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Combinatorics/Sensitivity/RecursiveDefinitions.lean

Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical proofs are retained.

def Complexity.BooleanAnalysis.Sensitivity.Internal.recursiveChild {k r : ℕ} {I : Type} (x : (Fin k × Fin r) × I → Bool) (j : Fin k) (c : Fin r) :
I → Bool

Restrict a recursive input to one row and column of child coordinates.

Equations
Instances For

    The reversed gate index among all indices except the final target index.

    Equations
    Instances For
      noncomputable def Complexity.BooleanAnalysis.Sensitivity.Internal.rowClause {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) :

      A clause uses every target in its own row and one labeled gate per outgoing edge.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        noncomputable def Complexity.BooleanAnalysis.Sensitivity.Internal.recursiveFamily {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) :

        The next-level predicate is the disjunction of the literal row clauses.

        Equations
        Instances For
          theorem Complexity.BooleanAnalysis.Sensitivity.Internal.rowClause_eq_true_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) :
          rowClause T label F q x i = true ↔ (∀ (c : Fin r), F (Fin.last h) (recursiveChild x i c) = true) ∧ ∀ (j : Fin k), T.Adj i j → F (gateIndex q) (recursiveChild x j (label i j)) = false
          theorem Complexity.BooleanAnalysis.Sensitivity.Internal.recursiveFamily_eq_true_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) :
          recursiveFamily T label F q x = true ↔ ∃ (i : Fin k), rowClause T label F q x i = true
          theorem Complexity.BooleanAnalysis.Sensitivity.Internal.recursiveFamily_eq_false_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) :
          recursiveFamily T label F q x = false ↔ ∀ (i : Fin k), rowClause T label F q x i = false
          theorem Complexity.BooleanAnalysis.Sensitivity.Internal.rowClause_nested {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 q' : Fin h} (hqq : q ≤ q') (x : (Fin k × Fin r) × I → Bool) (i : Fin k) (hi : rowClause T label F q' x i = true) :
          rowClause T label F q x i = true
          theorem Complexity.BooleanAnalysis.Sensitivity.Internal.recursiveFamily_nested {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) :
          theorem Complexity.BooleanAnalysis.Sensitivity.Internal.recursiveFamily_zero {k r h : ℕ} {I : Type} (T : Tournament k) (label : Fin k → Fin k → Fin r) (F : Fin (h + 1) → (I → Bool) → Bool) (hr : 0 < r) (hzero : ∀ (q : Fin (h + 1)), (F q fun (x : I) => false) = false) (q : Fin h) :
          (recursiveFamily T label F q fun (x : (Fin k × Fin r) × I) => false) = false