Documentation

Complexity.Computability.Circuit.Boolean.AffineDisperser.Rewiring

Moving and rewiring gates of states #

The preparatory operations of Mishra and Santhanam, Sections 4.1 and 4.2 that change only gates, on states of gate elimination:

Both keep the parameters, the pairs and the parameter map.

Main definitions #

Main results #

References #

Moving affine gates into the affine system #

Move the affine gate J into the affine system as the auxiliary variable J with the new equation e.

Instances For
    @[simp]

    Moving an affine gate into the affine system preserves the parameters of the state.

    @[simp]

    Moving an affine gate into the affine system preserves the pairs of the state.

    Moving an affine gate into the affine system preserves the size of the state.

    Moving an affine gate into the affine system decreases the number of gates by 1.

    theorem Cslib.Circuits.Boolean.AffineDisperser.State.moveAffine_deg_le {n : ℕ} {f : BooleanFunction n} {S : State n} (hS : S.Valid f) {J e : ℕ} (h : S.MoveOK J e) {z : ℕ} (hz : z ∈ S.params) :
    (S.moveAffine J e).deg z ≤ S.deg z

    Moving a gate into the affine system does not increase the degree of any parameter.

    theorem Cslib.Circuits.Boolean.AffineDisperser.State.Valid.moveAffine {n : ℕ} {f : BooleanFunction n} {S : State n} (hS : S.Valid f) {J e : ℕ} (h : S.MoveOK J e) :
    (S.moveAffine J e).Valid f

    Moving an affine gate reading no gates into the affine system preserves validity.

    Rewiring a gate #

    Replace the gate J by the gate g.

    Instances For
      @[simp]

      Rewiring a gate preserves the parameters of the state.

      @[simp]

      Rewiring a gate preserves the pairs of the state.

      Rewiring a gate preserves the size of the state.

      Rewiring a gate preserves the set of gate names.

      A gate K is a child of z in S.rewire J g iff K ∈ S.gates and the gate at K (which is g when K = J) reads z.

      Rewiring a gate preserves the equation children of every variable.

      theorem Cslib.Circuits.Boolean.AffineDisperser.State.Valid.rewire {n : ℕ} {f : BooleanFunction n} {S : State n} (hS : S.Valid f) {J : ℕ} {g : SemiCircuit.Gate} (h : S.RewireOK J g) :
      (S.rewire J g).Valid f

      Rewiring a gate preserves validity.