Documentation

MIPRE.Foundations.LowDegree.IdempotentSplit

Deterministic refinement by binary idempotents #

def MIPRE.LowDegree.splitComponent {R : Type u_1} [CommRing R] [DecidableEq R] (e b : R) :

Split a component by a fixed idempotent and omit its zero children.

Equations
Instances For
    theorem MIPRE.LowDegree.mem_splitComponent {R : Type u_1} [CommRing R] [DecidableEq R] (e b x : R) :
    x ∈ splitComponent e b ↔ (x = e * b ∨ x = e * (1 - b)) ∧ x ≠ 0
    theorem MIPRE.LowDegree.splitComponent_factor {R : Type u_1} [CommRing R] [DecidableEq R] {e b x : R} (hx : x ∈ splitComponent e b) :
    ∃ (c : R), x = e * c
    theorem MIPRE.LowDegree.one_sub_idempotent {R : Type u_1} [CommRing R] [DecidableEq R] {b : R} (hb : b * b = b) :
    (1 - b) * (1 - b) = 1 - b
    theorem MIPRE.LowDegree.mul_idempotent {R : Type u_1} [CommRing R] [DecidableEq R] {e b : R} (he : e * e = e) (hb : b * b = b) :
    e * b * (e * b) = e * b
    theorem MIPRE.LowDegree.splitComponent_idempotent {R : Type u_1} [CommRing R] [DecidableEq R] {e b : R} (he : e * e = e) (hb : b * b = b) {x : R} (hx : x ∈ splitComponent e b) :
    x * x = x
    theorem MIPRE.LowDegree.splitComponent_pairwise {R : Type u_1} [CommRing R] [DecidableEq R] (e : R) {b : R} (hb : b * b = b) :
    List.Pairwise (fun (x y : R) => x * y = 0) (splitComponent e b)
    structure MIPRE.LowDegree.ComponentFamily {R : Type u_1} [CommRing R] (l : List R) :

    A finite complete family of nonzero orthogonal idempotents.

    • nonzero (e : R) : e ∈ l → e ≠ 0
    • idempotent (e : R) : e ∈ l → e * e = e
    • orthogonal : List.Pairwise (fun (e f : R) => e * f = 0) l
    • sum_eq_one : l.sum = 1
    Instances For
      def MIPRE.LowDegree.splitComponents {R : Type u_1} [CommRing R] [DecidableEq R] (l : List R) (b : R) :

      Refine all current components in the fixed input order.

      Equations
      Instances For
        theorem MIPRE.LowDegree.ComponentFamily.split {R : Type u_1} [CommRing R] [DecidableEq R] {l : List R} (hl : ComponentFamily l) {b : R} (hb : b * b = b) :
        def MIPRE.LowDegree.DecidesComponent {R : Type u_1} [CommRing R] (e b : R) :

        A component is wholly inside or outside a supplied idempotent.

        Equations
        Instances For
          theorem MIPRE.LowDegree.splitComponent_decides {R : Type u_1} [CommRing R] [DecidableEq R] {e b x : R} (hb : b * b = b) (hx : x ∈ splitComponent e b) :

          Iterate the deterministic refinement over a fixed generating family.

          Equations
          Instances For
            theorem MIPRE.LowDegree.ComponentFamily.splitAll {R : Type u_1} [CommRing R] [DecidableEq R] {l bs : List R} (hl : ComponentFamily l) (hb : ∀ b ∈ bs, b * b = b) :
            theorem MIPRE.LowDegree.splitAllComponents_preserves {R : Type u_1} [CommRing R] [DecidableEq R] {l bs : List R} {c : R} (hc : ∀ e ∈ l, DecidesComponent e c) (e : R) :
            theorem MIPRE.LowDegree.splitAllComponents_decides {R : Type u_1} [CommRing R] [DecidableEq R] {l bs : List R} (hb : ∀ b ∈ bs, b * b = b) (e : R) :
            e ∈ splitAllComponents l bs → ∀ b ∈ bs, DecidesComponent e b
            theorem MIPRE.LowDegree.decidesComponent_of_mem_span {R : Type u_1} [CommRing R] [DecidableEq R] [Algebra (ZMod 2) R] (e : R) (bs : List R) (hb : ∀ b ∈ bs, DecidesComponent e b) (z : R) (hz : z ∈ Submodule.span (ZMod 2) {b : R | b ∈ bs}) :

            Deciding each generator means deciding every binary linear combination.

            theorem MIPRE.LowDegree.splitAllComponents_primitive {R : Type u_1} [CommRing R] [DecidableEq R] [Algebra (ZMod 2) R] {l bs : List R} (hl : ComponentFamily l) (hb : ∀ b ∈ bs, b * b = b) (hspan : ∀ (z : R), z * z = z → z ∈ Submodule.span (ZMod 2) {b : R | b ∈ bs}) (e : R) :

            Separating a spanning family of fixed vectors makes every remaining component primitive.

            Nonzero orthogonal idempotents are linearly independent over the binary base field.

            Thus refinement can retain at most the ambient vector-space dimension.