Documentation

Complexity.Computability.Circuit.Boolean.AffineDisperser.Normal

Preliminary reductions of gate elimination #

The six preliminary reductions of Mishra and Santhanam, Section 4.1, each a step of gate elimination (State.Step) from a state whose configuration it names. Every reduction but the deletion (D4) of State.Valid.unit_delete is a State.Reduction, so its accounting is that of State.Reduction.step or State.Reduction.step_of_delete.

Before them, affine gates reading no gates are moved into the affine system (State.Valid.preparation_moveAffine). When no affine gate can be moved and neither Case 1 nor Case 2 applies, the state is exclusive (State.Valid.exclusive): no constraint has an unpaired isolated parameter and another parameter as parents. When none of the six cases applies, the state is normal (State.Normal, State.Valid.step_or_normal): it is exclusive, every parameter of the affine system is unpaired of degree at least two, and so is every parameter read by an AND-type gate.

Main definitions #

Main results #

References #

Case 2: an AND-type gate on an isolated parameter #

The configuration of Case 2: an AND-type gate reads an unpaired isolated parameter z and another parameter w.

Instances For

    Case 2 of the preliminary reductions: fix w so that the AND-type gate becomes constant and delete it; z becomes unused. If w is unpaired, Δa = -1 and ΔW ≤ -14; otherwise the partner of w becomes unpaired, Δa = 0 and ΔW ≤ -4.

    When Case 2 does not apply, an unpaired parameter read by an AND-type gate together with another parameter has degree at least two.

    Moving affine gates #

    An affine gate reading no gates, which is moved into the affine system before the preliminary reductions.

    Instances For

      A name larger than every equation name.

      Instances For

        Moving a movable gate into the affine system is a preparatory operation.

        Exclusive states #

        theorem Cslib.Circuits.Boolean.AffineDisperser.State.Valid.exclusive {n : ℕ} {f : BooleanFunction n} {S : State n} (hS : S.Valid f) (hmov : ∀ (J : ℕ), ¬S.Movable J) (hdel : ¬S.DeletionAvailable) (h2 : ¬S.AndOnIsolated) :

        Consequence of Cases 1 and 2 of Mishra and Santhanam: when no affine gate can be moved, no deletion applies and Case 2 does not apply, the unique child of an unpaired isolated parameter is a gate whose other input is not a parameter.

        Case 3: a paired parameter of degree other than one #

        The configuration of Case 3: a paired parameter has degree 0 or at least 2.

        Instances For
          theorem Cslib.Circuits.Boolean.AffineDisperser.State.Valid.step_of_degeneratePair {n : ℕ} {f : BooleanFunction n} {S : State n} (hS : S.Valid f) (hexcl : S.Exclusive) (h : S.DegeneratePair) :
          ∃ (S' : State n), Step f S S'

          Case 3 of the preliminary reductions. If a paired parameter p is unused, fixing its partner removes the pair: Δa = 0, ΔW ≤ -3. If p has two children, fixing p makes both deletable; the partner becomes unpaired and no other weight grows: Δa = 0, ΔW ≤ 0.

          Case 4: partners with a common child #

          A gate whose operation is a projection or a negated projection computes a literal of an input, so (D1) applies.

          A gate with a constant operation computes a constant, so (D1) applies.

          theorem Cslib.Circuits.Boolean.AffineDisperser.State.Valid.eq_insert_of_mem_terms {n : ℕ} {f : BooleanFunction n} {S : State n} (hS : S.Valid f) (hdel : ¬S.DeletionAvailable) {e p r : ℕ} (he : e ∈ S.eqns) (hp : p ∈ S.params) (hr : r ∈ S.params) (hpr : p ≠ r) (hpe : p ∈ (S.eqn e).terms) (hre : r ∈ (S.eqn e).terms) :
          ∃ v ∈ S.aux, v ≠ p ∧ v ≠ r ∧ (S.eqn e).terms = {v, p, r}

          When no deletion applies, an equation containing two parameters p and r reads v + p + r = rhs for an auxiliary variable v.

          The configuration of Case 4: two partners have a common child.

          Instances For
            theorem Cslib.Circuits.Boolean.AffineDisperser.State.notMem_children_of_isPartner {n : ℕ} {S : State n} (h4 : ¬S.PartnersShareChild) {p r : ℕ} (hpr : S.IsPartner p r) {N : ℕ ⊕ ℕ} (hNp : N ∈ S.children p) :
            N ∉ S.children r

            When Case 4 does not apply, partners have no common child.

            Case 4 of the preliminary reductions: if partners p and r have a common child H, impose p = r + c so that H becomes constant and delete it; r becomes unused: Δa = 0, ΔW ≤ -5.

            Case 5: a paired parameter in the affine system #

            The configuration of Case 5: a paired parameter occurs in the affine system.

            Instances For
              theorem Cslib.Circuits.Boolean.AffineDisperser.State.Valid.step_of_pairInSystem {n : ℕ} {f : BooleanFunction n} {S : State n} {d : ℕ} (hS : S.Valid f) (hf : BitString.IsAffineDisperser f d) (ha : d < S.a) (hexcl : S.Exclusive) (h3 : ¬S.DegeneratePair) (h4 : ¬S.PartnersShareChild) (h : S.PairInSystem) :
              ∃ (S' : State n), Step f S S'

              Case 5 of the preliminary reductions: if a paired parameter p occurs in the affine system, fix its partner r and delete the unique child of r; then p is unpaired with at most one child, an equation, and (D4) removes it if it remains: Δa = 0, ΔW ≤ 0.

              Case 6: an AND-type gate on a paired parameter #

              The configuration of Case 6: an AND-type gate reads a paired parameter p and another parameter w.

              Instances For
                theorem Cslib.Circuits.Boolean.AffineDisperser.State.Valid.step_of_andOnPair {n : ℕ} {f : BooleanFunction n} {S : State n} (hS : S.Valid f) (hexcl : S.Exclusive) (h2 : ¬S.AndOnIsolated) (h3 : ¬S.DegeneratePair) (h4 : ¬S.PartnersShareChild) (h5 : ¬S.PairInSystem) (h : S.AndOnPair) :
                ∃ (S' : State n), Step f S S'

                Case 6 of the preliminary reductions: an AND-type gate G reads a paired parameter p with partner r and another parameter w. Fix r, fix w so that G becomes constant, and delete G and the unique child of r; p becomes unpaired and unused. If w is unpaired, Δa = -1 and ΔW ≤ -14; otherwise the partner of w becomes unpaired, Δa = 0 and ΔW ≤ -3.

                Normal states #

                A state in which no affine gate can be moved and no preliminary reduction applies, recorded by the consequences used to restructure and eliminate the minimal AND.

                Instances For
                  theorem Cslib.Circuits.Boolean.AffineDisperser.State.Valid.step_or_normal {n : ℕ} {f : BooleanFunction n} {S : State n} {d : ℕ} (hS : S.Valid f) (hf : BitString.IsAffineDisperser f d) (ha : d < S.a) (hmov : ∀ (J : ℕ), ¬S.Movable J) :
                  (∃ (S' : State n), Step f S S') ∨ S.Normal

                  The preliminary reductions of Mishra and Santhanam, Section 4.1: if d < a and no affine gate can be moved, one of Cases 1 to 6 applies, giving a step of gate elimination, or the state is normal.