Documentation

Complexity.Computability.Circuit.Boolean.AffineDisperser.Reparameterisation

Affine and quadratic reparameterisations #

The reparameterisations (AR) and (QR) of Mishra and Santhanam, Section 3.2 on states of gate elimination. Both change the parameters bijectively, so the image of the parameter map is unchanged:

Main definitions #

Main results #

References #

Affine reparameterisation (AR) #

Exchange the parameter x with the auxiliary variable Q = c + ∑ j ∈ T, u j depending on it: Q becomes a parameter, x an auxiliary variable, and the parameter map substitutes x = Q + c + ∑ j ∈ T \ {x}, u j. No equation or gate changes.

Instances For

    The hypotheses of the affine reparameterisation.

    Instances For
      @[simp]
      theorem Cslib.Circuits.Boolean.AffineDisperser.State.swap_params {n : ℕ} (S : State n) (x Q : ℕ) (c : Bool) (T : Finset ℕ) :
      (S.swap x Q c T).params = insert Q (S.params.erase x)

      Exchanging x and Q replaces x with Q in S.params.

      @[simp]
      theorem Cslib.Circuits.Boolean.AffineDisperser.State.swap_pairs {n : ℕ} (S : State n) (x Q : ℕ) (c : Bool) (T : Finset ℕ) :
      (S.swap x Q c T).pairs = S.pairs

      Exchanging x and Q preserves the pairs of the state.

      theorem Cslib.Circuits.Boolean.AffineDisperser.State.swap_size {n : ℕ} (S : State n) (x Q : ℕ) (c : Bool) (T : Finset ℕ) :
      (S.swap x Q c T).size = S.size

      Exchanging x and Q preserves the size of the state.

      theorem Cslib.Circuits.Boolean.AffineDisperser.State.swap_children {n : ℕ} (S : State n) (x Q : ℕ) (c : Bool) (T : Finset ℕ) (z : ℕ) :
      (S.swap x Q c T).children z = S.children z

      Exchanging x and Q preserves the children of every variable.

      theorem Cslib.Circuits.Boolean.AffineDisperser.State.Valid.swap {n : ℕ} {f : BooleanFunction n} {S : State n} (hS : S.Valid f) {x Q : ℕ} {c : Bool} {T : Finset ℕ} (h : S.SwapOK x Q c T) :
      (S.swap x Q c T).Valid f

      The affine reparameterisation preserves validity.

      Quadratic reparameterisation (QR) #

      def Cslib.Circuits.Boolean.AffineDisperser.State.quad {n : ℕ} (S : State n) (x y z G D : ℕ) (α β γ c : Bool) :

      The quadratic reparameterisation: for an AND-type gate G = (x + α)(y + β) + γ whose only child is the XOR-type gate D = G + z + c, where z is an isolated parameter, substitute z = D + G + c in the parameter map, turn D into a parameter (it computes the new parameter w of the source), delete the gates G and D, and pair x with y.

      Instances For
        structure Cslib.Circuits.Boolean.AffineDisperser.State.QuadOK {n : ℕ} (S : State n) (x y z G D : ℕ) (α β γ c : Bool) extends S.QuadOK x y z G D α β γ c :

        The hypotheses of the quadratic reparameterisation: the configuration of SemiCircuit.QuadOK on unpaired parameters.

        Instances For
          @[simp]
          theorem Cslib.Circuits.Boolean.AffineDisperser.State.quad_params {n : ℕ} (S : State n) (x y z G D : ℕ) (α β γ c : Bool) :
          (S.quad x y z G D α β γ c).params = insert D (S.params.erase z)

          The quadratic reparameterisation replaces z with D in S.params.

          @[simp]
          theorem Cslib.Circuits.Boolean.AffineDisperser.State.quad_pairs {n : ℕ} (S : State n) (x y z G D : ℕ) (α β γ c : Bool) :
          (S.quad x y z G D α β γ c).pairs = insert (x, y) S.pairs

          The quadratic reparameterisation inserts (x, y) into S.pairs.

          theorem Cslib.Circuits.Boolean.AffineDisperser.State.quad_size {n : ℕ} {S : State n} {x y z G D : ℕ} {α β γ c : Bool} (h : S.QuadOK x y z G D α β γ c) :
          (S.quad x y z G D α β γ c).size + 2 = S.size

          The quadratic reparameterisation decreases the size of the state by 2.

          theorem Cslib.Circuits.Boolean.AffineDisperser.State.quad_children_subset {n : ℕ} (S : State n) (x y z G D : ℕ) (α β γ c : Bool) (w : ℕ) :
          (S.quad x y z G D α β γ c).children w ⊆ ((S.children w).erase (Sum.inl D)).erase (Sum.inl G)

          After the quadratic reparameterisation, the children of w are contained in S.children w with .inl D and .inl G removed.

          theorem Cslib.Circuits.Boolean.AffineDisperser.State.QuadOK.pair_mem {n : ℕ} {f : BooleanFunction n} {S : State n} {x y z G D : ℕ} {α β γ c : Bool} (h : S.QuadOK x y z G D α β γ c) (hS : S.Valid f) (pr : ℕ × ℕ) :
          pr ∈ (S.quad x y z G D α β γ c).pairs → pr.1 ∈ (S.quad x y z G D α β γ c).params ∧ pr.2 ∈ (S.quad x y z G D α β γ c).params ∧ pr.1 ≠ pr.2

          The pairs after the quadratic reparameterisation are disjoint pairs of parameters.

          theorem Cslib.Circuits.Boolean.AffineDisperser.State.Valid.quad {n : ℕ} {f : BooleanFunction n} {S : State n} (hS : S.Valid f) {x y z G D : ℕ} {α β γ c : Bool} (h : S.QuadOK x y z G D α β γ c) :
          (S.quad x y z G D α β γ c).Valid f

          The quadratic reparameterisation preserves validity.