Documentation

Complexitylib.Circuits.DepthThree.LowerBound.Internal.RestrictionProbability

Unrestricted depth-three lower bound: restriction probability #

Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a. Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/RestrictionProbability.lean

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

def Complexity.DepthThreeLowerBound.liveSet {V : Type uDepth1} [instFintypeV : Fintype V] (σ : Restriction V) :

The finite set of coordinates left live by a restriction.

Equations
Instances For
    @[simp]
    theorem Complexity.DepthThreeLowerBound.mem_liveSet {V : Type uDepth1} [instFintypeV : Fintype V] (σ : Restriction V) (v : V) :
    v ∈ liveSet σ ↔ σ v = none
    def Complexity.DepthThreeLowerBound.maskRestriction {V : Type uDepth1} [instDecidableEqV : DecidableEq V] (T : Finset V) (y : Cube V) :

    Build a restriction from a live-coordinate mask and fixed bits.

    Equations
    Instances For
      @[simp]
      theorem Complexity.DepthThreeLowerBound.maskRestriction_live {V : Type uDepth1} [instDecidableEqV : DecidableEq V] (T : Finset V) (y : Cube V) (v : V) (hv : v ∈ T) :
      @[simp]
      theorem Complexity.DepthThreeLowerBound.maskRestriction_fixed {V : Type uDepth1} [instDecidableEqV : DecidableEq V] (T : Finset V) (y : Cube V) (v : V) (hv : v ∉ T) :
      maskRestriction T y v = some (y v)
      @[simp]
      theorem Complexity.DepthThreeLowerBound.liveSet_maskRestriction {V : Type uDepth1} [instFintypeV : Fintype V] [instDecidableEqV : DecidableEq V] (T : Finset V) (y : Cube V) :
      @[simp]
      theorem Complexity.DepthThreeLowerBound.fill_maskRestriction {V : Type uDepth1} [instDecidableEqV : DecidableEq V] (T : Finset V) (y : Cube V) :
      (fill (maskRestriction T y) fun (v : Live (maskRestriction T y)) => y ↑v) = y
      @[simp]
      theorem Complexity.DepthThreeLowerBound.maskRestriction_fill {V : Type uDepth1} [instFintypeV : Fintype V] [instDecidableEqV : DecidableEq V] (σ : Restriction V) (z : Cube (Live σ)) :
      maskRestriction (liveSet σ) (fill σ z) = σ
      def Complexity.DepthThreeLowerBound.restrictionCoordinates {V : Type uDepth1} [instFintypeV : Fintype V] (s : (σ : Restriction V) × Cube (Live σ)) :

      Decompose a restriction into its mask and fixed assignments.

      Equations
      Instances For
        noncomputable def Complexity.DepthThreeLowerBound.restrictionCoordinatesEquiv {V : Type uDepth1} [instFintypeV : Fintype V] [instDecidableEqV : DecidableEq V] :
        (σ : Restriction V) × Cube (Live σ) ≃ Finset V × Cube V

        Identify restrictions with their masks and fixed-coordinate assignments.

        Equations
        Instances For
          @[simp]
          theorem Complexity.DepthThreeLowerBound.restrictionCoordinatesEquiv_apply {V : Type uDepth1} [instFintypeV : Fintype V] [instDecidableEqV : DecidableEq V] (s : (σ : Restriction V) × Cube (Live σ)) :
          @[simp]
          theorem Complexity.DepthThreeLowerBound.card_live_maskRestriction {V : Type uDepth1} [instFintypeV : Fintype V] [instDecidableEqV : DecidableEq V] (T : Finset V) (y : Cube V) :
          theorem Complexity.DepthThreeLowerBound.restrictionWeight_maskRestriction {V : Type uDepth1} [instFintypeV : Fintype V] [instDecidableEqV : DecidableEq V] (p : ℝ) (T : Finset V) (y : Cube V) :
          theorem Complexity.DepthThreeLowerBound.restriction_mask_joint_weight {V : Type uDepth1} [instFintypeV : Fintype V] [instDecidableEqV : DecidableEq V] (p : ℝ) (T : Finset V) (y : Cube V) :
          theorem Complexity.DepthThreeLowerBound.restriction_fill_joint_weight {V : Type uDepth1} [instFintypeV : Fintype V] [instDecidableEqV : DecidableEq V] (p : ℝ) (σ : Restriction V) (z : Cube (Live σ)) :
          theorem Complexity.DepthThreeLowerBound.restrictionAvg_fill_coupling {V : Type uDepth1} [instFintypeV : Fintype V] [instDecidableEqV : DecidableEq V] (p : ℝ) (F : Restriction V → Cube V → ℝ) :
          (restrictionAvg p fun (σ : Restriction V) => finiteAvg fun (z : Cube (Live σ)) => F σ (fill σ z)) = ∑ T : Finset V, bernoulliWeight p T * finiteAvg fun (y : Cube V) => F (maskRestriction T y) y
          theorem Complexity.DepthThreeLowerBound.restrictionAvg_fill_reweight {V : Type uDepth1} [instFintypeV : Fintype V] [instDecidableEqV : DecidableEq V] (p : ℝ) (F : Restriction V → Cube V → ℝ) :
          (restrictionAvg p fun (σ : Restriction V) => finiteAvg fun (z : Cube (Live σ)) => F σ (fill σ z)) = finiteAvg fun (y : Cube V) => ∑ T : Finset V, bernoulliWeight p T * F (maskRestriction T y) y
          theorem Complexity.DepthThreeLowerBound.restrictionAvg_fill {V : Type uDepth1} [instFintypeV : Fintype V] [instDecidableEqV : DecidableEq V] (p : ℝ) (F : Cube V → ℝ) :
          (restrictionAvg p fun (σ : Restriction V) => finiteAvg fun (z : Cube (Live σ)) => F (fill σ z)) = finiteAvg F
          theorem Complexity.DepthThreeLowerBound.restrictionAvg_mask_sampler {V : Type uDepth1} [instFintypeV : Fintype V] [instDecidableEqV : DecidableEq V] (p : ℝ) (F : Restriction V → ℝ) :
          restrictionAvg p F = ∑ T : Finset V, bernoulliWeight p T * finiteAvg fun (y : Cube V) => F (maskRestriction T y)