Blueprint (GPT formalization): a profinite presentation of the absolute Galois group of ℚ₂

7. A minimal non-scalar module layer in the wild kernel🔗

Lemma7.1
Group: A minimal non-scalar module layer in the wild kernel (3)
Hover another entry in this group to preview it.
Preview
Lemma 7.2
Loading preview
Hover a group entry to preview it.
L∃∀N
Used by 2
Hover a use site to preview it.
Preview
Lemma 7.3
Loading preview
Hover a use site to preview it.

Lemma 7.1 of the paper (Simple head).

There is an exact sequence of \F_2[C]-modules

0\to T\to M\to V\to0,

and

T=\rad_{\F_2[C]}M, \qquad M/T\cong V, \qquad (M^\vee)^C=0.

Lean code for Lemma7.114 declarations
  • theoremdefined in Q2Presentation/Induction/BaseModelHeadStructure.lean
    complete
    theorem Q2Presentation.Induction.towerHead_submodule_dichotomy
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (V'Submodule (ZMod 2) (Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K) :
        SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
            Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    )
      (hact∀ (c : Q2Presentation.Induction.towerC K), ∀ v ∈ V', (Q2Presentation.Induction.headActE chief K c) v ∈ V' :
         (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
           vQ2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K  V'Submodule (ZMod 2) (Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K), (Q2Presentation.Induction.headActEQ2Presentation.Induction.headActE {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) (c : Q2Presentation.Induction.towerC K) :
      Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K →ₗ[ZMod 2]
        Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT KThe descended `C`-action on the head `V = M/T` (`towerActM` mod the
    stable radical layer, via `Submodule.mapQ`).  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor cQ2Presentation.Induction.towerC K) vQ2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. V'Submodule (ZMod 2) (Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K)) :
      V'Submodule (ZMod 2) (Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. Bot.bot.{u_1} {α : Type u_1} [self : Bot α] : αThe bot (`⊥`, `\bot`) element 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊥` in identifiers is `bot`. Or (a b : Prop) : Prop`Or a b`, or `a ∨ b`, is the disjunction of propositions. There are two
    constructors for `Or`, called `Or.inl : a → a ∨ b` and `Or.inr : b → a ∨ b`,
    and you can use `match` or `cases` to destruct an `Or` assumption into the
    two cases.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∨` in identifiers is `or`.
    
     * The recommended spelling of `\/` in identifiers is `or` (prefer `∨` over `\/`). V'Submodule (ZMod 2) (Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. Top.top.{u_1} {α : Type u_1} [self : Top α] : αThe top (`⊤`, `\top`) element 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊤` in identifiers is `top`.
    theorem Q2Presentation.Induction.towerHead_submodule_dichotomy
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (V'Submodule (ZMod 2) (Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K) :
        SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
            Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`. 
              KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    )
      (hact∀ (c : Q2Presentation.Induction.towerC K), ∀ v ∈ V', (Q2Presentation.Induction.headActE chief K c) v ∈ V' :
        
          (cQ2Presentation.Induction.towerC K :
            Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`). 
              KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
           vQ2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K  V'Submodule (ZMod 2) (Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K),
            (Q2Presentation.Induction.headActEQ2Presentation.Induction.headActE {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) (c : Q2Presentation.Induction.towerC K) :
      Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K →ₗ[ZMod 2]
        Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT KThe descended `C`-action on the head `V = M/T` (`towerActM` mod the
    stable radical layer, via `Submodule.mapQ`). 
                  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor cQ2Presentation.Induction.towerC K)
                vQ2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`.
              V'Submodule (ZMod 2) (Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K)) :
      V'Submodule (ZMod 2) (Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. Bot.bot.{u_1} {α : Type u_1} [self : Bot α] : αThe bot (`⊥`, `\bot`) element 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊥` in identifiers is `bot`. Or (a b : Prop) : Prop`Or a b`, or `a ∨ b`, is the disjunction of propositions. There are two
    constructors for `Or`, called `Or.inl : a → a ∨ b` and `Or.inr : b → a ∨ b`,
    and you can use `match` or `cases` to destruct an `Or` assumption into the
    two cases.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∨` in identifiers is `or`.
    
     * The recommended spelling of `\/` in identifiers is `or` (prefer `∨` over `\/`). V'Submodule (ZMod 2) (Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. Top.top.{u_1} {α : Type u_1} [self : Top α] : αThe top (`⊤`, `\top`) element 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊤` in identifiers is `top`.
    **F-H1 (tower-head simplicity)**: a `towerC`-invariant submodule of
    the head `V = towerM K ⧸ towerT K` is `⊥` or `⊤` — `lem:simplehead`
    part 2 at the tower carrier (design §4.1 F-H1; the mstage original,
    `head_submodule_dichotomy` at `HeadSimple.lean:82`, is unmodified).
    Pull `V'` back to `U ≤ towerM K` (which contains `towerT`), then to the
    `Y`-normal subgroup `D = towerModuleSubgroup U` with
    `lower ⊓ K ≤ D ≤ K`; the chief clause traps `D ⊔ lower` between `lower`
    and `upper`, and `K.minimal_inside` closes the top case. 
  • defdefined in Q2Presentation/Induction/MChildPair.lean
    complete
    def Q2Presentation.Induction.mChildKernel
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      Q2Presentation.Lifting.ElementaryKernelQ2Presentation.Lifting.ElementaryKernel (Yt : Q2Presentation.BoundaryFramedTarget) : TypeA normal subgroup of a framed target that is killed by the decoration,
    contained in the wild kernel, **abelian**, and of **exponent 2** — the shape
    of the chief kernels the cochain keeps quantify over. 
        (Q2Presentation.Induction.XRZero.xrChildQ2Presentation.Induction.XRZero.xrChild {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : Q2Presentation.Induction.FramedPairThe `𝒳_R = 0` child: the quotient framed pair at `N = Φ`-layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor).fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    
    def Q2Presentation.Induction.mChildKernel
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      Q2Presentation.Lifting.ElementaryKernelQ2Presentation.Lifting.ElementaryKernel (Yt : Q2Presentation.BoundaryFramedTarget) : TypeA normal subgroup of a framed target that is killed by the decoration,
    contained in the wild kernel, **abelian**, and of **exponent 2** — the shape
    of the chief kernels the cochain keeps quantify over. 
        (Q2Presentation.Induction.XRZero.xrChildQ2Presentation.Induction.XRZero.xrChild {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : Q2Presentation.Induction.FramedPairThe `𝒳_R = 0` child: the quotient framed pair at `N = Φ`-layer. 
            chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor).fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    
    **The elementary `M`-kernel at the child** `B = Y/Φ(K)`
    (`lem:simplehead` carrier for `lem:elementarystage`): `N = M' = K/Φ(K)`. 
  • defdefined in Q2Presentation/Induction/MChildPair.lean
    complete
    def Q2Presentation.Induction.mChildEquiv
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      Q2Presentation.Induction.towerMgrpQ2Presentation.Induction.towerMgrp {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe multiplicative Frattini quotient `K/Φ(K)`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor ≃*MulEquiv.{u_9, u_10} (M : Type u_9) (N : Type u_10) [Mul M] [Mul N] : Type (max u_10 u_9)`MulEquiv α β` is the type of an equiv `α ≃ β` which preserves multiplication. 
        (Q2Presentation.Induction.mChildQ2Presentation.Induction.mChild {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Subgroup (Q2Presentation.Induction.XRZero.xrChild chief K).fst.YThe child `M`-layer: `M' = K/Φ(K) ≤ B`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
    def Q2Presentation.Induction.mChildEquiv
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      Q2Presentation.Induction.towerMgrpQ2Presentation.Induction.towerMgrp {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe multiplicative Frattini quotient `K/Φ(K)`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor ≃*MulEquiv.{u_9, u_10} (M : Type u_9) (N : Type u_10) [Mul M] [Mul N] : Type (max u_10 u_9)`MulEquiv α β` is the type of an equiv `α ≃ β` which preserves multiplication. 
        (Q2Presentation.Induction.mChildQ2Presentation.Induction.mChild {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Subgroup (Q2Presentation.Induction.XRZero.xrChild chief K).fst.YThe child `M`-layer: `M' = K/Φ(K) ≤ B`. 
            chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
    **The `M'`-bridge**: `K/Φ(K) ≃* M'` (`lem:simplehead`'s identification
    of the child `M`-layer with the tower module). 
  • theoremdefined in Q2Presentation/Induction/MStageChild.lean
    complete
    theorem Q2Presentation.Induction.mChild_hinv
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mChildKernel chief K)) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Lifting.NAddQ2Presentation.Lifting.NAdd {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) : TypeThe additive `F₂`-carrier of an elementary kernel. 
            (Q2Presentation.Induction.mChildKernelQ2Presentation.Induction.mChildKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Lifting.ElementaryKernel (Q2Presentation.Induction.XRZero.xrChild chief K).fst**The elementary `M`-kernel at the child** `B = Y/Φ(K)`
    (`lem:simplehead` carrier for `lem:elementarystage`): `N = M' = K/Φ(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))) :
      (∀ (y(Q2Presentation.Induction.XRZero.xrChild chief K).fst.Y : (Q2Presentation.Induction.XRZero.xrChildQ2Presentation.Induction.XRZero.xrChild {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : Q2Presentation.Induction.FramedPairThe `𝒳_R = 0` child: the quotient framed pair at `N = Φ`-layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor).fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .YQ2Presentation.BoundaryFramedTarget.Y (self : Q2Presentation.BoundaryFramedTarget) : TypeThe finite target group `Y`. )
          (mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mChildKernel chief K) :
            Q2Presentation.Lifting.NAddQ2Presentation.Lifting.NAdd {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) : TypeThe additive `F₂`-carrier of an elementary kernel. 
              (Q2Presentation.Induction.mChildKernelQ2Presentation.Induction.mChildKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Lifting.ElementaryKernel (Q2Presentation.Induction.XRZero.xrChild chief K).fst**The elementary `M`-kernel at the child** `B = Y/Φ(K)`
    (`lem:simplehead` carrier for `lem:elementarystage`): `N = M' = K/Φ(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)),
          fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mChildKernel chief K))
              ((Q2Presentation.Lifting.conjEndNQ2Presentation.Lifting.conjEndN {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) (y : Yt.Y) : Module.End (ZMod 2) (Q2Presentation.Lifting.NAdd E)Right conjugation by `y` as an `F₂`-linear endomorphism of `N`. 
                  (Q2Presentation.Induction.mChildKernelQ2Presentation.Induction.mChildKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Lifting.ElementaryKernel (Q2Presentation.Induction.XRZero.xrChild chief K).fst**The elementary `M`-kernel at the child** `B = Y/Φ(K)`
    (`lem:simplehead` carrier for `lem:elementarystage`): `N = M' = K/Φ(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) y(Q2Presentation.Induction.XRZero.xrChild chief K).fst.Y)
                mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mChildKernel chief K)) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mChildKernel chief K)) mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mChildKernel chief K)) 
        fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mChildKernel chief K)) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0
    theorem Q2Presentation.Induction.mChild_hinv
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mChildKernel chief K)) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Lifting.NAddQ2Presentation.Lifting.NAdd {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) : TypeThe additive `F₂`-carrier of an elementary kernel. 
            (Q2Presentation.Induction.mChildKernelQ2Presentation.Induction.mChildKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Lifting.ElementaryKernel (Q2Presentation.Induction.XRZero.xrChild chief K).fst**The elementary `M`-kernel at the child** `B = Y/Φ(K)`
    (`lem:simplehead` carrier for `lem:elementarystage`): `N = M' = K/Φ(K)`. 
              chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))) :
      (∀
          (y(Q2Presentation.Induction.XRZero.xrChild chief K).fst.Y :
            (Q2Presentation.Induction.XRZero.xrChildQ2Presentation.Induction.XRZero.xrChild {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : Q2Presentation.Induction.FramedPairThe `𝒳_R = 0` child: the quotient framed pair at `N = Φ`-layer. 
                  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor).fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .YQ2Presentation.BoundaryFramedTarget.Y (self : Q2Presentation.BoundaryFramedTarget) : TypeThe finite target group `Y`. )
          (mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mChildKernel chief K) :
            Q2Presentation.Lifting.NAddQ2Presentation.Lifting.NAdd {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) : TypeThe additive `F₂`-carrier of an elementary kernel. 
              (Q2Presentation.Induction.mChildKernelQ2Presentation.Induction.mChildKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Lifting.ElementaryKernel (Q2Presentation.Induction.XRZero.xrChild chief K).fst**The elementary `M`-kernel at the child** `B = Y/Φ(K)`
    (`lem:simplehead` carrier for `lem:elementarystage`): `N = M' = K/Φ(K)`. 
                chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)),
          fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mChildKernel chief K))
              ((Q2Presentation.Lifting.conjEndNQ2Presentation.Lifting.conjEndN {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) (y : Yt.Y) : Module.End (ZMod 2) (Q2Presentation.Lifting.NAdd E)Right conjugation by `y` as an `F₂`-linear endomorphism of `N`. 
                  (Q2Presentation.Induction.mChildKernelQ2Presentation.Induction.mChildKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Lifting.ElementaryKernel (Q2Presentation.Induction.XRZero.xrChild chief K).fst**The elementary `M`-kernel at the child** `B = Y/Φ(K)`
    (`lem:simplehead` carrier for `lem:elementarystage`): `N = M' = K/Φ(K)`. 
                    chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
                  y(Q2Presentation.Induction.XRZero.xrChild chief K).fst.Y)
                mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mChildKernel chief K)) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mChildKernel chief K)) mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mChildKernel chief K)) 
        fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mChildKernel chief K)) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0
    **Invariant duals on the child M-kernel vanish** (`lem:simplehead`
    part 2, transported along the U2 bridge): a conjugation-invariant
    functional pulls back along `mChildEquiv` to a `towerActM`-invariant
    functional on `M` (conjugation on `M'` corresponds to `conjOnMgrp` across
    the bridge, `mChildEquiv_conjOnMgrp`), which the proven
    `towerDualInv_zero` kills. 
  • theoremdefined in Q2Presentation/Induction/RadicalDual.lean
    complete
    theorem Q2Presentation.Induction.mstage_hinv
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1 : Nat.cardNat.card.{u_3} (α : Type u_3) : ℕ`Nat.card α` is the cardinality of `α` as a natural number.
    If `α` is infinite, `Nat.card α = 0`.  (Q2Presentation.Induction.kernelFrattiniQ2Presentation.Induction.kernelFrattini {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.YThe literal Frattini subgroup `R = Φ(K)` of the kernel, as a subgroup of `Y`
    (the manuscript's `R`, l.3626).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 1)
      (fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Lifting.NAddQ2Presentation.Lifting.NAdd {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) : TypeThe additive `F₂`-carrier of an elementary kernel. 
            (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1))) :
      (∀ (yp.fst.Y : pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .YQ2Presentation.BoundaryFramedTarget.Y (self : Q2Presentation.BoundaryFramedTarget) : TypeThe finite target group `Y`. )
          (mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR) :
            Q2Presentation.Lifting.NAddQ2Presentation.Lifting.NAdd {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) : TypeThe additive `F₂`-carrier of an elementary kernel. 
              (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1)),
          fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR))
              ((Q2Presentation.Lifting.conjEndNQ2Presentation.Lifting.conjEndN {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) (y : Yt.Y) : Module.End (ZMod 2) (Q2Presentation.Lifting.NAdd E)Right conjugation by `y` as an `F₂`-linear endomorphism of `N`. 
                  (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) yp.fst.Y)
                mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)) mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)) 
        fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0
    theorem Q2Presentation.Induction.mstage_hinv
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1 :
        Nat.cardNat.card.{u_3} (α : Type u_3) : ℕ`Nat.card α` is the cardinality of `α` as a natural number.
    If `α` is infinite, `Nat.card α = 0`. 
            (Q2Presentation.Induction.kernelFrattiniQ2Presentation.Induction.kernelFrattini {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.YThe literal Frattini subgroup `R = Φ(K)` of the kernel, as a subgroup of `Y`
    (the manuscript's `R`, l.3626). 
                KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
          1)
      (fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Lifting.NAddQ2Presentation.Lifting.NAdd {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) : TypeThe additive `F₂`-carrier of an elementary kernel. 
            (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge. 
              chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1))) :
      (∀ (yp.fst.Y : pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .YQ2Presentation.BoundaryFramedTarget.Y (self : Q2Presentation.BoundaryFramedTarget) : TypeThe finite target group `Y`. )
          (mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR) :
            Q2Presentation.Lifting.NAddQ2Presentation.Lifting.NAdd {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) : TypeThe additive `F₂`-carrier of an elementary kernel. 
              (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge. 
                chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1)),
          fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR))
              ((Q2Presentation.Lifting.conjEndNQ2Presentation.Lifting.conjEndN {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) (y : Yt.Y) : Module.End (ZMod 2) (Q2Presentation.Lifting.NAdd E)Right conjugation by `y` as an `F₂`-linear endomorphism of `N`. 
                  (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge. 
                    chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1)
                  yp.fst.Y)
                mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)) mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)) 
        fModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0
    **Invariant duals on the mstage kernel vanish** (`lem:simplehead`,
    transported). 
  • theoremdefined in Q2Presentation/Induction/RadicalEdgeCount.lean
    complete
    theorem Q2Presentation.Induction.mChild_conjInvDuals_eq_bot
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      Q2Presentation.Lifting.conjInvDualsQ2Presentation.Lifting.conjInvDuals {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) :
      Submodule (ZMod 2) (Module.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd E))The conjugation-invariant duals `X = (R^∨)^Y = (R^∨)^C` of an
    elementary kernel (consumer spelling of the manuscript's `𝒳_R`,
    §7 l.3720–3723). 
          (Q2Presentation.Induction.mChildKernelQ2Presentation.Induction.mChildKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Lifting.ElementaryKernel (Q2Presentation.Induction.XRZero.xrChild chief K).fst**The elementary `M`-kernel at the child** `B = Y/Φ(K)`
    (`lem:simplehead` carrier for `lem:elementarystage`): `N = M' = K/Φ(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
        Bot.bot.{u_1} {α : Type u_1} [self : Bot α] : αThe bot (`⊥`, `\bot`) element 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊥` in identifiers is `bot`.
    theorem Q2Presentation.Induction.mChild_conjInvDuals_eq_bot
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      Q2Presentation.Lifting.conjInvDualsQ2Presentation.Lifting.conjInvDuals {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) :
      Submodule (ZMod 2) (Module.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd E))The conjugation-invariant duals `X = (R^∨)^Y = (R^∨)^C` of an
    elementary kernel (consumer spelling of the manuscript's `𝒳_R`,
    §7 l.3720–3723). 
          (Q2Presentation.Induction.mChildKernelQ2Presentation.Induction.mChildKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Lifting.ElementaryKernel (Q2Presentation.Induction.XRZero.xrChild chief K).fst**The elementary `M`-kernel at the child** `B = Y/Φ(K)`
    (`lem:simplehead` carrier for `lem:elementarystage`): `N = M' = K/Φ(K)`. 
            chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
        Bot.bot.{u_1} {α : Type u_1} [self : Bot α] : αThe bot (`⊥`, `\bot`) element 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊥` in identifiers is `bot`.
    **The child M-kernel has no invariant duals** (`lem:simplehead`'s
    `(M^∨)^C = 0`, in the consumer spelling): the obstruction space of the
    citable local keep degenerates at `mChildKernel`. 
  • theoremdefined in Q2Presentation/Induction/RadicalReach.lean
    complete
    theorem Q2Presentation.Induction.sec7_radical_bockstein_witness
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1 : Nat.cardNat.card.{u_3} (α : Type u_3) : ℕ`Nat.card α` is the cardinality of `α` as a natural number.
    If `α` is infinite, `Nat.card α = 0`.  (Q2Presentation.Induction.kernelFrattiniQ2Presentation.Induction.kernelFrattini {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.YThe literal Frattini subgroup `R = Φ(K)` of the kernel, as a subgroup of `Y`
    (the manuscript's `R`, l.3626).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 1)
      (gQ2Presentation.boundaryFramedSurj Q2Presentation.boundaryPackage_GammaA
      (Q2Presentation.TorsorProgram.quotientFramedTarget p.fst (Q2Presentation.Induction.mstageKernel chief K hR).N ⋯ ⋯)
      (Q2Presentation.TorsorProgram.quotientFrame p.fst (Q2Presentation.Induction.mstageKernel chief K hR).N ⋯ ⋯ p.snd) :
        Q2Presentation.boundaryFramedSurjQ2Presentation.boundaryFramedSurj {Γ : ProfiniteGrp.{0}} (B : Q2Presentation.BoundaryPackage Γ)
      (Yt : Q2Presentation.BoundaryFramedTarget) (F : Q2Presentation.BoundaryFrame Yt) : TypeThe **boundary-framed surjections** `e_Γ^β(𝒴)` (manuscript `eq:eGamma`): the
    continuous surjections `f : Γ ↠ Y` whose induced map to `H × E` is the prescribed
    `β ∘ b_Γ`, i.e. `q_Y ∘ f = β ∘ b_Γ`.  This is the subtype counted in Theorem 4.2;
    its cardinality is `e_Γ^β(𝒴)`. 
          Q2Presentation.boundaryPackage_GammaAQ2Presentation.boundaryPackage_GammaA : Q2Presentation.BoundaryPackage Q2Presentation.GammaA**The candidate boundary package** (manuscript Prop 3.14, `prop:compatiblemarking`;
    plan Turn 4 §6).  The Stage-C data of `Γ_A`: the common tame quotient `gammaTameMap`,
    the maximal pro-`2` quotient `p : Γ_A ⟶ Π`, and the common unramified character
    `ν = gammaTameMap ≫ ν_t`, through which both factor. 
          (Q2Presentation.TorsorProgram.quotientFramedTargetQ2Presentation.TorsorProgram.quotientFramedTarget (Yt : Q2Presentation.BoundaryFramedTarget) (N : Subgroup Yt.Y)
      [hNn : N.Normal] (hNLY : N ≤ Yt.LY) (hNθ : ∀ n ∈ N, Yt.thetaY n = 1) : Q2Presentation.BoundaryFramedTarget**The quotient framed target** `Y/N` (same `H`, same `E`, image wild kernel).  pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    
            (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1).NQ2Presentation.Lifting.ElementaryKernel.N {Yt : Q2Presentation.BoundaryFramedTarget}
      (self : Q2Presentation.Lifting.ElementaryKernel Yt) : Subgroup Yt.Y  )
          (Q2Presentation.TorsorProgram.quotientFrameQ2Presentation.TorsorProgram.quotientFrame (Yt : Q2Presentation.BoundaryFramedTarget) (N : Subgroup Yt.Y)
      [hNn : N.Normal] (hNLY : N ≤ Yt.LY) (hNθ : ∀ n ∈ N, Yt.thetaY n = 1) (F : Q2Presentation.BoundaryFrame Yt) :
      Q2Presentation.BoundaryFrame (Q2Presentation.TorsorProgram.quotientFramedTarget Yt N hNLY hNθ)The frame transports verbatim (`H`, `E`, `α`, `ψ`, `β` unchanged).  pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    
            (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1).NQ2Presentation.Lifting.ElementaryKernel.N {Yt : Q2Presentation.BoundaryFramedTarget}
      (self : Q2Presentation.Lifting.ElementaryKernel Yt) : Subgroup Yt.Y   pQ2Presentation.Induction.FramedPair.sndSigma.snd.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : β self.fstThe second component of a dependent pair. Its type depends on the first component.
    ))
      (qQ2Presentation.Marking p.fst.Y : Q2Presentation.MarkingQ2Presentation.Marking.{u_1} (G : Type u_1) [Group G] : Type u_1A marking assigns a group element to each of the four generators.  pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .YQ2Presentation.BoundaryFramedTarget.Y (self : Q2Presentation.BoundaryFramedTarget) : TypeThe finite target group `Y`. )
      (hlift∀ (a : Q2Presentation.Gen),
      (QuotientGroup.mk' (Q2Presentation.Induction.mstageKernel chief K hR).N) (q a) =
        (ProfiniteGrp.Hom.hom (↑g).hom) (Q2Presentation.gammaGen a) :
         (aQ2Presentation.Gen : Q2Presentation.GenQ2Presentation.Gen : TypeThe four marked generators of the candidate presentation. ),
          (QuotientGroup.mk'QuotientGroup.mk'.{u_1} {G : Type u_1} [Group G] (N : Subgroup G) [nN : N.Normal] : G →* G ⧸ NThe group homomorphism from `G` to `G/N`. 
                (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1).NQ2Presentation.Lifting.ElementaryKernel.N {Yt : Q2Presentation.BoundaryFramedTarget}
      (self : Q2Presentation.Lifting.ElementaryKernel Yt) : Subgroup Yt.Y)
              (qQ2Presentation.Marking p.fst.Y aQ2Presentation.Gen) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            (ProfiniteGrp.Hom.homProfiniteGrp.Hom.hom.{u} {M N : ProfiniteGrp.{u}} (f : M.Hom N) : ↑M.toProfinite.toTop →ₜ* ↑N.toProfinite.toTopThe underlying `ContinuousMonoidHom`.  (↑gQ2Presentation.boundaryFramedSurj Q2Presentation.boundaryPackage_GammaA
      (Q2Presentation.TorsorProgram.quotientFramedTarget p.fst (Q2Presentation.Induction.mstageKernel chief K hR).N ⋯ ⋯)
      (Q2Presentation.TorsorProgram.quotientFrame p.fst (Q2Presentation.Induction.mstageKernel chief K hR).N ⋯ ⋯ p.snd)).homQ2Presentation.Profinite.SurjContHom.hom.{u} {P Q : ProfiniteGrp.{u}}
      (self : Q2Presentation.Profinite.SurjContHom P Q) : P ⟶ QThe underlying morphism of profinite groups. ) (Q2Presentation.gammaGenQ2Presentation.gammaGen (a : Q2Presentation.Gen) : ↑Q2Presentation.GammaA.toProfinite.toTopThe four universal generators `σ, τ, x₀, x₁` of `Γ_A`, as the compatible
    families of marked generators.  aQ2Presentation.Gen))
      (hframe∀ (a : Q2Presentation.Gen),
      p.fst.qYMap (q a) =
        (ProfiniteGrp.Hom.hom p.snd.beta)
          ((ProfiniteGrp.Hom.hom Q2Presentation.boundaryPackage_GammaA.toBoundary) (Q2Presentation.gammaGen a)) :
         (aQ2Presentation.Gen : Q2Presentation.GenQ2Presentation.Gen : TypeThe four marked generators of the candidate presentation. ),
          pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .qYMapQ2Presentation.BoundaryFramedTarget.qYMap (Yt : Q2Presentation.BoundaryFramedTarget) :
      Yt.Y →* Yt.H × Multiplicative Yt.EThe combined map `q_Y = (π_Y, θ_Y) : Y →* H × Multiplicative E` of manuscript
    Definition 4.1: the data the boundary-framed count holds fixed.  (qQ2Presentation.Marking p.fst.Y aQ2Presentation.Gen) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            (ProfiniteGrp.Hom.homProfiniteGrp.Hom.hom.{u} {M N : ProfiniteGrp.{u}} (f : M.Hom N) : ↑M.toProfinite.toTop →ₜ* ↑N.toProfinite.toTopThe underlying `ContinuousMonoidHom`.  pQ2Presentation.Induction.FramedPair.sndSigma.snd.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : β self.fstThe second component of a dependent pair. Its type depends on the first component.
    .betaQ2Presentation.BoundaryFrame.beta {Yt : Q2Presentation.BoundaryFramedTarget} (self : Q2Presentation.BoundaryFrame Yt) :
      Q2Presentation.Boundary ⟶ ProfiniteGrp.ofFiniteGrp (FiniteGrp.of (Yt.H × Multiplicative Yt.E))The induced boundary map `β : ∂_bd → H × Multiplicative E`. )
              ((ProfiniteGrp.Hom.homProfiniteGrp.Hom.hom.{u} {M N : ProfiniteGrp.{u}} (f : M.Hom N) : ↑M.toProfinite.toTop →ₜ* ↑N.toProfinite.toTopThe underlying `ContinuousMonoidHom`. 
                  Q2Presentation.boundaryPackage_GammaAQ2Presentation.boundaryPackage_GammaA : Q2Presentation.BoundaryPackage Q2Presentation.GammaA**The candidate boundary package** (manuscript Prop 3.14, `prop:compatiblemarking`;
    plan Turn 4 §6).  The Stage-C data of `Γ_A`: the common tame quotient `gammaTameMap`,
    the maximal pro-`2` quotient `p : Γ_A ⟶ Π`, and the common unramified character
    `ν = gammaTameMap ≫ ν_t`, through which both factor. .toBoundaryQ2Presentation.BoundaryPackage.toBoundary {Γ : ProfiniteGrp.{0}} (B : Q2Presentation.BoundaryPackage Γ) :
      Γ ⟶ Q2Presentation.Boundary**The boundary map** `b_Γ : Γ ⟶ ∂_bd` (manuscript `eq:boundarymap`), the universal
    map into the fibre product induced by the compatible pair `(tameMap, pro2Map)`. )
                (Q2Presentation.gammaGenQ2Presentation.gammaGen (a : Q2Presentation.Gen) : ↑Q2Presentation.GammaA.toProfinite.toTopThe four universal generators `σ, τ, x₀, x₁` of `Γ_A`, as the compatible
    families of marked generators.  aQ2Presentation.Gen)))
      (WSubmodule (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)) :
        SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Lifting.NAddQ2Presentation.Lifting.NAdd {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) : TypeThe additive `F₂`-carrier of an elementary kernel. 
            (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1)))
      (hWst∀ (y : p.fst.Y),
      ∀ m ∈ W, ((Q2Presentation.Lifting.conjFamily (Q2Presentation.Induction.mstageKernel chief K hR)).op y) m ∈ W :
         (yp.fst.Y : pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .YQ2Presentation.BoundaryFramedTarget.Y (self : Q2Presentation.BoundaryFramedTarget) : TypeThe finite target group `Y`. ),
           mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)  WSubmodule (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)),
            ((Q2Presentation.Lifting.conjFamilyQ2Presentation.Lifting.conjFamily {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) :
      Q2Presentation.Lifting.OperatorFamily Yt (Q2Presentation.Lifting.NAdd E)The concrete conjugation family of an elementary kernel. 
                      (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1)).opQ2Presentation.Lifting.OperatorFamily.op {Yt : Q2Presentation.BoundaryFramedTarget} {V : Type} [AddCommGroup V]
      [Module (ZMod 2) V] (self : Q2Presentation.Lifting.OperatorFamily Yt V) : Yt.Y → Module.End (ZMod 2) V
                  yp.fst.Y)
                mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR) Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`.
              WSubmodule (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)))
      (wQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR) :
        Q2Presentation.Lifting.NAddQ2Presentation.Lifting.NAdd {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) : TypeThe additive `F₂`-carrier of an elementary kernel. 
          (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1))
      (hwfix∀ (y : p.fst.Y), ((Q2Presentation.Lifting.conjFamily (Q2Presentation.Induction.mstageKernel chief K hR)).op y) w - w ∈ W :
         (yp.fst.Y : pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .YQ2Presentation.BoundaryFramedTarget.Y (self : Q2Presentation.BoundaryFramedTarget) : TypeThe finite target group `Y`. ),
          ((Q2Presentation.Lifting.conjFamilyQ2Presentation.Lifting.conjFamily {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) :
      Q2Presentation.Lifting.OperatorFamily Yt (Q2Presentation.Lifting.NAdd E)The concrete conjugation family of an elementary kernel. 
                      (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1)).opQ2Presentation.Lifting.OperatorFamily.op {Yt : Q2Presentation.BoundaryFramedTarget} {V : Type} [AddCommGroup V]
      [Module (ZMod 2) V] (self : Q2Presentation.Lifting.OperatorFamily Yt V) : Yt.Y → Module.End (ZMod 2) V
                  yp.fst.Y)
                wQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR) -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`.
    The meaning of this notation is type-dependent.
    * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).
              wQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR) Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`.
            WSubmodule (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)))
      (hwWw ∉ W : wQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)  WSubmodule (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR))) :
       nQ2Presentation.Gen → Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR),
        Q2Presentation.Lifting.foxShadowGenQ2Presentation.Lifting.foxShadowGen {Yt : Q2Presentation.BoundaryFramedTarget} [Finite Yt.Y] {V : Type} [AddCommGroup V]
      [Module (ZMod 2) V] (Φ : Yt.Y → Module.End (ZMod 2) V) (q : Q2Presentation.Marking Yt.Y)
      (n : Q2Presentation.Gen → V) : Q2Presentation.GExpr → VThe shadow recursion over an abstract operator family. 
                (Q2Presentation.Lifting.conjFamilyQ2Presentation.Lifting.conjFamily {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) :
      Q2Presentation.Lifting.OperatorFamily Yt (Q2Presentation.Lifting.NAdd E)The concrete conjugation family of an elementary kernel. 
                    (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1)).opQ2Presentation.Lifting.OperatorFamily.op {Yt : Q2Presentation.BoundaryFramedTarget} {V : Type} [AddCommGroup V]
      [Module (ZMod 2) V] (self : Q2Presentation.Lifting.OperatorFamily Yt V) : Yt.Y → Module.End (ZMod 2) V
                qQ2Presentation.Marking p.fst.Y nQ2Presentation.Gen → Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR) Q2Presentation.Q2Word.tameRelatorQ2Presentation.Q2Word.tameRelator : Q2Presentation.GExprThe tame relator `τ^σ · (τ²)⁻¹` (the relation `τ^σ = τ²`).  -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`.
    The meaning of this notation is type-dependent.
    * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).
              wQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR) Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`.
            WSubmodule (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          Q2Presentation.Lifting.foxShadowGenQ2Presentation.Lifting.foxShadowGen {Yt : Q2Presentation.BoundaryFramedTarget} [Finite Yt.Y] {V : Type} [AddCommGroup V]
      [Module (ZMod 2) V] (Φ : Yt.Y → Module.End (ZMod 2) V) (q : Q2Presentation.Marking Yt.Y)
      (n : Q2Presentation.Gen → V) : Q2Presentation.GExpr → VThe shadow recursion over an abstract operator family. 
              (Q2Presentation.Lifting.conjFamilyQ2Presentation.Lifting.conjFamily {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) :
      Q2Presentation.Lifting.OperatorFamily Yt (Q2Presentation.Lifting.NAdd E)The concrete conjugation family of an elementary kernel. 
                  (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1)).opQ2Presentation.Lifting.OperatorFamily.op {Yt : Q2Presentation.BoundaryFramedTarget} {V : Type} [AddCommGroup V]
      [Module (ZMod 2) V] (self : Q2Presentation.Lifting.OperatorFamily Yt V) : Yt.Y → Module.End (ZMod 2) V
              qQ2Presentation.Marking p.fst.Y nQ2Presentation.Gen → Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR) Q2Presentation.Q2Word.wildRelatorQ2Presentation.Q2Word.wildRelator : Q2Presentation.GExprThe wild relator `h₀ · u₁⁻¹ · x₁^σ · c₀` (the relation `h₀ u₁⁻¹ x₁^σ c₀ = 1`).  Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`.
            WSubmodule (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR))
    theorem Q2Presentation.Induction.sec7_radical_bockstein_witness
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1 :
        Nat.cardNat.card.{u_3} (α : Type u_3) : ℕ`Nat.card α` is the cardinality of `α` as a natural number.
    If `α` is infinite, `Nat.card α = 0`. 
            (Q2Presentation.Induction.kernelFrattiniQ2Presentation.Induction.kernelFrattini {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.YThe literal Frattini subgroup `R = Φ(K)` of the kernel, as a subgroup of `Y`
    (the manuscript's `R`, l.3626). 
                KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
          1)
      (gQ2Presentation.boundaryFramedSurj Q2Presentation.boundaryPackage_GammaA
      (Q2Presentation.TorsorProgram.quotientFramedTarget p.fst (Q2Presentation.Induction.mstageKernel chief K hR).N ⋯ ⋯)
      (Q2Presentation.TorsorProgram.quotientFrame p.fst (Q2Presentation.Induction.mstageKernel chief K hR).N ⋯ ⋯ p.snd) :
        Q2Presentation.boundaryFramedSurjQ2Presentation.boundaryFramedSurj {Γ : ProfiniteGrp.{0}} (B : Q2Presentation.BoundaryPackage Γ)
      (Yt : Q2Presentation.BoundaryFramedTarget) (F : Q2Presentation.BoundaryFrame Yt) : TypeThe **boundary-framed surjections** `e_Γ^β(𝒴)` (manuscript `eq:eGamma`): the
    continuous surjections `f : Γ ↠ Y` whose induced map to `H × E` is the prescribed
    `β ∘ b_Γ`, i.e. `q_Y ∘ f = β ∘ b_Γ`.  This is the subtype counted in Theorem 4.2;
    its cardinality is `e_Γ^β(𝒴)`. 
          Q2Presentation.boundaryPackage_GammaAQ2Presentation.boundaryPackage_GammaA : Q2Presentation.BoundaryPackage Q2Presentation.GammaA**The candidate boundary package** (manuscript Prop 3.14, `prop:compatiblemarking`;
    plan Turn 4 §6).  The Stage-C data of `Γ_A`: the common tame quotient `gammaTameMap`,
    the maximal pro-`2` quotient `p : Γ_A ⟶ Π`, and the common unramified character
    `ν = gammaTameMap ≫ ν_t`, through which both factor. 
          (Q2Presentation.TorsorProgram.quotientFramedTargetQ2Presentation.TorsorProgram.quotientFramedTarget (Yt : Q2Presentation.BoundaryFramedTarget) (N : Subgroup Yt.Y)
      [hNn : N.Normal] (hNLY : N ≤ Yt.LY) (hNθ : ∀ n ∈ N, Yt.thetaY n = 1) : Q2Presentation.BoundaryFramedTarget**The quotient framed target** `Y/N` (same `H`, same `E`, image wild kernel). 
            pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    
            (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge. 
                chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1).NQ2Presentation.Lifting.ElementaryKernel.N {Yt : Q2Presentation.BoundaryFramedTarget}
      (self : Q2Presentation.Lifting.ElementaryKernel Yt) : Subgroup Yt.Y
             )
          (Q2Presentation.TorsorProgram.quotientFrameQ2Presentation.TorsorProgram.quotientFrame (Yt : Q2Presentation.BoundaryFramedTarget) (N : Subgroup Yt.Y)
      [hNn : N.Normal] (hNLY : N ≤ Yt.LY) (hNθ : ∀ n ∈ N, Yt.thetaY n = 1) (F : Q2Presentation.BoundaryFrame Yt) :
      Q2Presentation.BoundaryFrame (Q2Presentation.TorsorProgram.quotientFramedTarget Yt N hNLY hNθ)The frame transports verbatim (`H`, `E`, `α`, `ψ`, `β` unchanged). 
            pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    
            (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge. 
                chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1).NQ2Presentation.Lifting.ElementaryKernel.N {Yt : Q2Presentation.BoundaryFramedTarget}
      (self : Q2Presentation.Lifting.ElementaryKernel Yt) : Subgroup Yt.Y
              pQ2Presentation.Induction.FramedPair.sndSigma.snd.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : β self.fstThe second component of a dependent pair. Its type depends on the first component.
    ))
      (qQ2Presentation.Marking p.fst.Y : Q2Presentation.MarkingQ2Presentation.Marking.{u_1} (G : Type u_1) [Group G] : Type u_1A marking assigns a group element to each of the four generators.  pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .YQ2Presentation.BoundaryFramedTarget.Y (self : Q2Presentation.BoundaryFramedTarget) : TypeThe finite target group `Y`. )
      (hlift∀ (a : Q2Presentation.Gen),
      (QuotientGroup.mk' (Q2Presentation.Induction.mstageKernel chief K hR).N) (q a) =
        (ProfiniteGrp.Hom.hom (↑g).hom) (Q2Presentation.gammaGen a) :
         (aQ2Presentation.Gen : Q2Presentation.GenQ2Presentation.Gen : TypeThe four marked generators of the candidate presentation. ),
          (QuotientGroup.mk'QuotientGroup.mk'.{u_1} {G : Type u_1} [Group G] (N : Subgroup G) [nN : N.Normal] : G →* G ⧸ NThe group homomorphism from `G` to `G/N`. 
                (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge. 
                    chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1).NQ2Presentation.Lifting.ElementaryKernel.N {Yt : Q2Presentation.BoundaryFramedTarget}
      (self : Q2Presentation.Lifting.ElementaryKernel Yt) : Subgroup Yt.Y)
              (qQ2Presentation.Marking p.fst.Y aQ2Presentation.Gen) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            (ProfiniteGrp.Hom.homProfiniteGrp.Hom.hom.{u} {M N : ProfiniteGrp.{u}} (f : M.Hom N) : ↑M.toProfinite.toTop →ₜ* ↑N.toProfinite.toTopThe underlying `ContinuousMonoidHom`.  (↑gQ2Presentation.boundaryFramedSurj Q2Presentation.boundaryPackage_GammaA
      (Q2Presentation.TorsorProgram.quotientFramedTarget p.fst (Q2Presentation.Induction.mstageKernel chief K hR).N ⋯ ⋯)
      (Q2Presentation.TorsorProgram.quotientFrame p.fst (Q2Presentation.Induction.mstageKernel chief K hR).N ⋯ ⋯ p.snd)).homQ2Presentation.Profinite.SurjContHom.hom.{u} {P Q : ProfiniteGrp.{u}}
      (self : Q2Presentation.Profinite.SurjContHom P Q) : P ⟶ QThe underlying morphism of profinite groups. )
              (Q2Presentation.gammaGenQ2Presentation.gammaGen (a : Q2Presentation.Gen) : ↑Q2Presentation.GammaA.toProfinite.toTopThe four universal generators `σ, τ, x₀, x₁` of `Γ_A`, as the compatible
    families of marked generators.  aQ2Presentation.Gen))
      (hframe∀ (a : Q2Presentation.Gen),
      p.fst.qYMap (q a) =
        (ProfiniteGrp.Hom.hom p.snd.beta)
          ((ProfiniteGrp.Hom.hom Q2Presentation.boundaryPackage_GammaA.toBoundary) (Q2Presentation.gammaGen a)) :
         (aQ2Presentation.Gen : Q2Presentation.GenQ2Presentation.Gen : TypeThe four marked generators of the candidate presentation. ),
          pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .qYMapQ2Presentation.BoundaryFramedTarget.qYMap (Yt : Q2Presentation.BoundaryFramedTarget) :
      Yt.Y →* Yt.H × Multiplicative Yt.EThe combined map `q_Y = (π_Y, θ_Y) : Y →* H × Multiplicative E` of manuscript
    Definition 4.1: the data the boundary-framed count holds fixed.  (qQ2Presentation.Marking p.fst.Y aQ2Presentation.Gen) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            (ProfiniteGrp.Hom.homProfiniteGrp.Hom.hom.{u} {M N : ProfiniteGrp.{u}} (f : M.Hom N) : ↑M.toProfinite.toTop →ₜ* ↑N.toProfinite.toTopThe underlying `ContinuousMonoidHom`.  pQ2Presentation.Induction.FramedPair.sndSigma.snd.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : β self.fstThe second component of a dependent pair. Its type depends on the first component.
    .betaQ2Presentation.BoundaryFrame.beta {Yt : Q2Presentation.BoundaryFramedTarget} (self : Q2Presentation.BoundaryFrame Yt) :
      Q2Presentation.Boundary ⟶ ProfiniteGrp.ofFiniteGrp (FiniteGrp.of (Yt.H × Multiplicative Yt.E))The induced boundary map `β : ∂_bd → H × Multiplicative E`. )
              ((ProfiniteGrp.Hom.homProfiniteGrp.Hom.hom.{u} {M N : ProfiniteGrp.{u}} (f : M.Hom N) : ↑M.toProfinite.toTop →ₜ* ↑N.toProfinite.toTopThe underlying `ContinuousMonoidHom`. 
                  Q2Presentation.boundaryPackage_GammaAQ2Presentation.boundaryPackage_GammaA : Q2Presentation.BoundaryPackage Q2Presentation.GammaA**The candidate boundary package** (manuscript Prop 3.14, `prop:compatiblemarking`;
    plan Turn 4 §6).  The Stage-C data of `Γ_A`: the common tame quotient `gammaTameMap`,
    the maximal pro-`2` quotient `p : Γ_A ⟶ Π`, and the common unramified character
    `ν = gammaTameMap ≫ ν_t`, through which both factor. .toBoundaryQ2Presentation.BoundaryPackage.toBoundary {Γ : ProfiniteGrp.{0}} (B : Q2Presentation.BoundaryPackage Γ) :
      Γ ⟶ Q2Presentation.Boundary**The boundary map** `b_Γ : Γ ⟶ ∂_bd` (manuscript `eq:boundarymap`), the universal
    map into the fibre product induced by the compatible pair `(tameMap, pro2Map)`. )
                (Q2Presentation.gammaGenQ2Presentation.gammaGen (a : Q2Presentation.Gen) : ↑Q2Presentation.GammaA.toProfinite.toTopThe four universal generators `σ, τ, x₀, x₁` of `Γ_A`, as the compatible
    families of marked generators.  aQ2Presentation.Gen)))
      (WSubmodule (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)) :
        SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Lifting.NAddQ2Presentation.Lifting.NAdd {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) : TypeThe additive `F₂`-carrier of an elementary kernel. 
            (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge. 
              chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1)))
      (hWst∀ (y : p.fst.Y),
      ∀ m ∈ W, ((Q2Presentation.Lifting.conjFamily (Q2Presentation.Induction.mstageKernel chief K hR)).op y) m ∈ W :
         (yp.fst.Y : pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .YQ2Presentation.BoundaryFramedTarget.Y (self : Q2Presentation.BoundaryFramedTarget) : TypeThe finite target group `Y`. ),
           mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)  WSubmodule (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)),
            ((Q2Presentation.Lifting.conjFamilyQ2Presentation.Lifting.conjFamily {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) :
      Q2Presentation.Lifting.OperatorFamily Yt (Q2Presentation.Lifting.NAdd E)The concrete conjugation family of an elementary kernel. 
                      (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge. 
                        chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1)).opQ2Presentation.Lifting.OperatorFamily.op {Yt : Q2Presentation.BoundaryFramedTarget} {V : Type} [AddCommGroup V]
      [Module (ZMod 2) V] (self : Q2Presentation.Lifting.OperatorFamily Yt V) : Yt.Y → Module.End (ZMod 2) V
                  yp.fst.Y)
                mQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR) Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`.
              WSubmodule (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)))
      (wQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR) :
        Q2Presentation.Lifting.NAddQ2Presentation.Lifting.NAdd {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) : TypeThe additive `F₂`-carrier of an elementary kernel. 
          (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge. 
            chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1))
      (hwfix∀ (y : p.fst.Y), ((Q2Presentation.Lifting.conjFamily (Q2Presentation.Induction.mstageKernel chief K hR)).op y) w - w ∈ W :
         (yp.fst.Y : pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .YQ2Presentation.BoundaryFramedTarget.Y (self : Q2Presentation.BoundaryFramedTarget) : TypeThe finite target group `Y`. ),
          ((Q2Presentation.Lifting.conjFamilyQ2Presentation.Lifting.conjFamily {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) :
      Q2Presentation.Lifting.OperatorFamily Yt (Q2Presentation.Lifting.NAdd E)The concrete conjugation family of an elementary kernel. 
                      (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge. 
                        chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1)).opQ2Presentation.Lifting.OperatorFamily.op {Yt : Q2Presentation.BoundaryFramedTarget} {V : Type} [AddCommGroup V]
      [Module (ZMod 2) V] (self : Q2Presentation.Lifting.OperatorFamily Yt V) : Yt.Y → Module.End (ZMod 2) V
                  yp.fst.Y)
                wQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR) -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`.
    The meaning of this notation is type-dependent.
    * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).
              wQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR) Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`.
            WSubmodule (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)))
      (hwWw ∉ W : wQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)  WSubmodule (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR))) :
       nQ2Presentation.Gen → Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR),
        Q2Presentation.Lifting.foxShadowGenQ2Presentation.Lifting.foxShadowGen {Yt : Q2Presentation.BoundaryFramedTarget} [Finite Yt.Y] {V : Type} [AddCommGroup V]
      [Module (ZMod 2) V] (Φ : Yt.Y → Module.End (ZMod 2) V) (q : Q2Presentation.Marking Yt.Y)
      (n : Q2Presentation.Gen → V) : Q2Presentation.GExpr → VThe shadow recursion over an abstract operator family. 
                (Q2Presentation.Lifting.conjFamilyQ2Presentation.Lifting.conjFamily {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) :
      Q2Presentation.Lifting.OperatorFamily Yt (Q2Presentation.Lifting.NAdd E)The concrete conjugation family of an elementary kernel. 
                    (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge. 
                      chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1)).opQ2Presentation.Lifting.OperatorFamily.op {Yt : Q2Presentation.BoundaryFramedTarget} {V : Type} [AddCommGroup V]
      [Module (ZMod 2) V] (self : Q2Presentation.Lifting.OperatorFamily Yt V) : Yt.Y → Module.End (ZMod 2) V
                qQ2Presentation.Marking p.fst.Y nQ2Presentation.Gen → Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)
                Q2Presentation.Q2Word.tameRelatorQ2Presentation.Q2Word.tameRelator : Q2Presentation.GExprThe tame relator `τ^σ · (τ²)⁻¹` (the relation `τ^σ = τ²`).  -HSub.hSub.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HSub α β γ] : α → β → γ`a - b` computes the difference of `a` and `b`.
    The meaning of this notation is type-dependent.
    * For natural numbers, this operator saturates at 0: `a - b = 0` when `a ≤ b`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `-` in identifiers is `sub` (when used as a binary operator).
              wQ2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR) Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`.
            WSubmodule (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          Q2Presentation.Lifting.foxShadowGenQ2Presentation.Lifting.foxShadowGen {Yt : Q2Presentation.BoundaryFramedTarget} [Finite Yt.Y] {V : Type} [AddCommGroup V]
      [Module (ZMod 2) V] (Φ : Yt.Y → Module.End (ZMod 2) V) (q : Q2Presentation.Marking Yt.Y)
      (n : Q2Presentation.Gen → V) : Q2Presentation.GExpr → VThe shadow recursion over an abstract operator family. 
              (Q2Presentation.Lifting.conjFamilyQ2Presentation.Lifting.conjFamily {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) :
      Q2Presentation.Lifting.OperatorFamily Yt (Q2Presentation.Lifting.NAdd E)The concrete conjugation family of an elementary kernel. 
                  (Q2Presentation.Induction.mstageKernelQ2Presentation.Induction.mstageKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hR : Nat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1) : Q2Presentation.Lifting.ElementaryKernel p.fst**The mstage consumer kernel**, bundled for the cocycle bridge. 
                    chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor hRNat.card ↥(Q2Presentation.Induction.kernelFrattini K) = 1)).opQ2Presentation.Lifting.OperatorFamily.op {Yt : Q2Presentation.BoundaryFramedTarget} {V : Type} [AddCommGroup V]
      [Module (ZMod 2) V] (self : Q2Presentation.Lifting.OperatorFamily Yt V) : Yt.Y → Module.End (ZMod 2) V
              qQ2Presentation.Marking p.fst.Y nQ2Presentation.Gen → Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR)
              Q2Presentation.Q2Word.wildRelatorQ2Presentation.Q2Word.wildRelator : Q2Presentation.GExprThe wild relator `h₀ · u₁⁻¹ · x₁^σ · c₀` (the relation `h₀ u₁⁻¹ x₁^σ c₀ = 1`).  Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`.
            WSubmodule (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.mstageKernel chief K hR))
    **The radical Bockstein witness, PROVEN** (T-layer content of
    `lem:simplehead` part 2 / `prop:defduality` via the full dévissage):
    every relatively fixed vector outside a stable floor admits an ambient
    tuple whose rows are `(w, 0)` modulo the floor — indeed on the nose. 
  • theoremdefined in Q2Presentation/Induction/Section7DualInvariantVanishes.lean
    complete
    theorem Q2Presentation.Induction.towerDualInv_zero
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.KernelMinimal chief : Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.NonScalarChiefFactor p)
      (φModule.Dual (ZMod 2) (Q2Presentation.Induction.towerM K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief))
      (hinv∀ (c : Q2Presentation.Induction.towerC K), φ ∘ₗ ↑((Q2Presentation.Induction.towerActM K) c) = φ :
         (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief),
          φModule.Dual (ZMod 2) (Q2Presentation.Induction.towerM K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  ((Q2Presentation.Induction.towerActMQ2Presentation.Induction.towerActM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Q2Presentation.Induction.towerC K →* Q2Presentation.Induction.towerM K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerM KThe conjugation action of the lower target `C = Y/K` on the additive module
    `M = K/Φ(K)`, as `ZMod 2`-linear equivalences — the manuscript's `𝔽₂[C]`-module
    structure on `M` (`lem:simplehead`), fully constructed.  KQ2Presentation.Induction.KernelMinimal chief) cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. φModule.Dual (ZMod 2) (Q2Presentation.Induction.towerM K)) :
      φModule.Dual (ZMod 2) (Q2Presentation.Induction.towerM K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0
    theorem Q2Presentation.Induction.towerDualInv_zero
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.KernelMinimal chief :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.NonScalarChiefFactor p)
      (φModule.Dual (ZMod 2) (Q2Presentation.Induction.towerM K) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief))
      (hinv∀ (c : Q2Presentation.Induction.towerC K), φ ∘ₗ ↑((Q2Presentation.Induction.towerActM K) c) = φ :
        
          (cQ2Presentation.Induction.towerC K :
            Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`). 
              KQ2Presentation.Induction.KernelMinimal chief),
          φModule.Dual (ZMod 2) (Q2Presentation.Induction.towerM K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map 
              ((Q2Presentation.Induction.towerActMQ2Presentation.Induction.towerActM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Q2Presentation.Induction.towerC K →* Q2Presentation.Induction.towerM K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerM KThe conjugation action of the lower target `C = Y/K` on the additive module
    `M = K/Φ(K)`, as `ZMod 2`-linear equivalences — the manuscript's `𝔽₂[C]`-module
    structure on `M` (`lem:simplehead`), fully constructed. 
                    KQ2Presentation.Induction.KernelMinimal chief)
                  cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            φModule.Dual (ZMod 2) (Q2Presentation.Induction.towerM K)) :
      φModule.Dual (ZMod 2) (Q2Presentation.Induction.towerM K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0
    **Dual-invariant vanishing** (`lem:simplehead`): a `C`-invariant functional on
    `M = K/Φ(K)` is zero. 
  • theoremdefined in Q2Presentation/Induction/Section7KernelRoute180Closers.lean
    complete
    theorem Q2Presentation.Induction.Section7KernelRoute180Closers.rawSimpleHeadActualData_from_route180Pieces
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockRawTowerData p chief : Q2Presentation.Induction.MinimalBlockRawTowerDataQ2Presentation.Induction.MinimalBlockRawTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The raw module-level quotient tower supplied by the Section 7 choice of the
    minimal normal subgroup `K`.
    
    This deliberately stops before the simple-head representation input, determinant
    characters, and pushouts.  It records only the finite `F_2` modules
    `R = Phi(K)`, `M = K/R`, the submodule `T`, the quotient group `C = Y/K`, the two
    actions, and stability of `T`.  pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.Section7KernelRoute143RawActualClosers.RawSimpleHeadActualDataQ2Presentation.Induction.Section7KernelRoute143RawActualClosers.RawSimpleHeadActualData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockRawTowerData p chief) : PropRoute143 raw simple-head packet on one selected raw tower. 
          DQ2Presentation.Induction.MinimalBlockRawTowerData p chief)
    theorem Q2Presentation.Induction.Section7KernelRoute180Closers.rawSimpleHeadActualData_from_route180Pieces
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockRawTowerData p chief :
        Q2Presentation.Induction.MinimalBlockRawTowerDataQ2Presentation.Induction.MinimalBlockRawTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The raw module-level quotient tower supplied by the Section 7 choice of the
    minimal normal subgroup `K`.
    
    This deliberately stops before the simple-head representation input, determinant
    characters, and pushouts.  It records only the finite `F_2` modules
    `R = Phi(K)`, `M = K/R`, the submodule `T`, the quotient group `C = Y/K`, the two
    actions, and stability of `T`. 
          pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.Section7KernelRoute143RawActualClosers.RawSimpleHeadActualDataQ2Presentation.Induction.Section7KernelRoute143RawActualClosers.RawSimpleHeadActualData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockRawTowerData p chief) : PropRoute143 raw simple-head packet on one selected raw tower. 
          DQ2Presentation.Induction.MinimalBlockRawTowerData p chief)
    Route180 opens the Route143 simple-head aggregate into the four Route43
    `lem:simplehead` leaves. 
  • defdefined in Q2Presentation/Induction/Section7PushoutConstruction.lean
    complete
    def Q2Presentation.Induction.KillsFrattiniInterS
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)) :
      PropThe universe of propositions. `Prop ≡ Sort 0`.
    
    Every proposition is propositionally equal to either `True` or `False`. 
    def Q2Presentation.Induction.KillsFrattiniInterS
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer. 
            chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)) :
      PropThe universe of propositions. `Prop ≡ Sort 0`.
    
    Every proposition is propositionally equal to either `True` or `False`. 
    **The §7 kill hypothesis** (`lem:simplehead` content, to be supplied by the
    crux residual): the character kills the ambient `Φ(K) ∩ S` layer. 
  • theoremdefined in Q2Presentation/Induction/Section7PushoutConstruction.lean
    complete
    theorem Q2Presentation.Induction.sec7_stable_submodule_dichotomy
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (WSubmodule (ZMod 2) (Q2Presentation.Induction.towerM K) : SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
      (hstable∀ (c : Q2Presentation.Induction.towerC K), ∀ m ∈ W, ((Q2Presentation.Induction.towerActM K) c) m ∈ W :
         (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
           mQ2Presentation.Induction.towerM K  WSubmodule (ZMod 2) (Q2Presentation.Induction.towerM K), ((Q2Presentation.Induction.towerActMQ2Presentation.Induction.towerActM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Q2Presentation.Induction.towerC K →* Q2Presentation.Induction.towerM K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerM KThe conjugation action of the lower target `C = Y/K` on the additive module
    `M = K/Φ(K)`, as `ZMod 2`-linear equivalences — the manuscript's `𝔽₂[C]`-module
    structure on `M` (`lem:simplehead`), fully constructed.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) cQ2Presentation.Induction.towerC K) mQ2Presentation.Induction.towerM K Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. WSubmodule (ZMod 2) (Q2Presentation.Induction.towerM K))
      (hTWQ2Presentation.Induction.towerT K ≤ W : Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≤` in identifiers is `le`.
    
     * The recommended spelling of `<=` in identifiers is `le` (prefer `≤` over `<=`). WSubmodule (ZMod 2) (Q2Presentation.Induction.towerM K)) :
      WSubmodule (ZMod 2) (Q2Presentation.Induction.towerM K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor Or (a b : Prop) : Prop`Or a b`, or `a ∨ b`, is the disjunction of propositions. There are two
    constructors for `Or`, called `Or.inl : a → a ∨ b` and `Or.inr : b → a ∨ b`,
    and you can use `match` or `cases` to destruct an `Or` assumption into the
    two cases.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∨` in identifiers is `or`.
    
     * The recommended spelling of `\/` in identifiers is `or` (prefer `∨` over `\/`). WSubmodule (ZMod 2) (Q2Presentation.Induction.towerM K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. Top.top.{u_1} {α : Type u_1} [self : Top α] : αThe top (`⊤`, `\top`) element 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊤` in identifiers is `top`.
    theorem Q2Presentation.Induction.sec7_stable_submodule_dichotomy
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (WSubmodule (ZMod 2) (Q2Presentation.Induction.towerM K) :
        SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
      (hstable∀ (c : Q2Presentation.Induction.towerC K), ∀ m ∈ W, ((Q2Presentation.Induction.towerActM K) c) m ∈ W :
        
          (cQ2Presentation.Induction.towerC K :
            Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`). 
              KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
           mQ2Presentation.Induction.towerM K  WSubmodule (ZMod 2) (Q2Presentation.Induction.towerM K),
            ((Q2Presentation.Induction.towerActMQ2Presentation.Induction.towerActM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Q2Presentation.Induction.towerC K →* Q2Presentation.Induction.towerM K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerM KThe conjugation action of the lower target `C = Y/K` on the additive module
    `M = K/Φ(K)`, as `ZMod 2`-linear equivalences — the manuscript's `𝔽₂[C]`-module
    structure on `M` (`lem:simplehead`), fully constructed. 
                    KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
                  cQ2Presentation.Induction.towerC K)
                mQ2Presentation.Induction.towerM K Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`.
              WSubmodule (ZMod 2) (Q2Presentation.Induction.towerM K))
      (hTWQ2Presentation.Induction.towerT K ≤ W :
        Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≤` in identifiers is `le`.
    
     * The recommended spelling of `<=` in identifiers is `le` (prefer `≤` over `<=`).
          WSubmodule (ZMod 2) (Q2Presentation.Induction.towerM K)) :
      WSubmodule (ZMod 2) (Q2Presentation.Induction.towerM K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor Or (a b : Prop) : Prop`Or a b`, or `a ∨ b`, is the disjunction of propositions. There are two
    constructors for `Or`, called `Or.inl : a → a ∨ b` and `Or.inr : b → a ∨ b`,
    and you can use `match` or `cases` to destruct an `Or` assumption into the
    two cases.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∨` in identifiers is `or`.
    
     * The recommended spelling of `\/` in identifiers is `or` (prefer `∨` over `\/`).
        WSubmodule (ZMod 2) (Q2Presentation.Induction.towerM K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. Top.top.{u_1} {α : Type u_1} [self : Top α] : αThe top (`⊤`, `\top`) element 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊤` in identifiers is `top`.
    **Head simplicity, upstairs form** (`lem:simplehead`): a `C`-stable submodule
    between `T` and `M` is `T` or all of `M`. 
  • theoremdefined in Q2Presentation/Induction/Section7ShearSplitting.lean
    complete
    theorem Induction3EShearBuild.Vq_stable_bot_or_top
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
      (hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam :
         (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
          lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (USubmodule (ZMod 2) (Induction3BShear.Vq chief K lam hinv) : SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Induction3BShear.VqInduction3BShear.Vq {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hinv : ∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) :
      TypeThe head `V̄ = M̄/T̄`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam))
      (hstab∀ (c : Q2Presentation.Induction.towerC K), ∀ v ∈ U, (Induction3BShear.actVq chief K lam hinv c) v ∈ U :
         (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
           vInduction3BShear.Vq chief K lam hinv  USubmodule (ZMod 2) (Induction3BShear.Vq chief K lam hinv), (Induction3BShear.actVqInduction3BShear.actVq {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hinv : ∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam)
      (c : Q2Presentation.Induction.towerC K) :
      Induction3BShear.Vq chief K lam hinv ≃ₗ[ZMod 2] Induction3BShear.Vq chief K lam hinvThe head action.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam cQ2Presentation.Induction.towerC K) vInduction3BShear.Vq chief K lam hinv Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. USubmodule (ZMod 2) (Induction3BShear.Vq chief K lam hinv)) :
      USubmodule (ZMod 2) (Induction3BShear.Vq chief K lam hinv) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. Bot.bot.{u_1} {α : Type u_1} [self : Bot α] : αThe bot (`⊥`, `\bot`) element 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊥` in identifiers is `bot`. Or (a b : Prop) : Prop`Or a b`, or `a ∨ b`, is the disjunction of propositions. There are two
    constructors for `Or`, called `Or.inl : a → a ∨ b` and `Or.inr : b → a ∨ b`,
    and you can use `match` or `cases` to destruct an `Or` assumption into the
    two cases.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∨` in identifiers is `or`.
    
     * The recommended spelling of `\/` in identifiers is `or` (prefer `∨` over `\/`). USubmodule (ZMod 2) (Induction3BShear.Vq chief K lam hinv) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. Top.top.{u_1} {α : Type u_1} [self : Top α] : αThe top (`⊤`, `\top`) element 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊤` in identifiers is `top`.
    theorem Induction3EShearBuild.Vq_stable_bot_or_top
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer. 
            chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
      (hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam :
        
          (cQ2Presentation.Induction.towerC K :
            Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`). 
              KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
          lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map 
              ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`. 
                    chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
                  cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (USubmodule (ZMod 2) (Induction3BShear.Vq chief K lam hinv) :
        SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Induction3BShear.VqInduction3BShear.Vq {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hinv : ∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) :
      TypeThe head `V̄ = M̄/T̄`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)
            hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam))
      (hstab∀ (c : Q2Presentation.Induction.towerC K), ∀ v ∈ U, (Induction3BShear.actVq chief K lam hinv c) v ∈ U :
        
          (cQ2Presentation.Induction.towerC K :
            Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`). 
              KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
           vInduction3BShear.Vq chief K lam hinv  USubmodule (ZMod 2) (Induction3BShear.Vq chief K lam hinv),
            (Induction3BShear.actVqInduction3BShear.actVq {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hinv : ∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam)
      (c : Q2Presentation.Induction.towerC K) :
      Induction3BShear.Vq chief K lam hinv ≃ₗ[ZMod 2] Induction3BShear.Vq chief K lam hinvThe head action.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor
                  lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam cQ2Presentation.Induction.towerC K)
                vInduction3BShear.Vq chief K lam hinv Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`.
              USubmodule (ZMod 2) (Induction3BShear.Vq chief K lam hinv)) :
      USubmodule (ZMod 2) (Induction3BShear.Vq chief K lam hinv) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. Bot.bot.{u_1} {α : Type u_1} [self : Bot α] : αThe bot (`⊥`, `\bot`) element 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊥` in identifiers is `bot`. Or (a b : Prop) : Prop`Or a b`, or `a ∨ b`, is the disjunction of propositions. There are two
    constructors for `Or`, called `Or.inl : a → a ∨ b` and `Or.inr : b → a ∨ b`,
    and you can use `match` or `cases` to destruct an `Or` assumption into the
    two cases.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∨` in identifiers is `or`.
    
     * The recommended spelling of `\/` in identifiers is `or` (prefer `∨` over `\/`). USubmodule (ZMod 2) (Induction3BShear.Vq chief K lam hinv) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. Top.top.{u_1} {α : Type u_1} [self : Top α] : αThe top (`⊤`, `\top`) element 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊤` in identifiers is `top`.
    **Head simplicity** (`lem:simplehead` core): a `C`-stable submodule of
    `V̄` is `⊥` or `⊤` — pull back along `bigProj` and lift to a `Y`-normal
    subgroup between `S` and `P`; the chief dichotomy plus ⊆-minimality of `K`
    decide it. 
  • theoremdefined in Q2Presentation/Induction/Section7SimpleHeadRadical.lean
    complete
    theorem Q2Presentation.Induction.head_nontrivial
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.KernelMinimal chief : Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NontrivialNontrivial.{u_3} (α : Type u_3) : PropPredicate typeclass for expressing that a type is not reduced to a single element. In rings,
    this is equivalent to `0 ≠ 1`. In vector spaces, this is equivalent to positive dimension. 
        (HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
          Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief)HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
    theorem Q2Presentation.Induction.head_nontrivial
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.KernelMinimal chief :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NontrivialNontrivial.{u_3} (α : Type u_3) : PropPredicate typeclass for expressing that a type is not reduced to a single element. In rings,
    this is equivalent to `0 ≠ 1`. In vector spaces, this is equivalent to positive dimension. 
        (HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
          Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief)HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
    **The head is nontrivial** (`lem:simplehead`): `M/T ≠ 0`. 
  • theoremdefined in Q2Presentation/Induction/ZeroEdgeMuLocal.lean
    complete
    theorem Q2Presentation.Induction.headInv_eq_zero
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (vQ2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K :
        Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
          Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hv∀ (c : Q2Presentation.Induction.towerC K), (Q2Presentation.Induction.headActE chief K c) v = v :
         (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
          (Q2Presentation.Induction.headActEQ2Presentation.Induction.headActE {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) (c : Q2Presentation.Induction.towerC K) :
      Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K →ₗ[ZMod 2]
        Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT KThe descended `C`-action on the head `V = M/T` (`towerActM` mod the
    stable radical layer, via `Submodule.mapQ`).  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor cQ2Presentation.Induction.towerC K) vQ2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. vQ2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K) :
      vQ2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0
    theorem Q2Presentation.Induction.headInv_eq_zero
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (vQ2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K :
        Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
          Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hv∀ (c : Q2Presentation.Induction.towerC K), (Q2Presentation.Induction.headActE chief K c) v = v :
        
          (cQ2Presentation.Induction.towerC K :
            Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`). 
              KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
          (Q2Presentation.Induction.headActEQ2Presentation.Induction.headActE {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) (c : Q2Presentation.Induction.towerC K) :
      Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K →ₗ[ZMod 2]
        Q2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT KThe descended `C`-action on the head `V = M/T` (`towerActM` mod the
    stable radical layer, via `Submodule.mapQ`). 
                chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor cQ2Presentation.Induction.towerC K)
              vQ2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            vQ2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K) :
      vQ2Presentation.Induction.towerM K ⧸ Q2Presentation.Induction.towerT K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0
    **`V^C = 0`** (`lem:simplehead`'s `h⁰`-side): a `C`-fixed head
    vector vanishes.  Chief dichotomy on `J ⊔ S`: in the `S`-branch the
    fixed vector's kernel representative lies in `K ∩ S`, i.e. the vector
    lies in `T`; in the `P`-branch ⊆-minimality gives `J = K`, ALL of `V`
    is fixed, and any nonzero functional on `V ≠ 0` pulls back along `mkQ`
    to a nonzero `C`-invariant functional on `M` — killed by the proven
    `towerDualInv_zero`. 
Lemma7.2
Group: A minimal non-scalar module layer in the wild kernel (3)
Hover another entry in this group to preview it.
Preview
Lemma 7.1
Loading preview
Hover a group entry to preview it.
L∃∀Nused by 1

Lemma 7.2 of the paper (Frattini–centralizer collapse).

The subgroup R is central elementary abelian in K, and K^4=1.

Lean code for Lemma7.28 declarations
  • theoremdefined in Q2Presentation/Induction/MinimalBlockKernelConcreteRoute24Proofs.lean
    complete
    theorem Q2Presentation.Induction.minimalBlock_kernelConcreteRoute24Data_from_finerPackets
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockKernelConcreteRoute24DataQ2Presentation.Induction.MinimalBlockKernelConcreteRoute24Data {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1Route24 coherent Section 7 kernel/head packet.
    
    Compared with Route23, the fourth field records the actual invariant packet on
    the selected raw tower. The Route12 semantic head/invariant packet is then
    derived theorem-level by `headInvariantOfInvariantActual`.
    
          chiefQ2Presentation.Induction.NonScalarChiefFactor p)
    theorem Q2Presentation.Induction.minimalBlock_kernelConcreteRoute24Data_from_finerPackets
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockKernelConcreteRoute24DataQ2Presentation.Induction.MinimalBlockKernelConcreteRoute24Data {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1Route24 coherent Section 7 kernel/head packet.
    
    Compared with Route23, the fourth field records the actual invariant packet on
    the selected raw tower. The Route12 semantic head/invariant packet is then
    derived theorem-level by `headInvariantOfInvariantActual`.
    
          chiefQ2Presentation.Induction.NonScalarChiefFactor p)
    Route24 packet from finer/current Section 7 APIs.
    
    This proves the Route23-shaped close-out without using the four Route23
    aggregate residual names. Remaining residuals are finer manuscript-shaped
    packets:
    
    * least `K`: candidate plus universal leastness;
    * `lem:collapse`: centrality, fourth-power, exponent, and nonidentity
      Frattini facts;
    * `eq:targettower`: raw module/subquotient objects, transported actions,
      `T`-stability, quotient bridge, and head nonzero witness;
    * `lem:simplehead`: no-trivial-dual, head simplicity, and lower scalar quotient
      on the same raw tower.
    
  • theoremdefined in Q2Presentation/Induction/MinimalBlockKernelConcreteRoute44Proofs.lean
    complete
    theorem Q2Presentation.Induction.MinimalBlockKernelConcreteRoute44.frattiniData_from_route44Collapse
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief :
        Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefDataQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeNarrow kernel-choice packet: a least candidate over the selected chief factor.
    
    The current downstream semantic packet asks for this leastness as
    `Ksub <= K'` for every other candidate `K'`.  That is stronger than mere
    finite-poset minimality, so it is kept as the finite-group choice content rather
    than hidden behind a false finite-minimization proof. 
          chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockKernelModuleConcreteFrattiniDataQ2Presentation.Induction.MinimalBlockKernelModuleConcreteFrattiniData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (K : Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief) : PropManuscript `lem:collapse` for the literal Frattini subgroup of the chosen
    least kernel `K`.
    
    Compared with `MinimalBlockFrattiniCollapseData`, this keeps the actual collapse
    facts that were present in the aggregate packet: centrality in `K`, `K^4 = 1`,
    and exponent two on `Phi(K)`. 
          KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief)
    theorem Q2Presentation.Induction.MinimalBlockKernelConcreteRoute44.frattiniData_from_route44Collapse
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief :
        Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefDataQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeNarrow kernel-choice packet: a least candidate over the selected chief factor.
    
    The current downstream semantic packet asks for this leastness as
    `Ksub <= K'` for every other candidate `K'`.  That is stronger than mere
    finite-poset minimality, so it is kept as the finite-group choice content rather
    than hidden behind a false finite-minimization proof. 
          chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockKernelModuleConcreteFrattiniDataQ2Presentation.Induction.MinimalBlockKernelModuleConcreteFrattiniData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (K : Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief) : PropManuscript `lem:collapse` for the literal Frattini subgroup of the chosen
    least kernel `K`.
    
    Compared with `MinimalBlockFrattiniCollapseData`, this keeps the actual collapse
    facts that were present in the aggregate packet: centrality in `K`, `K^4 = 1`,
    and exponent two on `Phi(K)`. 
          KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief)
    Route44 Frattini data from the coherent `lem:collapse` packet.
    
    This avoids the Route43/Route40 split leaves
    `minimalBlock_kernelModuleConcreteFrattiniNonidentityData`,
    `minimalBlock_kernelModuleConcreteFrattiniCentralData`,
    `minimalBlock_kernelModuleConcreteFourthPowerData`, and
    `minimalBlock_kernelModuleConcreteFrattiniExponentData`.
    
  • theoremdefined in Q2Presentation/Induction/MinimalBlockKernelConcreteRoute45Proofs.lean
    complete
    theorem Q2Presentation.Induction.MinimalBlockKernelConcreteRoute45.frattiniData_from_route45Split
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief :
        Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefDataQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeNarrow kernel-choice packet: a least candidate over the selected chief factor.
    
    The current downstream semantic packet asks for this leastness as
    `Ksub <= K'` for every other candidate `K'`.  That is stronger than mere
    finite-poset minimality, so it is kept as the finite-group choice content rather
    than hidden behind a false finite-minimization proof. 
          chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockKernelModuleConcreteFrattiniDataQ2Presentation.Induction.MinimalBlockKernelModuleConcreteFrattiniData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (K : Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief) : PropManuscript `lem:collapse` for the literal Frattini subgroup of the chosen
    least kernel `K`.
    
    Compared with `MinimalBlockFrattiniCollapseData`, this keeps the actual collapse
    facts that were present in the aggregate packet: centrality in `K`, `K^4 = 1`,
    and exponent two on `Phi(K)`. 
          KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief)
    theorem Q2Presentation.Induction.MinimalBlockKernelConcreteRoute45.frattiniData_from_route45Split
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief :
        Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefDataQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeNarrow kernel-choice packet: a least candidate over the selected chief factor.
    
    The current downstream semantic packet asks for this leastness as
    `Ksub <= K'` for every other candidate `K'`.  That is stronger than mere
    finite-poset minimality, so it is kept as the finite-group choice content rather
    than hidden behind a false finite-minimization proof. 
          chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockKernelModuleConcreteFrattiniDataQ2Presentation.Induction.MinimalBlockKernelModuleConcreteFrattiniData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (K : Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief) : PropManuscript `lem:collapse` for the literal Frattini subgroup of the chosen
    least kernel `K`.
    
    Compared with `MinimalBlockFrattiniCollapseData`, this keeps the actual collapse
    facts that were present in the aggregate packet: centrality in `K`, `K^4 = 1`,
    and exponent two on `Phi(K)`. 
          KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief)
    Route45 Frattini data through the field-level `lem:collapse` split. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlockKernelRoute106FrattiniClosers.lean
    complete
    theorem Q2Presentation.Induction.MinimalBlockKernelRoute106FrattiniClosers.frattiniData_from_route106Coherent
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief :
        Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefDataQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeNarrow kernel-choice packet: a least candidate over the selected chief factor.
    
    The current downstream semantic packet asks for this leastness as
    `Ksub <= K'` for every other candidate `K'`.  That is stronger than mere
    finite-poset minimality, so it is kept as the finite-group choice content rather
    than hidden behind a false finite-minimization proof. 
          chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockKernelModuleConcreteFrattiniDataQ2Presentation.Induction.MinimalBlockKernelModuleConcreteFrattiniData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (K : Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief) : PropManuscript `lem:collapse` for the literal Frattini subgroup of the chosen
    least kernel `K`.
    
    Compared with `MinimalBlockFrattiniCollapseData`, this keeps the actual collapse
    facts that were present in the aggregate packet: centrality in `K`, `K^4 = 1`,
    and exponent two on `Phi(K)`. 
          KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief)
    theorem Q2Presentation.Induction.MinimalBlockKernelRoute106FrattiniClosers.frattiniData_from_route106Coherent
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief :
        Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefDataQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeNarrow kernel-choice packet: a least candidate over the selected chief factor.
    
    The current downstream semantic packet asks for this leastness as
    `Ksub <= K'` for every other candidate `K'`.  That is stronger than mere
    finite-poset minimality, so it is kept as the finite-group choice content rather
    than hidden behind a false finite-minimization proof. 
          chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockKernelModuleConcreteFrattiniDataQ2Presentation.Induction.MinimalBlockKernelModuleConcreteFrattiniData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (K : Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief) : PropManuscript `lem:collapse` for the literal Frattini subgroup of the chosen
    least kernel `K`.
    
    Compared with `MinimalBlockFrattiniCollapseData`, this keeps the actual collapse
    facts that were present in the aggregate packet: centrality in `K`, `K^4 = 1`,
    and exponent two on `Phi(K)`. 
          KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief)
    Frattini data for the selected `K`, projected from the coherent manuscript
    `lem:collapse` packet rather than the independent concrete Frattini leaves. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlockKernelRoute90Closers.lean
    complete
    theorem Q2Presentation.Induction.MinimalBlockKernelRoute90Closers.frattiniCentralizerCollapseSectionData_from_route90
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief :
        Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefDataQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeNarrow kernel-choice packet: a least candidate over the selected chief factor.
    
    The current downstream semantic packet asks for this leastness as
    `Ksub <= K'` for every other candidate `K'`.  That is stronger than mere
    finite-poset minimality, so it is kept as the finite-group choice content rather
    than hidden behind a false finite-minimization proof. 
          chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockKernelRoute85Closers.FrattiniCentralizerCollapseSectionDataQ2Presentation.Induction.MinimalBlockKernelRoute85Closers.FrattiniCentralizerCollapseSectionData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (K : Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief) : TypeRoute85 manuscript-shaped Frattini--centralizer collapse packet.
    
    The fields are the selected pieces needed by the existing Route78/Route63
    conversion API, but they are owned by one selected `K`, following
    `lem:collapse` rather than the Route81 atomization.
    
          KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief)
    theorem Q2Presentation.Induction.MinimalBlockKernelRoute90Closers.frattiniCentralizerCollapseSectionData_from_route90
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief :
        Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefDataQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeNarrow kernel-choice packet: a least candidate over the selected chief factor.
    
    The current downstream semantic packet asks for this leastness as
    `Ksub <= K'` for every other candidate `K'`.  That is stronger than mere
    finite-poset minimality, so it is kept as the finite-group choice content rather
    than hidden behind a false finite-minimization proof. 
          chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockKernelRoute85Closers.FrattiniCentralizerCollapseSectionDataQ2Presentation.Induction.MinimalBlockKernelRoute85Closers.FrattiniCentralizerCollapseSectionData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (K : Q2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief) : TypeRoute85 manuscript-shaped Frattini--centralizer collapse packet.
    
    The fields are the selected pieces needed by the existing Route78/Route63
    conversion API, but they are owned by one selected `K`, following
    `lem:collapse` rather than the Route81 atomization.
    
          KQ2Presentation.Induction.MinimalBlockKernelLeastOverChiefData chief)
    Route90 replacement for Route85's Frattini--centralizer collapse packet.
    
    This is the manuscript Lemma 7.2 packet rebuilt from the Route81 lower split:
    internal nonidentity in `Phi(K)`, centralizer core/image, fourth-power
    core/image, and the generated elementary Frattini layer.
    
  • theoremdefined in Q2Presentation/Induction/Section7ChiefElementary.lean
    complete
    theorem Q2Presentation.Induction.kernelFrattini_le_lower
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.KernelMinimal chief : Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      Q2Presentation.Induction.kernelFrattiniQ2Presentation.Induction.kernelFrattini {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.YThe literal Frattini subgroup `R = Φ(K)` of the kernel, as a subgroup of `Y`
    (the manuscript's `R`, l.3626).  KQ2Presentation.Induction.KernelMinimal chief LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≤` in identifiers is `le`.
    
     * The recommended spelling of `<=` in identifiers is `le` (prefer `≤` over `<=`). chiefQ2Presentation.Induction.NonScalarChiefFactor p.lowerQ2Presentation.Induction.NonScalarChiefFactor.lower {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.NonScalarChiefFactor p) : Subgroup p.fst.Y
    theorem Q2Presentation.Induction.kernelFrattini_le_lower
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.KernelMinimal chief :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      Q2Presentation.Induction.kernelFrattiniQ2Presentation.Induction.kernelFrattini {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.YThe literal Frattini subgroup `R = Φ(K)` of the kernel, as a subgroup of `Y`
    (the manuscript's `R`, l.3626). 
          KQ2Presentation.Induction.KernelMinimal chief LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≤` in identifiers is `le`.
    
     * The recommended spelling of `<=` in identifiers is `le` (prefer `≤` over `<=`).
        chiefQ2Presentation.Induction.NonScalarChiefFactor p.lowerQ2Presentation.Induction.NonScalarChiefFactor.lower {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.NonScalarChiefFactor p) : Subgroup p.fst.Y
    **`R = Φ(K) ≤ S`** (`lem:collapse` step (ii)): `K/(K∩S)` is elementary abelian
    (squares and commutators of `K ≤ P` land in `S`), so the Burnside converse pins the
    Frattini subgroup inside `K ∩ S`. 
  • theoremdefined in Q2Presentation/Induction/Section7FrattiniCentral.lean
    complete
    theorem Q2Presentation.Induction.kernel_commutator_frattini_eq_bot
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      Bracket.bracket.{u_1, u_2} {L : Type u_1} {M : Type u_2} [self : Bracket L M] : L → M → M`⁅x, y⁆` is the result of a bracket operation on elements `x` and `y`.
    It is supported by the `Bracket` typeclass. KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor.KsubQ2Presentation.Induction.KernelMinimal.Ksub {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (self : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.Y,Bracket.bracket.{u_1, u_2} {L : Type u_1} {M : Type u_2} [self : Bracket L M] : L → M → M`⁅x, y⁆` is the result of a bracket operation on elements `x` and `y`.
    It is supported by the `Bracket` typeclass.  Q2Presentation.Induction.kernelFrattiniQ2Presentation.Induction.kernelFrattini {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.YThe literal Frattini subgroup `R = Φ(K)` of the kernel, as a subgroup of `Y`
    (the manuscript's `R`, l.3626).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorBracket.bracket.{u_1, u_2} {L : Type u_1} {M : Type u_2} [self : Bracket L M] : L → M → M`⁅x, y⁆` is the result of a bracket operation on elements `x` and `y`.
    It is supported by the `Bracket` typeclass.  =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. Bot.bot.{u_1} {α : Type u_1} [self : Bot α] : αThe bot (`⊥`, `\bot`) element 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊥` in identifiers is `bot`.
    theorem Q2Presentation.Induction.kernel_commutator_frattini_eq_bot
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      Bracket.bracket.{u_1, u_2} {L : Type u_1} {M : Type u_2} [self : Bracket L M] : L → M → M`⁅x, y⁆` is the result of a bracket operation on elements `x` and `y`.
    It is supported by the `Bracket` typeclass. KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor.KsubQ2Presentation.Induction.KernelMinimal.Ksub {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (self : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.Y,Bracket.bracket.{u_1, u_2} {L : Type u_1} {M : Type u_2} [self : Bracket L M] : L → M → M`⁅x, y⁆` is the result of a bracket operation on elements `x` and `y`.
    It is supported by the `Bracket` typeclass. 
          Q2Presentation.Induction.kernelFrattiniQ2Presentation.Induction.kernelFrattini {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.YThe literal Frattini subgroup `R = Φ(K)` of the kernel, as a subgroup of `Y`
    (the manuscript's `R`, l.3626). 
            KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorBracket.bracket.{u_1, u_2} {L : Type u_1} {M : Type u_2} [self : Bracket L M] : L → M → M`⁅x, y⁆` is the result of a bracket operation on elements `x` and `y`.
    It is supported by the `Bracket` typeclass.  =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
        Bot.bot.{u_1} {α : Type u_1} [self : Bot α] : αThe bot (`⊥`, `\bot`) element 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊥` in identifiers is `bot`.
    **`lem:collapse`, central branch.**  For the manuscript's minimal kernel
    `K`, its Frattini layer `R = Φ(K)` is centralized by `K`. 
  • defdefined in Q2Presentation/Induction/XRKernel.lean
    complete
    def Q2Presentation.Induction.xrKernel
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      Q2Presentation.Lifting.ElementaryKernelQ2Presentation.Lifting.ElementaryKernel (Yt : Q2Presentation.BoundaryFramedTarget) : TypeA normal subgroup of a framed target that is killed by the decoration,
    contained in the wild kernel, **abelian**, and of **exponent 2** — the shape
    of the chief kernels the cochain keeps quantify over.  pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    
    def Q2Presentation.Induction.xrKernel
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      Q2Presentation.Lifting.ElementaryKernelQ2Presentation.Lifting.ElementaryKernel (Yt : Q2Presentation.BoundaryFramedTarget) : TypeA normal subgroup of a framed target that is killed by the decoration,
    contained in the wild kernel, **abelian**, and of **exponent 2** — the shape
    of the chief kernels the cochain keeps quantify over. 
        pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    
    **The Frattini layer `R = Φ(K)` as an elementary kernel**
    (`lem:collapse`): normal, inside `L_Y`, `θ`-dead, elementary abelian. 
Lemma7.3
Group: A minimal non-scalar module layer in the wild kernel (3)
Hover another entry in this group to preview it.
Preview
Lemma 7.1
Loading preview
Hover a group entry to preview it.
L∃∀Nused by 0

Lemma 7.3 of the paper (Decorations vanish on the block).

Every homomorphism from Y to an elementary abelian 2-group vanishes on K.

Lean code for Lemma7.34 theorems
  • theoremdefined in Q2Presentation/Induction/CentralCoverRealizationBlockConcrete.lean
    complete
    theorem Q2Presentation.Induction.centralCover_realization_of_blockConcrete
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p : Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields.  pQ2Presentation.Induction.FramedPair)
      (DsubQ2Presentation.Induction.CentralCoverTargetSubgroupConcreteData B :
        Q2Presentation.Induction.CentralCoverTargetSubgroupConcreteDataQ2Presentation.Induction.CentralCoverTargetSubgroupConcreteData {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : TypeConcrete subgroup provenance behind `centralCover_targetSubgroupTowerData`.
    
    This is the manuscript-level target tower before quotient children are attached:
    `R = Phi(K)`, `R <= K <= L_Y`, normality in `Y`, nontrivial `R`, and the
    identification of the elementary quotient `K/R` with the abstract module `M`.
    The quotient `K/R` is represented as the image of `K` in `Y/R`.  BQ2Presentation.Induction.MinimalBlock p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
     (Q2Presentation.Induction.CoverRealizationQ2Presentation.Induction.CoverRealization {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : Type 1**The §8 central-cover obstruction realization over a minimal block** (`sec:fourier`).
    Source-uniform: the strictly-smaller `children`, the source-independent partial-count
    recipe `partialN`.  Per source `Γ`: a finite lift index `X_Γ`, the `R`-valued obstruction
    `o_Γ : X_Γ → O_R = B.obstructionSpace`, the `R`-cocycle group `Z_Γ = Z¹_Γ(R)` (`|Z_Γ| = z_R`)
    with the per-point `R`-lift torsors `Lift_Γ`, and the **lift-torsor decomposition** `bijΓ`
    (`prop:finalfourier`: boundary-framed surjections onto `Y` = the disjoint union `Σ` over the
    unobstructed exact-image base maps of the `z_R`-sized `R`-lift torsor), and the partial-count
    realization `partial_Γ` (`eq:recursionR2`–`eq:phasecovertransform`).  The `realize_Γ` count
    equation is **derived** from `bijΓ` via `Lifting.lift_torsor_card`
    (`realizeA_of`/`realizeQ_of`), not stored.  BQ2Presentation.Induction.MinimalBlock p)
    theorem Q2Presentation.Induction.centralCover_realization_of_blockConcrete
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p :
        Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields. 
          pQ2Presentation.Induction.FramedPair)
      (DsubQ2Presentation.Induction.CentralCoverTargetSubgroupConcreteData B :
        Q2Presentation.Induction.CentralCoverTargetSubgroupConcreteDataQ2Presentation.Induction.CentralCoverTargetSubgroupConcreteData {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : TypeConcrete subgroup provenance behind `centralCover_targetSubgroupTowerData`.
    
    This is the manuscript-level target tower before quotient children are attached:
    `R = Phi(K)`, `R <= K <= L_Y`, normality in `Y`, nontrivial `R`, and the
    identification of the elementary quotient `K/R` with the abstract module `M`.
    The quotient `K/R` is represented as the image of `K` in `Y/R`. 
          BQ2Presentation.Induction.MinimalBlock p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.CoverRealizationQ2Presentation.Induction.CoverRealization {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : Type 1**The §8 central-cover obstruction realization over a minimal block** (`sec:fourier`).
    Source-uniform: the strictly-smaller `children`, the source-independent partial-count
    recipe `partialN`.  Per source `Γ`: a finite lift index `X_Γ`, the `R`-valued obstruction
    `o_Γ : X_Γ → O_R = B.obstructionSpace`, the `R`-cocycle group `Z_Γ = Z¹_Γ(R)` (`|Z_Γ| = z_R`)
    with the per-point `R`-lift torsors `Lift_Γ`, and the **lift-torsor decomposition** `bijΓ`
    (`prop:finalfourier`: boundary-framed surjections onto `Y` = the disjoint union `Σ` over the
    unobstructed exact-image base maps of the `z_R`-sized `R`-lift torsor), and the partial-count
    realization `partial_Γ` (`eq:recursionR2`–`eq:phasecovertransform`).  The `realize_Γ` count
    equation is **derived** from `bijΓ` via `Lifting.lift_torsor_card`
    (`realizeA_of`/`realizeQ_of`), not stored. 
          BQ2Presentation.Induction.MinimalBlock p)
    Compatibility wrapper with the original signature: obtains the decoration-kernel
    fact through the Route152 closers (Route28 residual frontier).  Kept for the legacy
    route files; the live corrected branch uses `...WithKernel` with the proven
    `lem:decorationblock` fact instead. 
  • theoremdefined in Q2Presentation/Induction/RadicalEdgeTower.lean
    complete
    theorem Q2Presentation.Induction.Ksub_theta
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (mp.fst.Y : pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .YQ2Presentation.BoundaryFramedTarget.Y (self : Q2Presentation.BoundaryFramedTarget) : TypeThe finite target group `Y`. ) (hmm ∈ K.Ksub : mp.fst.Y Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor.KsubQ2Presentation.Induction.KernelMinimal.Ksub {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (self : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.Y) : pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .thetaYQ2Presentation.BoundaryFramedTarget.thetaY (self : Q2Presentation.BoundaryFramedTarget) :
      self.Y →* Multiplicative self.EThe elementary decoration `θ_Y : Y → Multiplicative E`.  mp.fst.Y =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 1
    theorem Q2Presentation.Induction.Ksub_theta
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (mp.fst.Y : pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .YQ2Presentation.BoundaryFramedTarget.Y (self : Q2Presentation.BoundaryFramedTarget) : TypeThe finite target group `Y`. ) (hmm ∈ K.Ksub : mp.fst.Y Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor.KsubQ2Presentation.Induction.KernelMinimal.Ksub {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (self : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.Y) :
      pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .thetaYQ2Presentation.BoundaryFramedTarget.thetaY (self : Q2Presentation.BoundaryFramedTarget) :
      self.Y →* Multiplicative self.EThe elementary decoration `θ_Y : Y → Multiplicative E`.  mp.fst.Y =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 1
    The decoration kills the kernel (`lem:decorationblock`, elementwise). 
  • theoremdefined in Q2Presentation/Induction/Section7FrattiniTrivialElementary.lean
    complete
    theorem Q2Presentation.Induction.Sec7FrattiniTrivialElementaryDecorationProofs.Ksub_le_thetaY_ker
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor.KsubQ2Presentation.Induction.KernelMinimal.Ksub {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (self : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.Y LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≤` in identifiers is `le`.
    
     * The recommended spelling of `<=` in identifiers is `le` (prefer `≤` over `<=`). pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .thetaYQ2Presentation.BoundaryFramedTarget.thetaY (self : Q2Presentation.BoundaryFramedTarget) :
      self.Y →* Multiplicative self.EThe elementary decoration `θ_Y : Y → Multiplicative E`. .kerMonoidHom.ker.{u_1, u_7} {G : Type u_1} [Group G] {M : Type u_7} [MulOneClass M] (f : G →* M) : Subgroup GThe multiplicative kernel of a monoid homomorphism is the subgroup of elements `x : G` such that
    `f x = 1` 
    theorem Q2Presentation.Induction.Sec7FrattiniTrivialElementaryDecorationProofs.Ksub_le_thetaY_ker
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair}
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor.KsubQ2Presentation.Induction.KernelMinimal.Ksub {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (self : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.Y LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≤` in identifiers is `le`.
    
     * The recommended spelling of `<=` in identifiers is `le` (prefer `≤` over `<=`). pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .thetaYQ2Presentation.BoundaryFramedTarget.thetaY (self : Q2Presentation.BoundaryFramedTarget) :
      self.Y →* Multiplicative self.EThe elementary decoration `θ_Y : Y → Multiplicative E`. .kerMonoidHom.ker.{u_1, u_7} {G : Type u_1} [Group G] {M : Type u_7} [MulOneClass M] (f : G →* M) : Subgroup GThe multiplicative kernel of a monoid homomorphism is the subgroup of elements `x : G` such that
    `f x = 1` 
    Manuscript `lem:decorationblock` for the selected elementary layer: the
    decoration kills `K`. 
  • theoremdefined in Q2Presentation/Induction/TargetDecorationKernelProofs.lean
    complete
    theorem Q2Presentation.Induction.TargetDecorationKernelProofs.invariant_blockMap_eq_zero
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p : Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields.  pQ2Presentation.Induction.FramedPair)
      (fB.M →ₗ[ZMod 2] p.fst.E : BQ2Presentation.Induction.MinimalBlock p.MQ2Presentation.Induction.MinimalBlock.M {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.MinimalBlock p) : TypeThe elementary module layer `M = K/R` (`lem:simplehead`).  →ₗ[LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time. ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2]LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time.  pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .EQ2Presentation.BoundaryFramedTarget.E (self : Q2Presentation.BoundaryFramedTarget) : TypeThe elementary `𝔽₂`-vector space `E` carrying the decoration. )
      (hf∀ (c : B.C), f ∘ₗ ↑(B.actM c) = f :  (cB.C : BQ2Presentation.Induction.MinimalBlock p.CQ2Presentation.Induction.MinimalBlock.C {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.MinimalBlock p) : TypeThe lower target `C = Y/K` (`eq:targettower`), acting `𝔽₂`-linearly on `R` and `M`. ), fB.M →ₗ[ZMod 2] p.fst.E ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  (BQ2Presentation.Induction.MinimalBlock p.actMQ2Presentation.Induction.MinimalBlock.actM {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.MinimalBlock p) : self.C →* self.M ≃ₗ[ZMod 2] self.MThe `C`-action on `M` (the `𝔽₂[C]`-module structure of `lem:simplehead`).  cB.C) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. fB.M →ₗ[ZMod 2] p.fst.E) : fB.M →ₗ[ZMod 2] p.fst.E =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0
    theorem Q2Presentation.Induction.TargetDecorationKernelProofs.invariant_blockMap_eq_zero
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p :
        Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields. 
          pQ2Presentation.Induction.FramedPair)
      (fB.M →ₗ[ZMod 2] p.fst.E : BQ2Presentation.Induction.MinimalBlock p.MQ2Presentation.Induction.MinimalBlock.M {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.MinimalBlock p) : TypeThe elementary module layer `M = K/R` (`lem:simplehead`).  →ₗ[LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time. ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2]LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time.  pQ2Presentation.Induction.FramedPair.fstSigma.fst.{u, v} {α : Type u} {β : α → Type v} (self : Sigma β) : αThe first component of a dependent pair.
    .EQ2Presentation.BoundaryFramedTarget.E (self : Q2Presentation.BoundaryFramedTarget) : TypeThe elementary `𝔽₂`-vector space `E` carrying the decoration. )
      (hf∀ (c : B.C), f ∘ₗ ↑(B.actM c) = f :
         (cB.C : BQ2Presentation.Induction.MinimalBlock p.CQ2Presentation.Induction.MinimalBlock.C {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.MinimalBlock p) : TypeThe lower target `C = Y/K` (`eq:targettower`), acting `𝔽₂`-linearly on `R` and `M`. ), fB.M →ₗ[ZMod 2] p.fst.E ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  (BQ2Presentation.Induction.MinimalBlock p.actMQ2Presentation.Induction.MinimalBlock.actM {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.MinimalBlock p) : self.C →* self.M ≃ₗ[ZMod 2] self.MThe `C`-action on `M` (the `𝔽₂[C]`-module structure of `lem:simplehead`).  cB.C) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. fB.M →ₗ[ZMod 2] p.fst.E) :
      fB.M →ₗ[ZMod 2] p.fst.E =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0
    Any `C`-invariant linear map from the block module `M` to the elementary
    decoration module is zero.
    
    This is the formal content of the last sentence of manuscript
    `lem:decorationblock`: a nonzero value in `E` is detected by a linear functional
    `E -> F_2`, contradicting `(M^vee)^C = 0`. 
Proof

Proved in §7 of the paper. Ingredients: Lemma 7.1.

Theorem7.4
Group: A minimal non-scalar module layer in the wild kernel (3)
Hover another entry in this group to preview it.
Preview
Lemma 7.1
Loading preview
Hover a group entry to preview it.
!L∃∀Nused by 0

Proposition 7.4 of the paper (Simple-head determinant).

For every 0\ne\lambda\in \mathcal X_R,

q_\lambda|_{T}=0, \qquad b_\lambda(T,M)=0.

Hence q_\lambda descends to a nonzero nonsingular C-invariant quadratic form

\ol q_\lambda:V\to\F_2.

Lean code for Theorem7.439 declarations, 1 missing
  • defdefined in Q2Presentation/Induction/MinimalBlock.lean
    complete
    def Q2Presentation.Induction.Annihilates.descend.{u_1} {MType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. }
      [AddCommGroupAddCommGroup.{u} (G : Type u) : Type uAn additive commutative group is an additive group with commutative `(+)`.  MType u_1] [ModuleModule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] : Type (max u v)A module is a generalization of vector spaces to a scalar semiring.
    It consists of a scalar semiring `R` and an additive monoid of "vectors" `M`,
    connected by a "scalar multiplication" operation `r • x : M`
    (where `r : R` and `x : M`) with some natural associativity and
    distributivity axioms similar to those on a ring.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1]
      {qQ2Presentation.Quadratic.QuadF2 M : Q2Presentation.Quadratic.QuadF2Q2Presentation.Quadratic.QuadF2.{u_2} (V : Type u_2) [AddCommGroup V] [Module (ZMod 2) V] : Type u_2A **quadratic form over `F₂`** with its bilinear polar (commutator) form.  MType u_1} {TSubmodule (ZMod 2) M : SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1}
      (hQ2Presentation.Induction.Annihilates q T : Q2Presentation.Induction.AnnihilatesQ2Presentation.Induction.Annihilates.{u_1} {M : Type u_1} [AddCommGroup M] [Module (ZMod 2) M]
      (q : Q2Presentation.Quadratic.QuadF2 M) (T : Submodule (ZMod 2) M) : PropA `QuadF2 M` **annihilates** the submodule `T` when its quadratic map vanishes on
    `T` and its polar form kills `T` against all of `M`.  These are *exactly* the two
    conclusions `q_λ|_T = 0` and `b_λ(T, M) = 0` of `prop:simpleheaddet`.  qQ2Presentation.Quadratic.QuadF2 M TSubmodule (ZMod 2) M) :
      Q2Presentation.Quadratic.QuadF2Q2Presentation.Quadratic.QuadF2.{u_2} (V : Type u_2) [AddCommGroup V] [Module (ZMod 2) V] : Type u_2A **quadratic form over `F₂`** with its bilinear polar (commutator) form.  (HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    MType u_1 HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
     TSubmodule (ZMod 2) M)HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
    def Q2Presentation.Induction.Annihilates.descend.{u_1}
      {MType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } [AddCommGroupAddCommGroup.{u} (G : Type u) : Type uAn additive commutative group is an additive group with commutative `(+)`.  MType u_1]
      [ModuleModule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] : Type (max u v)A module is a generalization of vector spaces to a scalar semiring.
    It consists of a scalar semiring `R` and an additive monoid of "vectors" `M`,
    connected by a "scalar multiplication" operation `r • x : M`
    (where `r : R` and `x : M`) with some natural associativity and
    distributivity axioms similar to those on a ring.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1]
      {qQ2Presentation.Quadratic.QuadF2 M : Q2Presentation.Quadratic.QuadF2Q2Presentation.Quadratic.QuadF2.{u_2} (V : Type u_2) [AddCommGroup V] [Module (ZMod 2) V] : Type u_2A **quadratic form over `F₂`** with its bilinear polar (commutator) form.  MType u_1}
      {TSubmodule (ZMod 2) M : SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1}
      (hQ2Presentation.Induction.Annihilates q T :
        Q2Presentation.Induction.AnnihilatesQ2Presentation.Induction.Annihilates.{u_1} {M : Type u_1} [AddCommGroup M] [Module (ZMod 2) M]
      (q : Q2Presentation.Quadratic.QuadF2 M) (T : Submodule (ZMod 2) M) : PropA `QuadF2 M` **annihilates** the submodule `T` when its quadratic map vanishes on
    `T` and its polar form kills `T` against all of `M`.  These are *exactly* the two
    conclusions `q_λ|_T = 0` and `b_λ(T, M) = 0` of `prop:simpleheaddet`.  qQ2Presentation.Quadratic.QuadF2 M
          TSubmodule (ZMod 2) M) :
      Q2Presentation.Quadratic.QuadF2Q2Presentation.Quadratic.QuadF2.{u_2} (V : Type u_2) [AddCommGroup V] [Module (ZMod 2) V] : Type u_2A **quadratic form over `F₂`** with its bilinear polar (commutator) form.  (HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    MType u_1 HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
     TSubmodule (ZMod 2) M)HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
    **The descended quadratic form `q̄ : QuadF2 (M / T)`** of `prop:simpleheaddet`: the
    square map of the pushout descends to the simple head, with polar form the descended
    commutator pairing. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlock.lean
    complete
    theorem Q2Presentation.Induction.Annihilates.descend_nonsingular.{u_1}
      {MType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } [AddCommGroupAddCommGroup.{u} (G : Type u) : Type uAn additive commutative group is an additive group with commutative `(+)`.  MType u_1] [ModuleModule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] : Type (max u v)A module is a generalization of vector spaces to a scalar semiring.
    It consists of a scalar semiring `R` and an additive monoid of "vectors" `M`,
    connected by a "scalar multiplication" operation `r • x : M`
    (where `r : R` and `x : M`) with some natural associativity and
    distributivity axioms similar to those on a ring.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1]
      {qQ2Presentation.Quadratic.QuadF2 M : Q2Presentation.Quadratic.QuadF2Q2Presentation.Quadratic.QuadF2.{u_2} (V : Type u_2) [AddCommGroup V] [Module (ZMod 2) V] : Type u_2A **quadratic form over `F₂`** with its bilinear polar (commutator) form.  MType u_1} {TSubmodule (ZMod 2) M : SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1}
      (hQ2Presentation.Induction.Annihilates q T : Q2Presentation.Induction.AnnihilatesQ2Presentation.Induction.Annihilates.{u_1} {M : Type u_1} [AddCommGroup M] [Module (ZMod 2) M]
      (q : Q2Presentation.Quadratic.QuadF2 M) (T : Submodule (ZMod 2) M) : PropA `QuadF2 M` **annihilates** the submodule `T` when its quadratic map vanishes on
    `T` and its polar form kills `T` against all of `M`.  These are *exactly* the two
    conclusions `q_λ|_T = 0` and `b_λ(T, M) = 0` of `prop:simpleheaddet`.  qQ2Presentation.Quadratic.QuadF2 M TSubmodule (ZMod 2) M)
      (hrad∀ (m : M), (∀ (m' : M), (q.polar m) m' = 0) → m ∈ T :  (mM : MType u_1), (∀ (m'M : MType u_1), (qQ2Presentation.Quadratic.QuadF2 M.polarQ2Presentation.Quadratic.QuadF2.polar.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V →ₗ[ZMod 2] V →ₗ[ZMod 2] ZMod 2the bilinear polar form `b_q`, i.e. the commutator pairing  mM) m'M =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0)  mM Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. TSubmodule (ZMod 2) M) :
      hQ2Presentation.Induction.Annihilates q T.descendQ2Presentation.Induction.Annihilates.descend.{u_1} {M : Type u_1} [AddCommGroup M] [Module (ZMod 2) M]
      {q : Q2Presentation.Quadratic.QuadF2 M} {T : Submodule (ZMod 2) M} (h : Q2Presentation.Induction.Annihilates q T) :
      Q2Presentation.Quadratic.QuadF2 (M ⧸ T)**The descended quadratic form `q̄ : QuadF2 (M / T)`** of `prop:simpleheaddet`: the
    square map of the pushout descends to the simple head, with polar form the descended
    commutator pairing. .NonsingularQ2Presentation.Quadratic.QuadF2.Nonsingular.{u_1} {V : Type u_1} [AddCommGroup V] [Module (ZMod 2) V]
      (q : Q2Presentation.Quadratic.QuadF2 V) : Prop**Nonsingularity** (the polar form is nondegenerate / perfect): the only vector
    pairing to `0` with everything is `0`.  For a nonzero invariant form on a simple
    self-dual `V` this is automatic (`lem:zeropolar`, l.3452). 
    theorem Q2Presentation.Induction.Annihilates.descend_nonsingular.{u_1}
      {MType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } [AddCommGroupAddCommGroup.{u} (G : Type u) : Type uAn additive commutative group is an additive group with commutative `(+)`.  MType u_1]
      [ModuleModule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] : Type (max u v)A module is a generalization of vector spaces to a scalar semiring.
    It consists of a scalar semiring `R` and an additive monoid of "vectors" `M`,
    connected by a "scalar multiplication" operation `r • x : M`
    (where `r : R` and `x : M`) with some natural associativity and
    distributivity axioms similar to those on a ring.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1]
      {qQ2Presentation.Quadratic.QuadF2 M : Q2Presentation.Quadratic.QuadF2Q2Presentation.Quadratic.QuadF2.{u_2} (V : Type u_2) [AddCommGroup V] [Module (ZMod 2) V] : Type u_2A **quadratic form over `F₂`** with its bilinear polar (commutator) form.  MType u_1}
      {TSubmodule (ZMod 2) M : SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1}
      (hQ2Presentation.Induction.Annihilates q T :
        Q2Presentation.Induction.AnnihilatesQ2Presentation.Induction.Annihilates.{u_1} {M : Type u_1} [AddCommGroup M] [Module (ZMod 2) M]
      (q : Q2Presentation.Quadratic.QuadF2 M) (T : Submodule (ZMod 2) M) : PropA `QuadF2 M` **annihilates** the submodule `T` when its quadratic map vanishes on
    `T` and its polar form kills `T` against all of `M`.  These are *exactly* the two
    conclusions `q_λ|_T = 0` and `b_λ(T, M) = 0` of `prop:simpleheaddet`.  qQ2Presentation.Quadratic.QuadF2 M
          TSubmodule (ZMod 2) M)
      (hrad∀ (m : M), (∀ (m' : M), (q.polar m) m' = 0) → m ∈ T :
         (mM : MType u_1),
          (∀ (m'M : MType u_1), (qQ2Presentation.Quadratic.QuadF2 M.polarQ2Presentation.Quadratic.QuadF2.polar.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V →ₗ[ZMod 2] V →ₗ[ZMod 2] ZMod 2the bilinear polar form `b_q`, i.e. the commutator pairing  mM) m'M =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0) 
            mM Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. TSubmodule (ZMod 2) M) :
      hQ2Presentation.Induction.Annihilates q T.descendQ2Presentation.Induction.Annihilates.descend.{u_1} {M : Type u_1} [AddCommGroup M] [Module (ZMod 2) M]
      {q : Q2Presentation.Quadratic.QuadF2 M} {T : Submodule (ZMod 2) M} (h : Q2Presentation.Induction.Annihilates q T) :
      Q2Presentation.Quadratic.QuadF2 (M ⧸ T)**The descended quadratic form `q̄ : QuadF2 (M / T)`** of `prop:simpleheaddet`: the
    square map of the pushout descends to the simple head, with polar form the descended
    commutator pairing. .NonsingularQ2Presentation.Quadratic.QuadF2.Nonsingular.{u_1} {V : Type u_1} [AddCommGroup V] [Module (ZMod 2) V]
      (q : Q2Presentation.Quadratic.QuadF2 V) : Prop**Nonsingularity** (the polar form is nondegenerate / perfect): the only vector
    pairing to `0` with everything is `0`.  For a nonzero invariant form on a simple
    self-dual `V` this is automatic (`lem:zeropolar`, l.3452). 
    **Nonsingularity of the descended form** (`prop:simpleheaddet`, last paragraph):
    if the polar radical of `q` lies inside `T` (every vector orthogonal to all of `M`
    already lies in `T`), then the descended form `q̄` on `V = M / T` is nonsingular.
    For the simple head this is automatic since `T` *is* the polar radical. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlock.lean
    complete
    theorem Q2Presentation.Induction.extraspecial_annihilates.{u_1} {MType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. }
      [AddCommGroupAddCommGroup.{u} (G : Type u) : Type uAn additive commutative group is an additive group with commutative `(+)`.  MType u_1] [ModuleModule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] : Type (max u v)A module is a generalization of vector spaces to a scalar semiring.
    It consists of a scalar semiring `R` and an additive monoid of "vectors" `M`,
    connected by a "scalar multiplication" operation `r • x : M`
    (where `r : R` and `x : M`) with some natural associativity and
    distributivity axioms similar to those on a ring.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1] (TSubmodule (ZMod 2) M : SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1)
      (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M : MType u_1 →ₗ[LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time. ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2]LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time.  Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1)
      (hform∀ t ∈ T, (φ t) t = 0 :  tM  TSubmodule (ZMod 2) M, (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M tM) tM =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0)
      (hpolar∀ t ∈ T, ∀ (m : M), (φ t) m + (φ m) t = 0 :  tM  TSubmodule (ZMod 2) M,  (mM : MType u_1), (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M tM) mM +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `+` in identifiers is `add`. (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M mM) tM =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0) :
      Q2Presentation.Induction.AnnihilatesQ2Presentation.Induction.Annihilates.{u_1} {M : Type u_1} [AddCommGroup M] [Module (ZMod 2) M]
      (q : Q2Presentation.Quadratic.QuadF2 M) (T : Submodule (ZMod 2) M) : PropA `QuadF2 M` **annihilates** the submodule `T` when its quadratic map vanishes on
    `T` and its polar form kills `T` against all of `M`.  These are *exactly* the two
    conclusions `q_λ|_T = 0` and `b_λ(T, M) = 0` of `prop:simpleheaddet`. 
        (Q2Presentation.Quadratic.Extraspecial.extraspecialFormQ2Presentation.Quadratic.Extraspecial.extraspecialForm.{u_1} {V : Type u_1} [AddCommGroup V] [Module (ZMod 2) V]
      (φ : V →ₗ[ZMod 2] Module.Dual (ZMod 2) V) : Q2Presentation.Quadratic.QuadF2 V**The extraspecial pushout quadratic obstruction** `κ_q^0` as a `QuadF2`:
    `form c = φ(c)(c)`, polar form `bcl`.  This is the fibre square map of the central
    double cover (l.2043), *proven quadratic* with the commutator polar form.  φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M) TSubmodule (ZMod 2) M
    theorem Q2Presentation.Induction.extraspecial_annihilates.{u_1}
      {MType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } [AddCommGroupAddCommGroup.{u} (G : Type u) : Type uAn additive commutative group is an additive group with commutative `(+)`.  MType u_1]
      [ModuleModule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] : Type (max u v)A module is a generalization of vector spaces to a scalar semiring.
    It consists of a scalar semiring `R` and an additive monoid of "vectors" `M`,
    connected by a "scalar multiplication" operation `r • x : M`
    (where `r : R` and `x : M`) with some natural associativity and
    distributivity axioms similar to those on a ring.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1]
      (TSubmodule (ZMod 2) M : SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1)
      (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M :
        MType u_1 →ₗ[LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time. ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2]LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time.  Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1)
      (hform∀ t ∈ T, (φ t) t = 0 :  tM  TSubmodule (ZMod 2) M, (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M tM) tM =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0)
      (hpolar∀ t ∈ T, ∀ (m : M), (φ t) m + (φ m) t = 0 :
         tM  TSubmodule (ZMod 2) M,
           (mM : MType u_1), (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M tM) mM +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `+` in identifiers is `add`. (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M mM) tM =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0) :
      Q2Presentation.Induction.AnnihilatesQ2Presentation.Induction.Annihilates.{u_1} {M : Type u_1} [AddCommGroup M] [Module (ZMod 2) M]
      (q : Q2Presentation.Quadratic.QuadF2 M) (T : Submodule (ZMod 2) M) : PropA `QuadF2 M` **annihilates** the submodule `T` when its quadratic map vanishes on
    `T` and its polar form kills `T` against all of `M`.  These are *exactly* the two
    conclusions `q_λ|_T = 0` and `b_λ(T, M) = 0` of `prop:simpleheaddet`. 
        (Q2Presentation.Quadratic.Extraspecial.extraspecialFormQ2Presentation.Quadratic.Extraspecial.extraspecialForm.{u_1} {V : Type u_1} [AddCommGroup V] [Module (ZMod 2) V]
      (φ : V →ₗ[ZMod 2] Module.Dual (ZMod 2) V) : Q2Presentation.Quadratic.QuadF2 V**The extraspecial pushout quadratic obstruction** `κ_q^0` as a `QuadF2`:
    `form c = φ(c)(c)`, polar form `bcl`.  This is the fibre square map of the central
    double cover (l.2043), *proven quadratic* with the commutator polar form. 
          φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M)
        TSubmodule (ZMod 2) M
    The extraspecial square map **annihilates `T`** (`prop:simpleheaddet`(1,2)) when its
    self-duality `φ` has `φ|_T` diagonal-zero and `T`-symmetrically-orthogonal. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlock.lean
    complete
    theorem Q2Presentation.Induction.extraspecial_radical_subset.{u_1}
      {MType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } [AddCommGroupAddCommGroup.{u} (G : Type u) : Type uAn additive commutative group is an additive group with commutative `(+)`.  MType u_1] [ModuleModule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] : Type (max u v)A module is a generalization of vector spaces to a scalar semiring.
    It consists of a scalar semiring `R` and an additive monoid of "vectors" `M`,
    connected by a "scalar multiplication" operation `r • x : M`
    (where `r : R` and `x : M`) with some natural associativity and
    distributivity axioms similar to those on a ring.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1]
      (TSubmodule (ZMod 2) M : SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1) (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M : MType u_1 →ₗ[LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time. ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2]LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time.  Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1)
      (hrad∀ (m : M), (∀ (m' : M), (φ m) m' + (φ m') m = 0) → m ∈ T :  (mM : MType u_1), (∀ (m'M : MType u_1), (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M mM) m'M +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `+` in identifiers is `add`. (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M m'M) mM =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0)  mM Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. TSubmodule (ZMod 2) M)
      (mM : MType u_1) :
      (∀ (m'M : MType u_1),
          ((Q2Presentation.Quadratic.Extraspecial.extraspecialFormQ2Presentation.Quadratic.Extraspecial.extraspecialForm.{u_1} {V : Type u_1} [AddCommGroup V] [Module (ZMod 2) V]
      (φ : V →ₗ[ZMod 2] Module.Dual (ZMod 2) V) : Q2Presentation.Quadratic.QuadF2 V**The extraspecial pushout quadratic obstruction** `κ_q^0` as a `QuadF2`:
    `form c = φ(c)(c)`, polar form `bcl`.  This is the fibre square map of the central
    double cover (l.2043), *proven quadratic* with the commutator polar form.  φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M).polarQ2Presentation.Quadratic.QuadF2.polar.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V →ₗ[ZMod 2] V →ₗ[ZMod 2] ZMod 2the bilinear polar form `b_q`, i.e. the commutator pairing 
                mM)
              m'M =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            0) 
        mM Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. TSubmodule (ZMod 2) M
    theorem Q2Presentation.Induction.extraspecial_radical_subset.{u_1}
      {MType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } [AddCommGroupAddCommGroup.{u} (G : Type u) : Type uAn additive commutative group is an additive group with commutative `(+)`.  MType u_1]
      [ModuleModule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] : Type (max u v)A module is a generalization of vector spaces to a scalar semiring.
    It consists of a scalar semiring `R` and an additive monoid of "vectors" `M`,
    connected by a "scalar multiplication" operation `r • x : M`
    (where `r : R` and `x : M`) with some natural associativity and
    distributivity axioms similar to those on a ring.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1]
      (TSubmodule (ZMod 2) M : SubmoduleSubmodule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] : Type vA submodule of a module is one which is closed under vector operations.
    This is a sufficient condition for the subset of vectors in the submodule
    to themselves form a module.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1)
      (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M :
        MType u_1 →ₗ[LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time. ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2]LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time.  Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1)
      (hrad∀ (m : M), (∀ (m' : M), (φ m) m' + (φ m') m = 0) → m ∈ T :
         (mM : MType u_1),
          (∀ (m'M : MType u_1),
              (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M mM) m'M +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `+` in identifiers is `add`. (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M m'M) mM =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0) 
            mM Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. TSubmodule (ZMod 2) M)
      (mM : MType u_1) :
      (∀ (m'M : MType u_1),
          ((Q2Presentation.Quadratic.Extraspecial.extraspecialFormQ2Presentation.Quadratic.Extraspecial.extraspecialForm.{u_1} {V : Type u_1} [AddCommGroup V] [Module (ZMod 2) V]
      (φ : V →ₗ[ZMod 2] Module.Dual (ZMod 2) V) : Q2Presentation.Quadratic.QuadF2 V**The extraspecial pushout quadratic obstruction** `κ_q^0` as a `QuadF2`:
    `form c = φ(c)(c)`, polar form `bcl`.  This is the fibre square map of the central
    double cover (l.2043), *proven quadratic* with the commutator polar form. 
                    φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M).polarQ2Presentation.Quadratic.QuadF2.polar.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V →ₗ[ZMod 2] V →ₗ[ZMod 2] ZMod 2the bilinear polar form `b_q`, i.e. the commutator pairing 
                mM)
              m'M =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            0) 
        mM Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. TSubmodule (ZMod 2) M
    The extraspecial polar radical lands in `T` (`prop:simpleheaddet` nonsingularity input)
    when the symmetrized pairing of `φ` has radical `⊆ T`. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlock.lean
    complete
    theorem Q2Presentation.Induction.extraspecial_nonzero.{u_1} {MType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. }
      [AddCommGroupAddCommGroup.{u} (G : Type u) : Type uAn additive commutative group is an additive group with commutative `(+)`.  MType u_1] [ModuleModule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] : Type (max u v)A module is a generalization of vector spaces to a scalar semiring.
    It consists of a scalar semiring `R` and an additive monoid of "vectors" `M`,
    connected by a "scalar multiplication" operation `r • x : M`
    (where `r : R` and `x : M`) with some natural associativity and
    distributivity axioms similar to those on a ring.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1]
      (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M : MType u_1 →ₗ[LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time. ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2]LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time.  Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1) (hnz∃ m, (φ m) m ≠ 0 :  mM, (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M mM) mM Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) :
       mM,
        (Q2Presentation.Quadratic.Extraspecial.extraspecialFormQ2Presentation.Quadratic.Extraspecial.extraspecialForm.{u_1} {V : Type u_1} [AddCommGroup V] [Module (ZMod 2) V]
      (φ : V →ₗ[ZMod 2] Module.Dual (ZMod 2) V) : Q2Presentation.Quadratic.QuadF2 V**The extraspecial pushout quadratic obstruction** `κ_q^0` as a `QuadF2`:
    `form c = φ(c)(c)`, polar form `bcl`.  This is the fibre square map of the central
    double cover (l.2043), *proven quadratic* with the commutator polar form.  φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  mM Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`.
          0
    theorem Q2Presentation.Induction.extraspecial_nonzero.{u_1}
      {MType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } [AddCommGroupAddCommGroup.{u} (G : Type u) : Type uAn additive commutative group is an additive group with commutative `(+)`.  MType u_1]
      [ModuleModule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] : Type (max u v)A module is a generalization of vector spaces to a scalar semiring.
    It consists of a scalar semiring `R` and an additive monoid of "vectors" `M`,
    connected by a "scalar multiplication" operation `r • x : M`
    (where `r : R` and `x : M`) with some natural associativity and
    distributivity axioms similar to those on a ring.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1]
      (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M :
        MType u_1 →ₗ[LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time. ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2]LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time.  Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) MType u_1)
      (hnz∃ m, (φ m) m ≠ 0 :  mM, (φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M mM) mM Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) :
       mM,
        (Q2Presentation.Quadratic.Extraspecial.extraspecialFormQ2Presentation.Quadratic.Extraspecial.extraspecialForm.{u_1} {V : Type u_1} [AddCommGroup V] [Module (ZMod 2) V]
      (φ : V →ₗ[ZMod 2] Module.Dual (ZMod 2) V) : Q2Presentation.Quadratic.QuadF2 V**The extraspecial pushout quadratic obstruction** `κ_q^0` as a `QuadF2`:
    `form c = φ(c)(c)`, polar form `bcl`.  This is the fibre square map of the central
    double cover (l.2043), *proven quadratic* with the commutator polar form. 
                φM →ₗ[ZMod 2] Module.Dual (ZMod 2) M).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂` 
            mM Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`.
          0
    The extraspecial descended form is **nonzero** (`prop:simpleheaddet`) when the diagonal
    of `φ` is nonzero somewhere. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlock.lean
    complete
    theorem Q2Presentation.Induction.MinimalBlock.annih_of
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p : Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields.  pQ2Presentation.Induction.FramedPair) (lam↥B.XR : BQ2Presentation.Induction.MinimalBlock p.XRQ2Presentation.Induction.MinimalBlock.XR {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : Submodule (ZMod 2) (Module.Dual (ZMod 2) B.R)**The determinant character space `𝒳_R = (R^∨)^C`** (manuscript l.3722/l.4211:
    `𝒳_R = (R^∨)^B = (R^∨)^C`): the `C`-invariants of the dual of `R`, cut out as a genuine
    `𝔽₂`-submodule of `Module.Dual (ZMod 2) R`.  By `lem:obstructionseparation` (l.4213) this
    is canonically `Ŵ`, the **character group of the obstruction space** `O_R = obstructionSpace`;
    `prop:simpleheaddet` and the §8 Fourier inversion both range over `0 ≠ λ ∈ 𝒳_R` (= `↥XR`). )
      (hlamlam ≠ 0 : lam↥B.XR Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) :
      Q2Presentation.Induction.AnnihilatesQ2Presentation.Induction.Annihilates.{u_1} {M : Type u_1} [AddCommGroup M] [Module (ZMod 2) M]
      (q : Q2Presentation.Quadratic.QuadF2 M) (T : Submodule (ZMod 2) M) : PropA `QuadF2 M` **annihilates** the submodule `T` when its quadratic map vanishes on
    `T` and its polar form kills `T` against all of `M`.  These are *exactly* the two
    conclusions `q_λ|_T = 0` and `b_λ(T, M) = 0` of `prop:simpleheaddet`.  (BQ2Presentation.Induction.MinimalBlock p.pushoutQ2Presentation.Induction.MinimalBlock.pushout {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.MinimalBlock p) :
      Module.Dual (ZMod 2) self.R → Q2Presentation.Quadratic.QuadF2 self.MThe central-pushout **square map** `q_λ : M → 𝔽₂` of `K_λ = K/ker λ`, for
    `λ ∈ R^∨` (manuscript l.3724; realised by `Quadratic.Extraspecial.extraspecialForm`).  lam↥B.XR) BQ2Presentation.Induction.MinimalBlock p.TQ2Presentation.Induction.MinimalBlock.T {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.MinimalBlock p) : Submodule (ZMod 2) self.MThe radical submodule `T = (K∩S)/R ◁ M` (`lem:simplehead`: `T = rad_{𝔽₂[C]} M`). 
    theorem Q2Presentation.Induction.MinimalBlock.annih_of
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p :
        Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields. 
          pQ2Presentation.Induction.FramedPair)
      (lam↥B.XR : BQ2Presentation.Induction.MinimalBlock p.XRQ2Presentation.Induction.MinimalBlock.XR {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : Submodule (ZMod 2) (Module.Dual (ZMod 2) B.R)**The determinant character space `𝒳_R = (R^∨)^C`** (manuscript l.3722/l.4211:
    `𝒳_R = (R^∨)^B = (R^∨)^C`): the `C`-invariants of the dual of `R`, cut out as a genuine
    `𝔽₂`-submodule of `Module.Dual (ZMod 2) R`.  By `lem:obstructionseparation` (l.4213) this
    is canonically `Ŵ`, the **character group of the obstruction space** `O_R = obstructionSpace`;
    `prop:simpleheaddet` and the §8 Fourier inversion both range over `0 ≠ λ ∈ 𝒳_R` (= `↥XR`). ) (hlamlam ≠ 0 : lam↥B.XR Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) :
      Q2Presentation.Induction.AnnihilatesQ2Presentation.Induction.Annihilates.{u_1} {M : Type u_1} [AddCommGroup M] [Module (ZMod 2) M]
      (q : Q2Presentation.Quadratic.QuadF2 M) (T : Submodule (ZMod 2) M) : PropA `QuadF2 M` **annihilates** the submodule `T` when its quadratic map vanishes on
    `T` and its polar form kills `T` against all of `M`.  These are *exactly* the two
    conclusions `q_λ|_T = 0` and `b_λ(T, M) = 0` of `prop:simpleheaddet`. 
        (BQ2Presentation.Induction.MinimalBlock p.pushoutQ2Presentation.Induction.MinimalBlock.pushout {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.MinimalBlock p) :
      Module.Dual (ZMod 2) self.R → Q2Presentation.Quadratic.QuadF2 self.MThe central-pushout **square map** `q_λ : M → 𝔽₂` of `K_λ = K/ker λ`, for
    `λ ∈ R^∨` (manuscript l.3724; realised by `Quadratic.Extraspecial.extraspecialForm`).  lam↥B.XR) BQ2Presentation.Induction.MinimalBlock p.TQ2Presentation.Induction.MinimalBlock.T {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.MinimalBlock p) : Submodule (ZMod 2) self.MThe radical submodule `T = (K∩S)/R ◁ M` (`lem:simplehead`: `T = rad_{𝔽₂[C]} M`). 
    The `prop:simpleheaddet` `Annihilates` witness for `0 ≠ λ ∈ 𝒳_R`. 
  • defdefined in Q2Presentation/Induction/MinimalBlock.lean
    complete
    def Q2Presentation.Induction.MinimalBlock.headForm
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p : Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields.  pQ2Presentation.Induction.FramedPair) (lam↥B.XR : BQ2Presentation.Induction.MinimalBlock p.XRQ2Presentation.Induction.MinimalBlock.XR {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : Submodule (ZMod 2) (Module.Dual (ZMod 2) B.R)**The determinant character space `𝒳_R = (R^∨)^C`** (manuscript l.3722/l.4211:
    `𝒳_R = (R^∨)^B = (R^∨)^C`): the `C`-invariants of the dual of `R`, cut out as a genuine
    `𝔽₂`-submodule of `Module.Dual (ZMod 2) R`.  By `lem:obstructionseparation` (l.4213) this
    is canonically `Ŵ`, the **character group of the obstruction space** `O_R = obstructionSpace`;
    `prop:simpleheaddet` and the §8 Fourier inversion both range over `0 ≠ λ ∈ 𝒳_R` (= `↥XR`). )
      (hlamlam ≠ 0 : lam↥B.XR Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) : Q2Presentation.Quadratic.QuadF2Q2Presentation.Quadratic.QuadF2.{u_2} (V : Type u_2) [AddCommGroup V] [Module (ZMod 2) V] : Type u_2A **quadratic form over `F₂`** with its bilinear polar (commutator) form.  BQ2Presentation.Induction.MinimalBlock p.headQ2Presentation.Induction.MinimalBlock.head {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : TypeThe **simple head** `V = M / T` (`lem:simplehead`: `M/T ≅ V`, the first non-scalar
    simple factor); the exact sequence `0 → T → M → V → 0` is `T.subtype`/`T.mkQ`. 
    def Q2Presentation.Induction.MinimalBlock.headForm
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p :
        Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields. 
          pQ2Presentation.Induction.FramedPair)
      (lam↥B.XR : BQ2Presentation.Induction.MinimalBlock p.XRQ2Presentation.Induction.MinimalBlock.XR {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : Submodule (ZMod 2) (Module.Dual (ZMod 2) B.R)**The determinant character space `𝒳_R = (R^∨)^C`** (manuscript l.3722/l.4211:
    `𝒳_R = (R^∨)^B = (R^∨)^C`): the `C`-invariants of the dual of `R`, cut out as a genuine
    `𝔽₂`-submodule of `Module.Dual (ZMod 2) R`.  By `lem:obstructionseparation` (l.4213) this
    is canonically `Ŵ`, the **character group of the obstruction space** `O_R = obstructionSpace`;
    `prop:simpleheaddet` and the §8 Fourier inversion both range over `0 ≠ λ ∈ 𝒳_R` (= `↥XR`). ) (hlamlam ≠ 0 : lam↥B.XR Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) :
      Q2Presentation.Quadratic.QuadF2Q2Presentation.Quadratic.QuadF2.{u_2} (V : Type u_2) [AddCommGroup V] [Module (ZMod 2) V] : Type u_2A **quadratic form over `F₂`** with its bilinear polar (commutator) form.  BQ2Presentation.Induction.MinimalBlock p.headQ2Presentation.Induction.MinimalBlock.head {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : TypeThe **simple head** `V = M / T` (`lem:simplehead`: `M/T ≅ V`, the first non-scalar
    simple factor); the exact sequence `0 → T → M → V → 0` is `T.subtype`/`T.mkQ`. 
    **`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlock.lean
    complete
    theorem Q2Presentation.Induction.MinimalBlock.headForm_invariant
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p : Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields.  pQ2Presentation.Induction.FramedPair) (lam↥B.XR : BQ2Presentation.Induction.MinimalBlock p.XRQ2Presentation.Induction.MinimalBlock.XR {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : Submodule (ZMod 2) (Module.Dual (ZMod 2) B.R)**The determinant character space `𝒳_R = (R^∨)^C`** (manuscript l.3722/l.4211:
    `𝒳_R = (R^∨)^B = (R^∨)^C`): the `C`-invariants of the dual of `R`, cut out as a genuine
    `𝔽₂`-submodule of `Module.Dual (ZMod 2) R`.  By `lem:obstructionseparation` (l.4213) this
    is canonically `Ŵ`, the **character group of the obstruction space** `O_R = obstructionSpace`;
    `prop:simpleheaddet` and the §8 Fourier inversion both range over `0 ≠ λ ∈ 𝒳_R` (= `↥XR`). )
      (hlamlam ≠ 0 : lam↥B.XR Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) (cB.C : BQ2Presentation.Induction.MinimalBlock p.CQ2Presentation.Induction.MinimalBlock.C {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.MinimalBlock p) : TypeThe lower target `C = Y/K` (`eq:targettower`), acting `𝔽₂`-linearly on `R` and `M`. ) (vB.head : BQ2Presentation.Induction.MinimalBlock p.headQ2Presentation.Induction.MinimalBlock.head {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : TypeThe **simple head** `V = M / T` (`lem:simplehead`: `M/T ≅ V`, the first non-scalar
    simple factor); the exact sequence `0 → T → M → V → 0` is `T.subtype`/`T.mkQ`. ) :
      (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  ((BQ2Presentation.Induction.MinimalBlock p.headAutQ2Presentation.Induction.MinimalBlock.headAut {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (c : B.C) : B.head →ₗ[ZMod 2] B.headThe induced **`C`-action on the simple head `V = M/T`**: `T_stable` makes `T` a
    `C`-submodule, so `actM c` descends to `V` (`headAut c (m + T) = (actM c) m + T`).  cB.C) vB.head) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
        (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  vB.head
    theorem Q2Presentation.Induction.MinimalBlock.headForm_invariant
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p :
        Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields. 
          pQ2Presentation.Induction.FramedPair)
      (lam↥B.XR : BQ2Presentation.Induction.MinimalBlock p.XRQ2Presentation.Induction.MinimalBlock.XR {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : Submodule (ZMod 2) (Module.Dual (ZMod 2) B.R)**The determinant character space `𝒳_R = (R^∨)^C`** (manuscript l.3722/l.4211:
    `𝒳_R = (R^∨)^B = (R^∨)^C`): the `C`-invariants of the dual of `R`, cut out as a genuine
    `𝔽₂`-submodule of `Module.Dual (ZMod 2) R`.  By `lem:obstructionseparation` (l.4213) this
    is canonically `Ŵ`, the **character group of the obstruction space** `O_R = obstructionSpace`;
    `prop:simpleheaddet` and the §8 Fourier inversion both range over `0 ≠ λ ∈ 𝒳_R` (= `↥XR`). ) (hlamlam ≠ 0 : lam↥B.XR Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) (cB.C : BQ2Presentation.Induction.MinimalBlock p.CQ2Presentation.Induction.MinimalBlock.C {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.MinimalBlock p) : TypeThe lower target `C = Y/K` (`eq:targettower`), acting `𝔽₂`-linearly on `R` and `M`. )
      (vB.head : BQ2Presentation.Induction.MinimalBlock p.headQ2Presentation.Induction.MinimalBlock.head {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : TypeThe **simple head** `V = M / T` (`lem:simplehead`: `M/T ≅ V`, the first non-scalar
    simple factor); the exact sequence `0 → T → M → V → 0` is `T.subtype`/`T.mkQ`. ) :
      (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂` 
          ((BQ2Presentation.Induction.MinimalBlock p.headAutQ2Presentation.Induction.MinimalBlock.headAut {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (c : B.C) : B.head →ₗ[ZMod 2] B.headThe induced **`C`-action on the simple head `V = M/T`**: `T_stable` makes `T` a
    `C`-submodule, so `actM c` descends to `V` (`headAut c (m + T) = (actM c) m + T`).  cB.C) vB.head) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
        (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  vB.head
    **`prop:simpleheaddet` (`C`-invariance), proven**: the descended head form `q̄_λ` is
    invariant under the induced `C`-action `headAut` on `V`, from `pushout_invariant` +
    `T_stable`.  This is the third `prop:simpleheaddet` conclusion ("nonzero nonsingular
    **`C`-invariant** quadratic form `q̄_λ`"). 
  • theoremdefined in Q2Presentation/Induction/MinimalBlock.lean
    complete
    theorem Q2Presentation.Induction.MinimalBlock.headForm_nonsingular
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p : Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields.  pQ2Presentation.Induction.FramedPair) (lam↥B.XR : BQ2Presentation.Induction.MinimalBlock p.XRQ2Presentation.Induction.MinimalBlock.XR {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : Submodule (ZMod 2) (Module.Dual (ZMod 2) B.R)**The determinant character space `𝒳_R = (R^∨)^C`** (manuscript l.3722/l.4211:
    `𝒳_R = (R^∨)^B = (R^∨)^C`): the `C`-invariants of the dual of `R`, cut out as a genuine
    `𝔽₂`-submodule of `Module.Dual (ZMod 2) R`.  By `lem:obstructionseparation` (l.4213) this
    is canonically `Ŵ`, the **character group of the obstruction space** `O_R = obstructionSpace`;
    `prop:simpleheaddet` and the §8 Fourier inversion both range over `0 ≠ λ ∈ 𝒳_R` (= `↥XR`). )
      (hlamlam ≠ 0 : lam↥B.XR Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) : (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).NonsingularQ2Presentation.Quadratic.QuadF2.Nonsingular.{u_1} {V : Type u_1} [AddCommGroup V] [Module (ZMod 2) V]
      (q : Q2Presentation.Quadratic.QuadF2 V) : Prop**Nonsingularity** (the polar form is nondegenerate / perfect): the only vector
    pairing to `0` with everything is `0`.  For a nonzero invariant form on a simple
    self-dual `V` this is automatic (`lem:zeropolar`, l.3452). 
    theorem Q2Presentation.Induction.MinimalBlock.headForm_nonsingular
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p :
        Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields. 
          pQ2Presentation.Induction.FramedPair)
      (lam↥B.XR : BQ2Presentation.Induction.MinimalBlock p.XRQ2Presentation.Induction.MinimalBlock.XR {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : Submodule (ZMod 2) (Module.Dual (ZMod 2) B.R)**The determinant character space `𝒳_R = (R^∨)^C`** (manuscript l.3722/l.4211:
    `𝒳_R = (R^∨)^B = (R^∨)^C`): the `C`-invariants of the dual of `R`, cut out as a genuine
    `𝔽₂`-submodule of `Module.Dual (ZMod 2) R`.  By `lem:obstructionseparation` (l.4213) this
    is canonically `Ŵ`, the **character group of the obstruction space** `O_R = obstructionSpace`;
    `prop:simpleheaddet` and the §8 Fourier inversion both range over `0 ≠ λ ∈ 𝒳_R` (= `↥XR`). ) (hlamlam ≠ 0 : lam↥B.XR Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) :
      (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).NonsingularQ2Presentation.Quadratic.QuadF2.Nonsingular.{u_1} {V : Type u_1} [AddCommGroup V] [Module (ZMod 2) V]
      (q : Q2Presentation.Quadratic.QuadF2 V) : Prop**Nonsingularity** (the polar form is nondegenerate / perfect): the only vector
    pairing to `0` with everything is `0`.  For a nonzero invariant form on a simple
    self-dual `V` this is automatic (`lem:zeropolar`, l.3452). 
    **`prop:simpleheaddet` (nonsingularity)**: the descended head form `q̄_λ` is
    **nonsingular** (its polar form is perfect on `V`). 
  • theoremdefined in Q2Presentation/Induction/MinimalBlock.lean
    complete
    theorem Q2Presentation.Induction.MinimalBlock.headForm_ne_zero
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p : Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields.  pQ2Presentation.Induction.FramedPair) (lam↥B.XR : BQ2Presentation.Induction.MinimalBlock p.XRQ2Presentation.Induction.MinimalBlock.XR {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : Submodule (ZMod 2) (Module.Dual (ZMod 2) B.R)**The determinant character space `𝒳_R = (R^∨)^C`** (manuscript l.3722/l.4211:
    `𝒳_R = (R^∨)^B = (R^∨)^C`): the `C`-invariants of the dual of `R`, cut out as a genuine
    `𝔽₂`-submodule of `Module.Dual (ZMod 2) R`.  By `lem:obstructionseparation` (l.4213) this
    is canonically `Ŵ`, the **character group of the obstruction space** `O_R = obstructionSpace`;
    `prop:simpleheaddet` and the §8 Fourier inversion both range over `0 ≠ λ ∈ 𝒳_R` (= `↥XR`). )
      (hlamlam ≠ 0 : lam↥B.XR Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) :  vB.head, (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  vB.head Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0
    theorem Q2Presentation.Induction.MinimalBlock.headForm_ne_zero
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p :
        Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields. 
          pQ2Presentation.Induction.FramedPair)
      (lam↥B.XR : BQ2Presentation.Induction.MinimalBlock p.XRQ2Presentation.Induction.MinimalBlock.XR {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : Submodule (ZMod 2) (Module.Dual (ZMod 2) B.R)**The determinant character space `𝒳_R = (R^∨)^C`** (manuscript l.3722/l.4211:
    `𝒳_R = (R^∨)^B = (R^∨)^C`): the `C`-invariants of the dual of `R`, cut out as a genuine
    `𝔽₂`-submodule of `Module.Dual (ZMod 2) R`.  By `lem:obstructionseparation` (l.4213) this
    is canonically `Ŵ`, the **character group of the obstruction space** `O_R = obstructionSpace`;
    `prop:simpleheaddet` and the §8 Fourier inversion both range over `0 ≠ λ ∈ 𝒳_R` (= `↥XR`). ) (hlamlam ≠ 0 : lam↥B.XR Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) :
       vB.head, (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  vB.head Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0
    **`prop:simpleheaddet` (nonzero)**: the descended head form `q̄_λ` is **nonzero**
    (`Φ(K_λ) ≠ 1`), so it is a genuine nonsingular quadratic form on the simple head. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlock.lean
    complete
    theorem Q2Presentation.Induction.MinimalBlock.simpleHeadDet
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p : Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields.  pQ2Presentation.Induction.FramedPair) (lam↥B.XR : BQ2Presentation.Induction.MinimalBlock p.XRQ2Presentation.Induction.MinimalBlock.XR {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : Submodule (ZMod 2) (Module.Dual (ZMod 2) B.R)**The determinant character space `𝒳_R = (R^∨)^C`** (manuscript l.3722/l.4211:
    `𝒳_R = (R^∨)^B = (R^∨)^C`): the `C`-invariants of the dual of `R`, cut out as a genuine
    `𝔽₂`-submodule of `Module.Dual (ZMod 2) R`.  By `lem:obstructionseparation` (l.4213) this
    is canonically `Ŵ`, the **character group of the obstruction space** `O_R = obstructionSpace`;
    `prop:simpleheaddet` and the §8 Fourier inversion both range over `0 ≠ λ ∈ 𝒳_R` (= `↥XR`). )
      (hlamlam ≠ 0 : lam↥B.XR Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) :
      (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).NonsingularQ2Presentation.Quadratic.QuadF2.Nonsingular.{u_1} {V : Type u_1} [AddCommGroup V] [Module (ZMod 2) V]
      (q : Q2Presentation.Quadratic.QuadF2 V) : Prop**Nonsingularity** (the polar form is nondegenerate / perfect): the only vector
    pairing to `0` with everything is `0`.  For a nonzero invariant form on a simple
    self-dual `V` this is automatic (`lem:zeropolar`, l.3452).  And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
        (∃ vB.head, (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  vB.head Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
           (cB.C : BQ2Presentation.Induction.MinimalBlock p.CQ2Presentation.Induction.MinimalBlock.C {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.MinimalBlock p) : TypeThe lower target `C = Y/K` (`eq:targettower`), acting `𝔽₂`-linearly on `R` and `M`. ) (vB.head : BQ2Presentation.Induction.MinimalBlock p.headQ2Presentation.Induction.MinimalBlock.head {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : TypeThe **simple head** `V = M / T` (`lem:simplehead`: `M/T ≅ V`, the first non-scalar
    simple factor); the exact sequence `0 → T → M → V → 0` is `T.subtype`/`T.mkQ`. ),
            (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  ((BQ2Presentation.Induction.MinimalBlock p.headAutQ2Presentation.Induction.MinimalBlock.headAut {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (c : B.C) : B.head →ₗ[ZMod 2] B.headThe induced **`C`-action on the simple head `V = M/T`**: `T_stable` makes `T` a
    `C`-submodule, so `actM c` descends to `V` (`headAut c (m + T) = (actM c) m + T`).  cB.C) vB.head) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
              (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  vB.head
    theorem Q2Presentation.Induction.MinimalBlock.simpleHeadDet
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (BQ2Presentation.Induction.MinimalBlock p :
        Q2Presentation.Induction.MinimalBlockQ2Presentation.Induction.MinimalBlock (p : Q2Presentation.Induction.FramedPair) : Type 1**The §7 minimal non-scalar block.**  Source-uniform module-level data of the
    manuscript tower (`eq:targettower`), with the deep group/representation inputs of
    `lem:simplehead`/`lem:collapse`/`prop:simpleheaddet` isolated as documented fields. 
          pQ2Presentation.Induction.FramedPair)
      (lam↥B.XR : BQ2Presentation.Induction.MinimalBlock p.XRQ2Presentation.Induction.MinimalBlock.XR {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : Submodule (ZMod 2) (Module.Dual (ZMod 2) B.R)**The determinant character space `𝒳_R = (R^∨)^C`** (manuscript l.3722/l.4211:
    `𝒳_R = (R^∨)^B = (R^∨)^C`): the `C`-invariants of the dual of `R`, cut out as a genuine
    `𝔽₂`-submodule of `Module.Dual (ZMod 2) R`.  By `lem:obstructionseparation` (l.4213) this
    is canonically `Ŵ`, the **character group of the obstruction space** `O_R = obstructionSpace`;
    `prop:simpleheaddet` and the §8 Fourier inversion both range over `0 ≠ λ ∈ 𝒳_R` (= `↥XR`). ) (hlamlam ≠ 0 : lam↥B.XR Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) :
      (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).NonsingularQ2Presentation.Quadratic.QuadF2.Nonsingular.{u_1} {V : Type u_1} [AddCommGroup V] [Module (ZMod 2) V]
      (q : Q2Presentation.Quadratic.QuadF2 V) : Prop**Nonsingularity** (the polar form is nondegenerate / perfect): the only vector
    pairing to `0` with everything is `0`.  For a nonzero invariant form on a simple
    self-dual `V` this is automatic (`lem:zeropolar`, l.3452).  And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
        (∃ vB.head,
            (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  vB.head Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`.
              0) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
           (cB.C : BQ2Presentation.Induction.MinimalBlock p.CQ2Presentation.Induction.MinimalBlock.C {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.MinimalBlock p) : TypeThe lower target `C = Y/K` (`eq:targettower`), acting `𝔽₂`-linearly on `R` and `M`. ) (vB.head : BQ2Presentation.Induction.MinimalBlock p.headQ2Presentation.Induction.MinimalBlock.head {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) : TypeThe **simple head** `V = M / T` (`lem:simplehead`: `M/T ≅ V`, the first non-scalar
    simple factor); the exact sequence `0 → T → M → V → 0` is `T.subtype`/`T.mkQ`. ),
            (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂` 
                ((BQ2Presentation.Induction.MinimalBlock p.headAutQ2Presentation.Induction.MinimalBlock.headAut {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (c : B.C) : B.head →ₗ[ZMod 2] B.headThe induced **`C`-action on the simple head `V = M/T`**: `T_stable` makes `T` a
    `C`-submodule, so `actM c` descends to `V` (`headAut c (m + T) = (actM c) m + T`).  cB.C) vB.head) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
              (BQ2Presentation.Induction.MinimalBlock p.headFormQ2Presentation.Induction.MinimalBlock.headForm {p : Q2Presentation.Induction.FramedPair}
      (B : Q2Presentation.Induction.MinimalBlock p) (lam : ↥B.XR) (hlam : lam ≠ 0) : Q2Presentation.Quadratic.QuadF2 B.head**`prop:simpleheaddet` — the simple-head determinant form `q̄_λ : V → 𝔽₂`.**  For
    `0 ≠ λ ∈ 𝒳_R`, the central-pushout square map `q_λ` (which annihilates `T` by
    `prop:simpleheaddet`(1,2)) descends to a quadratic form on the simple head `V = M/T`.  lam↥B.XR hlamlam ≠ 0).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  vB.head
    **`prop:simpleheaddet`, packaged**: for every `0 ≠ λ ∈ 𝒳_R` the simple head `V`
    carries a *nonzero, nonsingular, `C`-invariant* quadratic form `q̄_λ` — exactly the three
    manuscript conclusions (l.3737–3741).  This determinant-pushout output is consumed by the
    §8 central-cover / phase-class construction. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlockActualDeterminantProofs.lean
    complete
    theorem Q2Presentation.Induction.minimalBlock_preheadCentralPushoutSimpleHeadDeterminantActualData_from_semanticClosers
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      {DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief : Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual.  pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p}
      (SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D :
        Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeThe central scalar-pushout square family over a pre-head tower.
    
    The square map is not an arbitrary quadratic form: it is definitionally the
    extraspecial square form attached to `phi`. 
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSimpleHeadDeterminantActualDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSimpleHeadDeterminantActualData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) : PropThe smallest remaining semantic determinant packet for the Section 7
    extraspecial residual.
    
    For the actual semantic central-pushout family `S`, this states exactly the
    `prop:simpleheaddet` conclusions needed by the existing lower route:
    
    * naturality of the determinant pairing;
    * annihilation of `T` by the scalar square map and its polar form;
    * containment of the polar radical in `T`.
    
    The square map is `S.toQuadraticFamily.square`, not a separately chosen
    extraspecial packet, so all downstream projections use one actual pushout family.
    
          SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D)
    theorem Q2Presentation.Induction.minimalBlock_preheadCentralPushoutSimpleHeadDeterminantActualData_from_semanticClosers
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      {DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief :
        Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual. 
          pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p}
      (SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D :
        Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeThe central scalar-pushout square family over a pre-head tower.
    
    The square map is not an arbitrary quadratic form: it is definitionally the
    extraspecial square form attached to `phi`. 
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSimpleHeadDeterminantActualDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSimpleHeadDeterminantActualData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) : PropThe smallest remaining semantic determinant packet for the Section 7
    extraspecial residual.
    
    For the actual semantic central-pushout family `S`, this states exactly the
    `prop:simpleheaddet` conclusions needed by the existing lower route:
    
    * naturality of the determinant pairing;
    * annihilation of `T` by the scalar square map and its polar form;
    * containment of the polar radical in `T`.
    
    The square map is `S.toQuadraticFamily.square`, not a separately chosen
    extraspecial packet, so all downstream projections use one actual pushout family.
    
          SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D)
    Replacement for the current actual determinant residual, narrowed to the
    four semantic `prop:simpleheaddet` pieces for the same central-pushout family.
    
    The axiom closure of this theorem does not use
    `minimalBlock_preheadCentralPushoutSimpleHeadDeterminantActualData`. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlockDeterminantSemanticProofs.lean
    complete
    theorem Q2Presentation.Induction.minimalBlock_preheadCentralPushoutCoherentDeterminantSemanticData
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      {DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief : Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual.  pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p}
      (SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D :
        Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeThe central scalar-pushout square family over a pre-head tower.
    
    The square map is not an arbitrary quadratic form: it is definitionally the
    extraspecial square form attached to `phi`. 
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutCoherentDeterminantSemanticDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutCoherentDeterminantSemanticData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) : PropA same-family semantic determinant packet for one actual central-pushout
    family `S`.
    
    The current final path asks for the four fields below as independent residuals.
    This packet records the manuscript-shaped assertion that all four conclusions
    come from the same scalar pushout `K_lambda = K / ker lambda`.
    
          SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D)
    theorem Q2Presentation.Induction.minimalBlock_preheadCentralPushoutCoherentDeterminantSemanticData
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      {DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief :
        Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual. 
          pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p}
      (SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D :
        Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeThe central scalar-pushout square family over a pre-head tower.
    
    The square map is not an arbitrary quadratic form: it is definitionally the
    extraspecial square form attached to `phi`. 
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutCoherentDeterminantSemanticDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutCoherentDeterminantSemanticData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) : PropA same-family semantic determinant packet for one actual central-pushout
    family `S`.
    
    The current final path asks for the four fields below as independent residuals.
    This packet records the manuscript-shaped assertion that all four conclusions
    come from the same scalar pushout `K_lambda = K / ker lambda`.
    
          SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D)
    **Closed coherent packet:** `prop:simpleheaddet` for one actual
    central-pushout family, assembled from the four same-family semantic determinant
    packets.
    
  • theoremdefined in Q2Presentation/Induction/MinimalBlockExtraspecialActualClosers4.lean
    complete
    theorem Q2Presentation.Induction.minimalBlock_preheadCentralPushoutActualClosers4Data_from_lowerPackets
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief : Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual.  pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutActualClosers4DataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutActualClosers4Data {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeActual central-pushout data plus the same-family simple-head determinant
    pieces for that actual scalar family.
    
    The field `actualScalar` is the scalar central-pushout family: it carries
    `phi_lambda`, the square map, scalar quotient surjectivity, and the theorem that
    the square is the extraspecial square of the same `phi_lambda`.  The determinant
    field is then stated for `actualScalar.toSemanticData`, so naturality,
    diagonal/polar vanishing, and radical containment are all tied to the same
    family.
    
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief)
    theorem Q2Presentation.Induction.minimalBlock_preheadCentralPushoutActualClosers4Data_from_lowerPackets
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief :
        Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual. 
          pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutActualClosers4DataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutActualClosers4Data {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeActual central-pushout data plus the same-family simple-head determinant
    pieces for that actual scalar family.
    
    The field `actualScalar` is the scalar central-pushout family: it carries
    `phi_lambda`, the square map, scalar quotient surjectivity, and the theorem that
    the square is the extraspecial square of the same `phi_lambda`.  The determinant
    field is then stated for `actualScalar.toSemanticData`, so naturality,
    diagonal/polar vanishing, and radical containment are all tied to the same
    family.
    
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief)
    Assemble the fourth-pass actual central-pushout packet from lower packets.
    
    The square/polar side is obtained from the standard same-family determinant
    packets and the theorem-level extraspecial comparison.  The determinant side is
    obtained from the four semantic `prop:simpleheaddet` packets for exactly the
    semantic family projected from that actual scalar pushout.
    
  • theoremdefined in Q2Presentation/Induction/MinimalBlockExtraspecialClosers3.lean
    complete
    theorem Q2Presentation.Induction.minimalBlock_preheadCentralPushoutExtraspecialActualData
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief : Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual.  pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeCoherent actual Section 7 central-pushout/extraspecial determinant data.
    
    For every nonzero invariant `lambda : R -> F_2`, this records the actual
    central-pushout pairing `phi_lambda`, its conjugation naturality, the
    `prop:simpleheaddet` annihilation statement for the extraspecial square map, and
    the radical-containment statement which makes the descended head form
    nonsingular.
    
    This packet is deliberately indexed only by the pre-head tower `D`: all
    projection theorems below derive their families from this same `phi`, so the
    current residuals cannot drift onto unrelated arbitrary families. 
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief)
    theorem Q2Presentation.Induction.minimalBlock_preheadCentralPushoutExtraspecialActualData
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief :
        Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual. 
          pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeCoherent actual Section 7 central-pushout/extraspecial determinant data.
    
    For every nonzero invariant `lambda : R -> F_2`, this records the actual
    central-pushout pairing `phi_lambda`, its conjugation naturality, the
    `prop:simpleheaddet` annihilation statement for the extraspecial square map, and
    the radical-containment statement which makes the descended head form
    nonsingular.
    
    This packet is deliberately indexed only by the pre-head tower `D`: all
    projection theorems below derive their families from this same `phi`, so the
    current residuals cannot drift onto unrelated arbitrary families. 
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief)
    Remaining Section 7 floor after this sidecar, now discharged from the
    actual semantic split: construct the actual scalar central-pushout square/polar
    family and prove `prop:simpleheaddet` for the same projected family. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlockExtraspecialClosers3.lean
    complete
    theorem Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualData.descended_nonsingular
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      {DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief : Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual.  pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p}
      (PQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualData D :
        Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeCoherent actual Section 7 central-pushout/extraspecial determinant data.
    
    For every nonzero invariant `lambda : R -> F_2`, this records the actual
    central-pushout pairing `phi_lambda`, its conjugation naturality, the
    `prop:simpleheaddet` annihilation statement for the extraspecial square map, and
    the radical-containment statement which makes the descended head form
    nonsingular.
    
    This packet is deliberately indexed only by the pre-head tower `D`: all
    projection theorems below derive their families from this same `phi`, so the
    current residuals cannot drift onto unrelated arbitrary families. 
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief)
      (lamModule.Dual (ZMod 2) D.R : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief.RQ2Presentation.Induction.MinimalBlockPreheadTowerData.R {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (self : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : Type) (hlamlam ≠ 0 : lamModule.Dual (ZMod 2) D.R Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0)
      (hinv∀ (c : D.C), lam ∘ₗ ↑(D.actR c) = lam :  (cD.C : DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief.CQ2Presentation.Induction.MinimalBlockPreheadTowerData.C {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (self : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : Type), lamModule.Dual (ZMod 2) D.R ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief.actRQ2Presentation.Induction.MinimalBlockPreheadTowerData.actR {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (self : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : self.C →* self.R ≃ₗ[ZMod 2] self.R cD.C) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. lamModule.Dual (ZMod 2) D.R) : .descendQ2Presentation.Induction.Annihilates.descend.{u_1} {M : Type u_1} [AddCommGroup M] [Module (ZMod 2) M]
      {q : Q2Presentation.Quadratic.QuadF2 M} {T : Submodule (ZMod 2) M} (h : Q2Presentation.Induction.Annihilates q T) :
      Q2Presentation.Quadratic.QuadF2 (M ⧸ T)**The descended quadratic form `q̄ : QuadF2 (M / T)`** of `prop:simpleheaddet`: the
    square map of the pushout descends to the simple head, with polar form the descended
    commutator pairing. .NonsingularQ2Presentation.Quadratic.QuadF2.Nonsingular.{u_1} {V : Type u_1} [AddCommGroup V] [Module (ZMod 2) V]
      (q : Q2Presentation.Quadratic.QuadF2 V) : Prop**Nonsingularity** (the polar form is nondegenerate / perfect): the only vector
    pairing to `0` with everything is `0`.  For a nonzero invariant form on a simple
    self-dual `V` this is automatic (`lem:zeropolar`, l.3452). 
    theorem Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualData.descended_nonsingular
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      {DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief :
        Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual. 
          pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p}
      (PQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualData D :
        Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeCoherent actual Section 7 central-pushout/extraspecial determinant data.
    
    For every nonzero invariant `lambda : R -> F_2`, this records the actual
    central-pushout pairing `phi_lambda`, its conjugation naturality, the
    `prop:simpleheaddet` annihilation statement for the extraspecial square map, and
    the radical-containment statement which makes the descended head form
    nonsingular.
    
    This packet is deliberately indexed only by the pre-head tower `D`: all
    projection theorems below derive their families from this same `phi`, so the
    current residuals cannot drift onto unrelated arbitrary families. 
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief)
      (lamModule.Dual (ZMod 2) D.R : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief.RQ2Presentation.Induction.MinimalBlockPreheadTowerData.R {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (self : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : Type)
      (hlamlam ≠ 0 : lamModule.Dual (ZMod 2) D.R Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0)
      (hinv∀ (c : D.C), lam ∘ₗ ↑(D.actR c) = lam :
         (cD.C : DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief.CQ2Presentation.Induction.MinimalBlockPreheadTowerData.C {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (self : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : Type),
          lamModule.Dual (ZMod 2) D.R ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief.actRQ2Presentation.Induction.MinimalBlockPreheadTowerData.actR {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (self : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : self.C →* self.R ≃ₗ[ZMod 2] self.R cD.C) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. lamModule.Dual (ZMod 2) D.R) :
      .descendQ2Presentation.Induction.Annihilates.descend.{u_1} {M : Type u_1} [AddCommGroup M] [Module (ZMod 2) M]
      {q : Q2Presentation.Quadratic.QuadF2 M} {T : Submodule (ZMod 2) M} (h : Q2Presentation.Induction.Annihilates q T) :
      Q2Presentation.Quadratic.QuadF2 (M ⧸ T)**The descended quadratic form `q̄ : QuadF2 (M / T)`** of `prop:simpleheaddet`: the
    square map of the pushout descends to the simple head, with polar form the descended
    commutator pairing. .NonsingularQ2Presentation.Quadratic.QuadF2.Nonsingular.{u_1} {V : Type u_1} [AddCommGroup V] [Module (ZMod 2) V]
      (q : Q2Presentation.Quadratic.QuadF2 V) : Prop**Nonsingularity** (the polar form is nondegenerate / perfect): the only vector
    pairing to `0` with everything is `0`.  For a nonzero invariant form on a simple
    self-dual `V` this is automatic (`lem:zeropolar`, l.3452). 
    The descended simple-head form is nonsingular.  This is the formal
    `prop:simpleheaddet` nonsingularity step, derived from `Annihilates.descend` and
    the radical-containment field. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlockExtraspecialDeterminantProofs.lean
    complete
    theorem Q2Presentation.Induction.minimalBlock_preheadExtraspecialPackets_from_determinantResidual
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      {DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief : Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual.  pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p}
      (SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityData D :
        Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeThe central-pushout self-duality family underlying the extraspecial square
    maps, before naturality is installed.
    
    Manuscript anchor: the scalar central pushouts `K_lambda = K / ker lambda` and
    their square/polar maps in `prop:simpleheaddet`.
    
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief) :
       FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D,
        NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe two annihilation conclusions of `prop:simpleheaddet`, stated over the
    pre-head equivariant determinant family. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe polar-radical containment conclusion of `prop:simpleheaddet`, stated before
    the head-nontrivial field is installed. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D)
    theorem Q2Presentation.Induction.minimalBlock_preheadExtraspecialPackets_from_determinantResidual
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      {DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief :
        Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual. 
          pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p}
      (SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityData D :
        Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeThe central-pushout self-duality family underlying the extraspecial square
    maps, before naturality is installed.
    
    Manuscript anchor: the scalar central pushouts `K_lambda = K / ker lambda` and
    their square/polar maps in `prop:simpleheaddet`.
    
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief) :
       FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D,
        NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe two annihilation conclusions of `prop:simpleheaddet`, stated over the
    pre-head equivariant determinant family. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe polar-radical containment conclusion of `prop:simpleheaddet`, stated before
    the head-nontrivial field is installed. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D)
    The determinant half needed by the final Section 7 route, now closed from one
    coherent extraspecial `prop:simpleheaddet` residual instead of four independent
    extraspecial packet residuals. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlockPushoutRoute15SemanticReduction.lean
    complete
    theorem Q2Presentation.Induction.minimalBlock_pushoutRoute15Data_from_semanticDeterminantPieces
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief : Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual.  pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
     (Q2Presentation.Induction.MinimalBlockPushoutRoute15DataQ2Presentation.Induction.MinimalBlockPushoutRoute15Data {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeRoute15 central-pushout data.
    
    The `determinant` field is indexed by the same semantic family as `semantic`.
    This prevents the route from mixing a `phi_lambda` family from one residual with
    simple-head determinant facts for another family.  DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief)
    theorem Q2Presentation.Induction.minimalBlock_pushoutRoute15Data_from_semanticDeterminantPieces
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief :
        Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual. 
          pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockPushoutRoute15DataQ2Presentation.Induction.MinimalBlockPushoutRoute15Data {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeRoute15 central-pushout data.
    
    The `determinant` field is indexed by the same semantic family as `semantic`.
    This prevents the route from mixing a `phi_lambda` family from one residual with
    simple-head determinant facts for another family. 
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief)
    Assemble the same-family route15 packet.
    
    The only non-local inputs used here are the semantic central-pushout family and
    the four same-family semantic determinant facts from `prop:simpleheaddet`.
    Notably, this does not call the route12 quadratic-family, square-diagonal, or
    polar-symmetry residuals. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlockPushoutRoute212Closers.lean
    complete
    theorem Q2Presentation.Induction.MinimalBlockPushoutRoute212Closers.minimalBlock_preheadRoute212LowerManuscriptSurface
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief : Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual.  pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
       xQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSquarePolarData D SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D,
        NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutNaturalitySemanticDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutNaturalitySemanticData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) : PropNaturality of the central-pushout self-duality family. 
              SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
              (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutDiagonalZeroSemanticDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutDiagonalZeroSemanticData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) : PropDiagonal vanishing of the central-pushout square map on `T`. 
                SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
            NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
                (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutPolarZeroSemanticDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutPolarZeroSemanticData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) : PropPolar vanishing of the central-pushout pairing on `T x M`. 
                  SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
              NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
                (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutRadicalContainmentSemanticDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutRadicalContainmentSemanticData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) : PropRadical containment for the symmetrized central-pushout polar form. 
                  SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D)
    theorem Q2Presentation.Induction.MinimalBlockPushoutRoute212Closers.minimalBlock_preheadRoute212LowerManuscriptSurface
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief :
        Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual. 
          pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
       xQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSquarePolarData D SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D,
        NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutNaturalitySemanticDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutNaturalitySemanticData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) : PropNaturality of the central-pushout self-duality family. 
              SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
              (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutDiagonalZeroSemanticDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutDiagonalZeroSemanticData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) : PropDiagonal vanishing of the central-pushout square map on `T`. 
                SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
            NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
                (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutPolarZeroSemanticDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutPolarZeroSemanticData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) : PropPolar vanishing of the central-pushout pairing on `T x M`. 
                  SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
              NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
                (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutRadicalContainmentSemanticDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutRadicalContainmentSemanticData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) : PropRadical containment for the symmetrized central-pushout polar form. 
                  SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D)
    Route212 audit surface for the lowered Section 7 determinant/pushout
    frontier.
    
    The first field is the coherent scalar pushout square/polar packet attached to
    the actual central pushout.  The remaining four fields are the semantic
    `prop:simpleheaddet` pieces for the semantic central-pushout family reconstructed
    from that scalar packet.  The theorem does not use either Route199 aggregate
    residual atom as an axiom.
    
  • theoremdefined in Q2Presentation/Induction/MinimalBlockPushoutRoute67Closers.lean
    complete
    theorem Q2Presentation.Induction.minimalBlock_preheadDeterminantPackets_from_route67
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief : Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual.  pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
       FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D,
        NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe two annihilation conclusions of `prop:simpleheaddet`, stated over the
    pre-head equivariant determinant family. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe polar-radical containment conclusion of `prop:simpleheaddet`, stated before
    the head-nontrivial field is installed. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D)
    theorem Q2Presentation.Induction.minimalBlock_preheadDeterminantPackets_from_route67
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief :
        Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual. 
          pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
       FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D,
        NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe two annihilation conclusions of `prop:simpleheaddet`, stated over the
    pre-head equivariant determinant family. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe polar-radical containment conclusion of `prop:simpleheaddet`, stated before
    the head-nontrivial field is installed. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D)
    Drop-in determinant-packet replacement for
    `minimalBlock_preheadDeterminantPackets_from_route63`.
    
    Its closure lowers the seven Route66 minimal-block determinant/pushout atoms to
    the actual scalar pushout construction and the same-family actual
    `prop:simpleheaddet` packet.
    
  • theoremdefined in Q2Presentation/Induction/MinimalBlockPushoutRoute83Closers.lean
    complete
    theorem Q2Presentation.Induction.MinimalBlockPushoutRoute83Closers.minimalBlock_preheadPushoutRoute83Data_from_actualScalarAndCoherentDeterminant
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief : Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual.  pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockPushoutRoute83Closers.MinimalBlockPreheadPushoutRoute83DataQ2Presentation.Induction.MinimalBlockPushoutRoute83Closers.MinimalBlockPreheadPushoutRoute83Data
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeRoute83 coherent pushout datum.
    
    `actualScalar` is the scalar central-pushout construction: it supplies the
    pairing family and identifies the square with the extraspecial square attached
    to that same family.  `determinant` is the same-family semantic
    `prop:simpleheaddet` packet for the semantic family obtained from
    `actualScalar`.
    
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief)
    theorem Q2Presentation.Induction.MinimalBlockPushoutRoute83Closers.minimalBlock_preheadPushoutRoute83Data_from_actualScalarAndCoherentDeterminant
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief :
        Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual. 
          pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockPushoutRoute83Closers.MinimalBlockPreheadPushoutRoute83DataQ2Presentation.Induction.MinimalBlockPushoutRoute83Closers.MinimalBlockPreheadPushoutRoute83Data
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeRoute83 coherent pushout datum.
    
    `actualScalar` is the scalar central-pushout construction: it supplies the
    pairing family and identifies the square with the extraspecial square attached
    to that same family.  `determinant` is the same-family semantic
    `prop:simpleheaddet` packet for the semantic family obtained from
    `actualScalar`.
    
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief)
    Assemble Route83 from existing finer manuscript-shaped packets.
    
    The actual scalar pushout is obtained from the standard same-family square/polar
    proof hooks; the simple-head determinant part is the coherent semantic
    `prop:simpleheaddet` packet for the same induced semantic family.  This theorem
    therefore avoids the four Route82 residual axioms. 
  • theoremdefined in Q2Presentation/Induction/MinimalBlockPushoutRouteActualProofs.lean
    complete
    theorem Q2Presentation.Induction.minimalBlock_preheadExtraspecialSimpleHeadDeterminantData_from_actualPackets
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      {DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief : Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual.  pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p}
      (SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityData D :
        Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeThe central-pushout self-duality family underlying the extraspecial square
    maps, before naturality is installed.
    
    Manuscript anchor: the scalar central pushouts `K_lambda = K / ker lambda` and
    their square/polar maps in `prop:simpleheaddet`.
    
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialSimpleHeadDeterminantDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialSimpleHeadDeterminantData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialFamilyData D) : PropLower same-family determinant packet for the PREHEAD extraspecial residuals.
    
    The `annihilates_on_T` and `radical_subset_T` fields are stated on the actual
    extraspecial quadratic form attached to `F.phi lam`.  They are the formal
    counterpart of `q_lambda|_T = 0`, `b_lambda(T,M)=0`, and polar-radical descent in
    `prop:simpleheaddet`. 
          (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialFamilyData.ofCentralPushoutSelfDualityQ2Presentation.Induction.MinimalBlockPreheadExtraspecialFamilyData.ofCentralPushoutSelfDuality
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityData D) :
      Q2Presentation.Induction.MinimalBlockPreheadExtraspecialFamilyData DView central-pushout self-duality as the existing bare extraspecial family
    packet. 
            SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityData D))
    theorem Q2Presentation.Induction.minimalBlock_preheadExtraspecialSimpleHeadDeterminantData_from_actualPackets
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      {DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief :
        Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual. 
          pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p}
      (SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityData D :
        Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeThe central-pushout self-duality family underlying the extraspecial square
    maps, before naturality is installed.
    
    Manuscript anchor: the scalar central pushouts `K_lambda = K / ker lambda` and
    their square/polar maps in `prop:simpleheaddet`.
    
          DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialSimpleHeadDeterminantDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialSimpleHeadDeterminantData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialFamilyData D) : PropLower same-family determinant packet for the PREHEAD extraspecial residuals.
    
    The `annihilates_on_T` and `radical_subset_T` fields are stated on the actual
    extraspecial quadratic form attached to `F.phi lam`.  They are the formal
    counterpart of `q_lambda|_T = 0`, `b_lambda(T,M)=0`, and polar-radical descent in
    `prop:simpleheaddet`. 
          (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialFamilyData.ofCentralPushoutSelfDualityQ2Presentation.Induction.MinimalBlockPreheadExtraspecialFamilyData.ofCentralPushoutSelfDuality
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityData D) :
      Q2Presentation.Induction.MinimalBlockPreheadExtraspecialFamilyData DView central-pushout self-duality as the existing bare extraspecial family
    packet. 
            SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSelfDualityData D))
    The lower simple-head determinant packet follows from the existing concrete
    central-pushout/extraspecial packets, all on the same self-duality family.
    
    This is the formal `prop:simpleheaddet` reassembly: naturality gives the
    `C`-equivariance field, diagonal and polar vanishing give `q_lambda|_T = 0` and
    `b_lambda(T,M)=0` for the actual extraspecial square map, and radical containment
    gives the nonsingularity input after descent to the simple head.
    
  • theoremdefined in Q2Presentation/Induction/MinimalBlockResidualRefinement.lean
    complete
    theorem Q2Presentation.Induction.minimalBlock_scalarQuotientData
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockTowerData p chief : Q2Presentation.Induction.MinimalBlockTowerDataQ2Presentation.Induction.MinimalBlockTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The module-level target tower supplied by the Section 7 choice of the minimal
    normal subgroup `K` and `lem:simplehead`.
    
    This deliberately stops before determinant characters and pushouts.  It records only
    the finite `F_2` modules `R = Phi(K)`, `M = K/R`, the radical `T`, the quotient group
    `C = Y/K`, the two actions, the nontrivial simple head `M/T`, stability of `T`, and
    the representation-theoretic input `(M^vee)^C = 0`.  pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
     (Q2Presentation.Induction.MinimalBlockScalarQuotientDataQ2Presentation.Induction.MinimalBlockScalarQuotientData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockTowerData p chief) : TypeA scalar quotient of the Frattini layer `R`.
    
    This is the finite-module form of saying that the scalar factors below the first
    non-scalar layer leave a nonzero trivial quotient of `R`.  A surjection
    `R -> F_2` fixed by `C` is exactly a nonzero invariant determinant character, but
    this formulation rules out the one-point shortcut by surjectivity rather than by a
    bare nonzero witness.  DQ2Presentation.Induction.MinimalBlockTowerData p chief)
    theorem Q2Presentation.Induction.minimalBlock_scalarQuotientData
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockTowerData p chief :
        Q2Presentation.Induction.MinimalBlockTowerDataQ2Presentation.Induction.MinimalBlockTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The module-level target tower supplied by the Section 7 choice of the minimal
    normal subgroup `K` and `lem:simplehead`.
    
    This deliberately stops before determinant characters and pushouts.  It records only
    the finite `F_2` modules `R = Phi(K)`, `M = K/R`, the radical `T`, the quotient group
    `C = Y/K`, the two actions, the nontrivial simple head `M/T`, stability of `T`, and
    the representation-theoretic input `(M^vee)^C = 0`. 
          pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockScalarQuotientDataQ2Presentation.Induction.MinimalBlockScalarQuotientData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockTowerData p chief) : TypeA scalar quotient of the Frattini layer `R`.
    
    This is the finite-module form of saying that the scalar factors below the first
    non-scalar layer leave a nonzero trivial quotient of `R`.  A surjection
    `R -> F_2` fixed by `C` is exactly a nonzero invariant determinant character, but
    this formulation rules out the one-point shortcut by surjectivity rather than by a
    bare nonzero witness. 
          DQ2Presentation.Induction.MinimalBlockTowerData p chief)
    **Residual Section 7 axiom: scalar quotient of the Frattini layer.**
    
    Manuscript anchor: `X_R = (R^vee)^B = (R^vee)^C` and the quantification over
    `0 != lambda in X_R` in `prop:simpleheaddet`.  This is the precise non-vacuity
    condition needed by the strengthened interface, stated as a fixed scalar quotient
    of `R`. 
  • defdefined in Q2Presentation/Induction/RadicalEdgeTower.lean
    complete
    def Q2Presentation.Induction.sec7Crux
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      Q2Presentation.Induction.Sec7SimpleHeadCruxDataQ2Presentation.Induction.Sec7SimpleHeadCruxData {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : Prop**The manuscript-exact simple-head crux** (`prop:simpleheaddet`, l.3745–3768):
    (i) the socle argument `b_λ(T,M) = 0`; (ii) the shear/H¹-vanishing argument
    `q_λ|_T = 0`; (iii) head-nondegeneracy (polar radical ⊆ `T`).  Everything else in
    the extraspecial determinant interface is THEOREM-level via the polarization
    construction (`Quadratic.polarization`) and the compiled transgression layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor
    def Q2Presentation.Induction.sec7Crux
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      Q2Presentation.Induction.Sec7SimpleHeadCruxDataQ2Presentation.Induction.Sec7SimpleHeadCruxData {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : Prop**The manuscript-exact simple-head crux** (`prop:simpleheaddet`, l.3745–3768):
    (i) the socle argument `b_λ(T,M) = 0`; (ii) the shear/H¹-vanishing argument
    `q_λ|_T = 0`; (iii) head-nondegeneracy (polar radical ⊆ `T`).  Everything else in
    the extraspecial determinant interface is THEOREM-level via the polarization
    construction (`Quadratic.polarization`) and the compiled transgression layer. 
        chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor
    **The proven crux, packaged once** (`prop:simpleheaddet`, all-theorem
    chain: trivial-chain clause (i) + shear clause (ii) + radical clause). 
  • theoremdefined in Q2Presentation/Induction/Section7PushoutConstruction.lean
    complete
    theorem Q2Presentation.Induction.sec7SqAux_mul
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (k↥K.Ksub k'↥K.Ksub : KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor.KsubQ2Presentation.Induction.KernelMinimal.Ksub {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (self : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.Y) :
      Q2Presentation.Induction.sec7SqAuxQ2Presentation.Induction.sec7SqAux {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) (k : ↥K.Ksub) :
      Q2Presentation.Induction.towerR chief KThe square of a kernel element, in the ambient Frattini copy.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `*` in identifiers is `mul`.k↥K.Ksub *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `*` in identifiers is `mul`. k'↥K.Ksub)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `*` in identifiers is `mul`. =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
        Q2Presentation.Induction.sec7CommAuxQ2Presentation.Induction.sec7CommAux {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) (k k' : ↥K.Ksub) :
      Q2Presentation.Induction.towerR chief KThe commutator of two kernel elements, in the ambient Frattini copy.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor k'↥K.Ksub k↥K.Ksub +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `+` in identifiers is `add`.
            Q2Presentation.Induction.sec7SqAuxQ2Presentation.Induction.sec7SqAux {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) (k : ↥K.Ksub) :
      Q2Presentation.Induction.towerR chief KThe square of a kernel element, in the ambient Frattini copy.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor k↥K.Ksub +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `+` in identifiers is `add`.
          Q2Presentation.Induction.sec7SqAuxQ2Presentation.Induction.sec7SqAux {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) (k : ↥K.Ksub) :
      Q2Presentation.Induction.towerR chief KThe square of a kernel element, in the ambient Frattini copy.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor k'↥K.Ksub
    theorem Q2Presentation.Induction.sec7SqAux_mul
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (k↥K.Ksub k'↥K.Ksub : KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor.KsubQ2Presentation.Induction.KernelMinimal.Ksub {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (self : Q2Presentation.Induction.KernelMinimal chief) :
      Subgroup p.fst.Y) :
      Q2Presentation.Induction.sec7SqAuxQ2Presentation.Induction.sec7SqAux {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) (k : ↥K.Ksub) :
      Q2Presentation.Induction.towerR chief KThe square of a kernel element, in the ambient Frattini copy.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p
          KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor (HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `*` in identifiers is `mul`.k↥K.Ksub *HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `*` in identifiers is `mul`. k'↥K.Ksub)HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `*` in identifiers is `mul`. =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
        Q2Presentation.Induction.sec7CommAuxQ2Presentation.Induction.sec7CommAux {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) (k k' : ↥K.Ksub) :
      Q2Presentation.Induction.towerR chief KThe commutator of two kernel elements, in the ambient Frattini copy. 
              chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor k'↥K.Ksub k↥K.Ksub +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `+` in identifiers is `add`.
            Q2Presentation.Induction.sec7SqAuxQ2Presentation.Induction.sec7SqAux {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) (k : ↥K.Ksub) :
      Q2Presentation.Induction.towerR chief KThe square of a kernel element, in the ambient Frattini copy. 
              chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor k↥K.Ksub +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `+` in identifiers is `add`.
          Q2Presentation.Induction.sec7SqAuxQ2Presentation.Induction.sec7SqAux {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) (k : ↥K.Ksub) :
      Q2Presentation.Induction.towerR chief KThe square of a kernel element, in the ambient Frattini copy. 
            chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor k'↥K.Ksub
    **The quadratic law for the squaring transgression** (`prop:simpleheaddet`
    mechanism): `Sq(kk') = Comm(k',k) + Sq k + Sq k'` in the abelian layer `R`. 
  • defdefined in Q2Presentation/Induction/Section7PushoutConstruction.lean
    complete
    def Q2Presentation.Induction.sec7SquareFamily
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)) :
      Q2Presentation.Quadratic.QuadF2Q2Presentation.Quadratic.QuadF2.{u_2} (V : Type u_2) [AddCommGroup V] [Module (ZMod 2) V] : Type u_2A **quadratic form over `F₂`** with its bilinear polar (commutator) form.  (Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
    def Q2Presentation.Induction.sec7SquareFamily
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer. 
            chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)) :
      Q2Presentation.Quadratic.QuadF2Q2Presentation.Quadratic.QuadF2.{u_2} (V : Type u_2) [AddCommGroup V] [Module (ZMod 2) V] : Type u_2A **quadratic form over `F₂`** with its bilinear polar (commutator) form. 
        (Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
    **The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing. 
  • theoremdefined in Q2Presentation/Induction/Section7PushoutConstruction.lean
    complete
    theorem Q2Presentation.Induction.sec7SquareFamily_annihilates
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
      (hkillQ2Presentation.Induction.KillsFrattiniInterS chief K lam : Q2Presentation.Induction.KillsFrattiniInterSQ2Presentation.Induction.KillsFrattiniInterS {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) : Prop**The §7 kill hypothesis** (`lem:simplehead` content, to be supplied by the
    crux residual): the character kills the ambient `Φ(K) ∩ S` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Induction.AnnihilatesQ2Presentation.Induction.Annihilates.{u_1} {M : Type u_1} [AddCommGroup M] [Module (ZMod 2) M]
      (q : Q2Presentation.Quadratic.QuadF2 M) (T : Submodule (ZMod 2) M) : PropA `QuadF2 M` **annihilates** the submodule `T` when its quadratic map vanishes on
    `T` and its polar form kills `T` against all of `M`.  These are *exactly* the two
    conclusions `q_λ|_T = 0` and `b_λ(T, M) = 0` of `prop:simpleheaddet`. 
        (Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
        (Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
    theorem Q2Presentation.Induction.sec7SquareFamily_annihilates
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer. 
            chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
      (hkillQ2Presentation.Induction.KillsFrattiniInterS chief K lam :
        Q2Presentation.Induction.KillsFrattiniInterSQ2Presentation.Induction.KillsFrattiniInterS {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) : Prop**The §7 kill hypothesis** (`lem:simplehead` content, to be supplied by the
    crux residual): the character kills the ambient `Φ(K) ∩ S` layer. 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Induction.AnnihilatesQ2Presentation.Induction.Annihilates.{u_1} {M : Type u_1} [AddCommGroup M] [Module (ZMod 2) M]
      (q : Q2Presentation.Quadratic.QuadF2 M) (T : Submodule (ZMod 2) M) : PropA `QuadF2 M` **annihilates** the submodule `T` when its quadratic map vanishes on
    `T` and its polar form kills `T` against all of `M`.  These are *exactly* the two
    conclusions `q_λ|_T = 0` and `b_λ(T, M) = 0` of `prop:simpleheaddet`. 
        (Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing. 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
        (Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
    **Conditional `T`-annihilation** (`prop:simpleheaddet` annihilation clause):
    under the kill hypothesis, the λ-composed quadratic family annihilates the
    radical layer `T = (K∩S)/Φ(K)`. 
  • structure(6 fields)defined in Q2Presentation/Induction/Section7PushoutConstruction.lean
    complete
    structure Q2Presentation.Induction.Sec7PushoutCruxData
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      TypeA type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. 
    structure Q2Presentation.Induction.Sec7PushoutCruxData
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      TypeA type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. 
    **The F9 crux bundle** — exactly the three genuinely-§7 facts of
    `prop:simpleheaddet` that remain after the mechanism layer above:
    
    * `phi` — the equivariant quadratic refinement of the squaring transgression
      (manuscript l.3730–3770, the self-dual-head polarization);
    * `kill` — invariant characters kill the `Φ(K) ∩ S` layer (`lem:simplehead`);
    * `radical` — the polar radical lies in `T` (head-nondegeneracy, `lem:simplehead`).
    

    Fields

    phiModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) →
      Q2Presentation.Induction.towerM K →ₗ[ZMod 2] Module.Dual (ZMod 2) (Q2Presentation.Induction.towerM K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) 
      Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor →ₗ[LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time. ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2]LinearMap.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] :
      Type (max u_16 u_17)A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
    is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
    `f (c • x) = (σ c) • f x`. Elements of `LinearMap σ M M₂` (available under the notation
    `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
    `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
    maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time.  Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
    diagonal∀ (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) (m : Q2Presentation.Induction.towerM K),
      (Q2Presentation.Induction.sec7SquareFamily chief K lam).form m = ((self.phi lam) m) m :  (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)) (mQ2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
      (Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  mQ2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. ((selfQ2Presentation.Induction.Sec7PushoutCruxData chief K.phiQ2Presentation.Induction.Sec7PushoutCruxData.phi {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p}
      {K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor}
      (self : Q2Presentation.Induction.Sec7PushoutCruxData chief K) :
      Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) →
        Q2Presentation.Induction.towerM K →ₗ[ZMod 2] Module.Dual (ZMod 2) (Q2Presentation.Induction.towerM K) lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) mQ2Presentation.Induction.towerM K) mQ2Presentation.Induction.towerM K
    polar_symm∀ (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) (m m' : Q2Presentation.Induction.towerM K),
      ((Q2Presentation.Induction.sec7SquareFamily chief K lam).polar m) m' = ((self.phi lam) m) m' + ((self.phi lam) m') m :  (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)) (mQ2Presentation.Induction.towerM K m'Q2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
      ((Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).polarQ2Presentation.Quadratic.QuadF2.polar.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V →ₗ[ZMod 2] V →ₗ[ZMod 2] ZMod 2the bilinear polar form `b_q`, i.e. the commutator pairing  mQ2Presentation.Induction.towerM K) m'Q2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. ((selfQ2Presentation.Induction.Sec7PushoutCruxData chief K.phiQ2Presentation.Induction.Sec7PushoutCruxData.phi {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p}
      {K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor}
      (self : Q2Presentation.Induction.Sec7PushoutCruxData chief K) :
      Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) →
        Q2Presentation.Induction.towerM K →ₗ[ZMod 2] Module.Dual (ZMod 2) (Q2Presentation.Induction.towerM K) lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) mQ2Presentation.Induction.towerM K) m'Q2Presentation.Induction.towerM K +HAdd.hAdd.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HAdd α β γ] : α → β → γ`a + b` computes the sum of `a` and `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `+` in identifiers is `add`. ((selfQ2Presentation.Induction.Sec7PushoutCruxData chief K.phiQ2Presentation.Induction.Sec7PushoutCruxData.phi {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p}
      {K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor}
      (self : Q2Presentation.Induction.Sec7PushoutCruxData chief K) :
      Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) →
        Q2Presentation.Induction.towerM K →ₗ[ZMod 2] Module.Dual (ZMod 2) (Q2Presentation.Induction.towerM K) lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) m'Q2Presentation.Induction.towerM K) mQ2Presentation.Induction.towerM K
    natural∀ (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)),
      lam ≠ 0 →
        (∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) →
          ∀ (c : Q2Presentation.Induction.towerC K) (m m' : Q2Presentation.Induction.towerM K),
            ((self.phi lam) (((Q2Presentation.Induction.towerActM K) c) m))
                (((Q2Presentation.Induction.towerActM K) c) m') =
              ((self.phi lam) m) m' :  (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)),
      lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0 
        (∀ (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor), lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) 
           (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) (mQ2Presentation.Induction.towerM K m'Q2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
            ((selfQ2Presentation.Induction.Sec7PushoutCruxData chief K.phiQ2Presentation.Induction.Sec7PushoutCruxData.phi {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p}
      {K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor}
      (self : Q2Presentation.Induction.Sec7PushoutCruxData chief K) :
      Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) →
        Q2Presentation.Induction.towerM K →ₗ[ZMod 2] Module.Dual (ZMod 2) (Q2Presentation.Induction.towerM K) lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) (((Q2Presentation.Induction.towerActMQ2Presentation.Induction.towerActM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Q2Presentation.Induction.towerC K →* Q2Presentation.Induction.towerM K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerM KThe conjugation action of the lower target `C = Y/K` on the additive module
    `M = K/Φ(K)`, as `ZMod 2`-linear equivalences — the manuscript's `𝔽₂[C]`-module
    structure on `M` (`lem:simplehead`), fully constructed.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) cQ2Presentation.Induction.towerC K) mQ2Presentation.Induction.towerM K))
                (((Q2Presentation.Induction.towerActMQ2Presentation.Induction.towerActM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Q2Presentation.Induction.towerC K →* Q2Presentation.Induction.towerM K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerM KThe conjugation action of the lower target `C = Y/K` on the additive module
    `M = K/Φ(K)`, as `ZMod 2`-linear equivalences — the manuscript's `𝔽₂[C]`-module
    structure on `M` (`lem:simplehead`), fully constructed.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) cQ2Presentation.Induction.towerC K) m'Q2Presentation.Induction.towerM K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
              ((selfQ2Presentation.Induction.Sec7PushoutCruxData chief K.phiQ2Presentation.Induction.Sec7PushoutCruxData.phi {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p}
      {K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor}
      (self : Q2Presentation.Induction.Sec7PushoutCruxData chief K) :
      Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) →
        Q2Presentation.Induction.towerM K →ₗ[ZMod 2] Module.Dual (ZMod 2) (Q2Presentation.Induction.towerM K) lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) mQ2Presentation.Induction.towerM K) m'Q2Presentation.Induction.towerM K
    kill∀ (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)),
      lam ≠ 0 →
        (∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) →
          Q2Presentation.Induction.KillsFrattiniInterS chief K lam :  (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)),
      lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0 
        (∀ (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor), lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) 
          Q2Presentation.Induction.KillsFrattiniInterSQ2Presentation.Induction.KillsFrattiniInterS {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) : Prop**The §7 kill hypothesis** (`lem:simplehead` content, to be supplied by the
    crux residual): the character kills the ambient `Φ(K) ∩ S` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)
    radical∀ (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)),
      lam ≠ 0 →
        (∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) →
          ∀ (m : Q2Presentation.Induction.towerM K),
            (∀ (m' : Q2Presentation.Induction.towerM K),
                ((Q2Presentation.Induction.sec7SquareFamily chief K lam).polar m) m' = 0) →
              m ∈ Q2Presentation.Induction.towerT K :  (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)),
      lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0 
        (∀ (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor), lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) 
           (mQ2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
            (∀ (m'Q2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
                ((Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).polarQ2Presentation.Quadratic.QuadF2.polar.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V →ₗ[ZMod 2] V →ₗ[ZMod 2] ZMod 2the bilinear polar form `b_q`, i.e. the commutator pairing  mQ2Presentation.Induction.towerM K) m'Q2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0) 
              mQ2Presentation.Induction.towerM K Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor
  • theoremdefined in Q2Presentation/Induction/Section7PushoutConstruction.lean
    complete
    theorem Q2Presentation.Induction.sec7_pushoutPacket_ofCrux
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (cruxQ2Presentation.Induction.Sec7PushoutCruxData chief K : Q2Presentation.Induction.Sec7PushoutCruxDataQ2Presentation.Induction.Sec7PushoutCruxData {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : Type**The F9 crux bundle** — exactly the three genuinely-§7 facts of
    `prop:simpleheaddet` that remain after the mechanism layer above:
    
    * `phi` — the equivariant quadratic refinement of the squaring transgression
      (manuscript l.3730–3770, the self-dual-head polarization);
    * `kill` — invariant characters kill the `Φ(K) ∩ S` layer (`lem:simplehead`);
    * `radical` — the polar radical lies in `T` (head-nondegeneracy, `lem:simplehead`).
     chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockPreheadActualCentralExtensionPushoutDataQ2Presentation.Induction.MinimalBlockPreheadActualCentralExtensionPushoutData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeActual scalar central-extension pushout data over a pre-head Section 7 tower.
    
    For every invariant nonzero `lambda : R -> F_2`, the manuscript forms the
    central pushout `K_lambda = K / ker lambda`.  The current Lean tower does not
    carry `K_lambda` as a quotient group object, so this packet records the exact
    semantic data used downstream:
    
    * `phi` is the self-duality/polar pairing induced by the commutator pairing;
    * `square` is the square map `q_lambda`;
    * `square_diagonal` and `polar_symm` identify that square and polar with the
      same `phi_lambda`;
    * `phi_natural`, `square_annihilates_on_T`, and `square_radical_subset_T` are
      the same-family `prop:simpleheaddet` conclusions.
    
    This is not a zero-map shortcut: the square map is an explicit field tied to
    `phi` by diagonal and polar identities, and the extraspecial comparison below is
    proved by quadratic-form extensionality from those identities.
    
          (Q2Presentation.Induction.sec7ConcretePreheadTowerDataQ2Presentation.Induction.sec7ConcretePreheadTowerData {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief.toNonScalarChiefFactorThe concrete prehead tower data of the literal §7 objects.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
    theorem Q2Presentation.Induction.sec7_pushoutPacket_ofCrux
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (cruxQ2Presentation.Induction.Sec7PushoutCruxData chief K :
        Q2Presentation.Induction.Sec7PushoutCruxDataQ2Presentation.Induction.Sec7PushoutCruxData {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : Type**The F9 crux bundle** — exactly the three genuinely-§7 facts of
    `prop:simpleheaddet` that remain after the mechanism layer above:
    
    * `phi` — the equivariant quadratic refinement of the squaring transgression
      (manuscript l.3730–3770, the self-dual-head polarization);
    * `kill` — invariant characters kill the `Φ(K) ∩ S` layer (`lem:simplehead`);
    * `radical` — the polar radical lies in `T` (head-nondegeneracy, `lem:simplehead`).
    
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
        (Q2Presentation.Induction.MinimalBlockPreheadActualCentralExtensionPushoutDataQ2Presentation.Induction.MinimalBlockPreheadActualCentralExtensionPushoutData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      (D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief) : TypeActual scalar central-extension pushout data over a pre-head Section 7 tower.
    
    For every invariant nonzero `lambda : R -> F_2`, the manuscript forms the
    central pushout `K_lambda = K / ker lambda`.  The current Lean tower does not
    carry `K_lambda` as a quotient group object, so this packet records the exact
    semantic data used downstream:
    
    * `phi` is the self-duality/polar pairing induced by the commutator pairing;
    * `square` is the square map `q_lambda`;
    * `square_diagonal` and `polar_symm` identify that square and polar with the
      same `phi_lambda`;
    * `phi_natural`, `square_annihilates_on_T`, and `square_radical_subset_T` are
      the same-family `prop:simpleheaddet` conclusions.
    
    This is not a zero-map shortcut: the square map is an explicit field tied to
    `phi` by diagonal and polar identities, and the extraspecial comparison below is
    proved by quadratic-form extensionality from those identities.
    
          (Q2Presentation.Induction.sec7ConcretePreheadTowerDataQ2Presentation.Induction.sec7ConcretePreheadTowerData {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief.toNonScalarChiefFactorThe concrete prehead tower data of the literal §7 objects. 
            chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
    **Packet assembly**: the full `prop:simpleheaddet` pushout packet over the
    concrete prehead tower, from the crux bundle plus the compiled mechanism layer. 
  • structure(3 fields)defined in Q2Presentation/Induction/Section7PushoutConstruction.lean
    complete
    structure Q2Presentation.Induction.Sec7SimpleHeadCruxData
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      PropThe universe of propositions. `Prop ≡ Sort 0`.
    
    Every proposition is propositionally equal to either `True` or `False`. 
    structure Q2Presentation.Induction.Sec7SimpleHeadCruxData
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      PropThe universe of propositions. `Prop ≡ Sort 0`.
    
    Every proposition is propositionally equal to either `True` or `False`. 
    **The manuscript-exact simple-head crux** (`prop:simpleheaddet`, l.3745–3768):
    (i) the socle argument `b_λ(T,M) = 0`; (ii) the shear/H¹-vanishing argument
    `q_λ|_T = 0`; (iii) head-nondegeneracy (polar radical ⊆ `T`).  Everything else in
    the extraspecial determinant interface is THEOREM-level via the polarization
    construction (`Quadratic.polarization`) and the compiled transgression layer. 

    Fields

    polar_zero_on_T∀ (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)),
      lam ≠ 0 →
        (∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) →
          ∀ t ∈ Q2Presentation.Induction.towerT K,
            ∀ (m : Q2Presentation.Induction.towerM K),
              ((Q2Presentation.Induction.sec7SquareFamily chief K lam).polar t) m = 0 :  (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)),
      lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0 
        (∀ (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor), lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) 
           tQ2Presentation.Induction.towerM K  Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor,
             (mQ2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
              ((Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).polarQ2Presentation.Quadratic.QuadF2.polar.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V →ₗ[ZMod 2] V →ₗ[ZMod 2] ZMod 2the bilinear polar form `b_q`, i.e. the commutator pairing  tQ2Presentation.Induction.towerM K) mQ2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0
    form_zero_on_T∀ (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)),
      lam ≠ 0 →
        (∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) →
          ∀ t ∈ Q2Presentation.Induction.towerT K, (Q2Presentation.Induction.sec7SquareFamily chief K lam).form t = 0 :  (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)),
      lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0 
        (∀ (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor), lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) 
           tQ2Presentation.Induction.towerM K  Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor, (Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  tQ2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0
    radical_subset_T∀ (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)),
      lam ≠ 0 →
        (∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) →
          ∀ (m : Q2Presentation.Induction.towerM K),
            (∀ (m' : Q2Presentation.Induction.towerM K),
                ((Q2Presentation.Induction.sec7SquareFamily chief K lam).polar m) m' = 0) →
              m ∈ Q2Presentation.Induction.towerT K :  (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)),
      lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0 
        (∀ (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor), lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) 
           (mQ2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
            (∀ (m'Q2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
                ((Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).polarQ2Presentation.Quadratic.QuadF2.polar.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V →ₗ[ZMod 2] V →ₗ[ZMod 2] ZMod 2the bilinear polar form `b_q`, i.e. the commutator pairing  mQ2Presentation.Induction.towerM K) m'Q2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0) 
              mQ2Presentation.Induction.towerM K Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor
  • theoremdefined in Q2Presentation/Induction/Section7PushoutConstruction.lean
    complete
    theorem Q2Presentation.Induction.sec7_radical_subset_T_of_polarT
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
      (hlamlam ≠ 0 : lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0)
      (hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam :
         (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
          lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hTpolar∀ t ∈ Q2Presentation.Induction.towerT K,
      ∀ (m : Q2Presentation.Induction.towerM K), ((Q2Presentation.Induction.sec7SquareFamily chief K lam).polar t) m = 0 :
         tQ2Presentation.Induction.towerM K  Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor,
           (mQ2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
            ((Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).polarQ2Presentation.Quadratic.QuadF2.polar.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V →ₗ[ZMod 2] V →ₗ[ZMod 2] ZMod 2the bilinear polar form `b_q`, i.e. the commutator pairing 
                  tQ2Presentation.Induction.towerM K)
                mQ2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
              0)
      (mQ2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hm∀ (m' : Q2Presentation.Induction.towerM K), ((Q2Presentation.Induction.sec7SquareFamily chief K lam).polar m) m' = 0 :
         (m'Q2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
          ((Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).polarQ2Presentation.Quadratic.QuadF2.polar.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V →ₗ[ZMod 2] V →ₗ[ZMod 2] ZMod 2the bilinear polar form `b_q`, i.e. the commutator pairing  mQ2Presentation.Induction.towerM K)
              m'Q2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            0) :
      mQ2Presentation.Induction.towerM K Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor
    theorem Q2Presentation.Induction.sec7_radical_subset_T_of_polarT
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer. 
            chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
      (hlamlam ≠ 0 : lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0)
      (hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam :
        
          (cQ2Presentation.Induction.towerC K :
            Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`). 
              KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
          lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map 
              ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`. 
                    chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
                  cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hTpolar∀ t ∈ Q2Presentation.Induction.towerT K,
      ∀ (m : Q2Presentation.Induction.towerM K), ((Q2Presentation.Induction.sec7SquareFamily chief K lam).polar t) m = 0 :
        
          tQ2Presentation.Induction.towerM K 
            Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor,
          
            (mQ2Presentation.Induction.towerM K :
              Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`). 
                KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
            ((Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing. 
                      chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).polarQ2Presentation.Quadratic.QuadF2.polar.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V →ₗ[ZMod 2] V →ₗ[ZMod 2] ZMod 2the bilinear polar form `b_q`, i.e. the commutator pairing 
                  tQ2Presentation.Induction.towerM K)
                mQ2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
              0)
      (mQ2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (hm∀ (m' : Q2Presentation.Induction.towerM K), ((Q2Presentation.Induction.sec7SquareFamily chief K lam).polar m) m' = 0 :
        
          (m'Q2Presentation.Induction.towerM K :
            Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`). 
              KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
          ((Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing. 
                    chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).polarQ2Presentation.Quadratic.QuadF2.polar.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V →ₗ[ZMod 2] V →ₗ[ZMod 2] ZMod 2the bilinear polar form `b_q`, i.e. the commutator pairing 
                mQ2Presentation.Induction.towerM K)
              m'Q2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            0) :
      mQ2Presentation.Induction.towerM K Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor
    **The radical clause of `prop:simpleheaddet`, PROVEN from clause (i)**: if the
    polar form kills `T × M`, the polar radical lies in `T`.  Head simplicity forces
    `radical ⊔ T ∈ {T, ⊤}`; in the `⊤` case the polar form vanishes identically, so
    `q_λ` is a `C`-invariant linear functional, hence `0` (`towerDualInv_zero`), and
    the Burnside kill forces `λ = 0` — contradiction. 
  • structure(2 fields)defined in Q2Presentation/Induction/Section7PushoutConstruction.lean
    complete
    structure Q2Presentation.Induction.Sec7SimpleHeadCruxData2
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      PropThe universe of propositions. `Prop ≡ Sort 0`.
    
    Every proposition is propositionally equal to either `True` or `False`. 
    structure Q2Presentation.Induction.Sec7SimpleHeadCruxData2
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
      PropThe universe of propositions. `Prop ≡ Sort 0`.
    
    Every proposition is propositionally equal to either `True` or `False`. 
    **The two-fact simple-head crux** (`prop:simpleheaddet` clauses (i)+(ii) only;
    the radical clause is now THEOREM-level via `sec7_radical_subset_T_of_polarT`):
    (i) the socle argument `b_λ(T,M) = 0`; (ii) the shear/H¹-vanishing `q_λ|_T = 0`. 

    Fields

    polar_zero_on_T∀ (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)),
      lam ≠ 0 →
        (∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) →
          ∀ t ∈ Q2Presentation.Induction.towerT K,
            ∀ (m : Q2Presentation.Induction.towerM K),
              ((Q2Presentation.Induction.sec7SquareFamily chief K lam).polar t) m = 0 :  (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)),
      lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0 
        (∀ (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor), lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) 
           tQ2Presentation.Induction.towerM K  Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor,
             (mQ2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
              ((Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).polarQ2Presentation.Quadratic.QuadF2.polar.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V →ₗ[ZMod 2] V →ₗ[ZMod 2] ZMod 2the bilinear polar form `b_q`, i.e. the commutator pairing  tQ2Presentation.Induction.towerM K) mQ2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0
    form_zero_on_T∀ (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)),
      lam ≠ 0 →
        (∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) →
          ∀ t ∈ Q2Presentation.Induction.towerT K, (Q2Presentation.Induction.sec7SquareFamily chief K lam).form t = 0 :  (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)),
      lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0 
        (∀ (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor), lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) 
           tQ2Presentation.Induction.towerM K  Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor, (Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  tQ2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0
  • theoremdefined in Q2Presentation/Induction/Section7PushoutRoute135Closers.lean
    complete
    theorem Q2Presentation.Induction.Section7PushoutRoute135Closers.minimalBlock_preheadDeterminantPackets_from_section7PushoutRoute135Closers
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief : Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual.  pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
       FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D,
        NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe two annihilation conclusions of `prop:simpleheaddet`, stated over the
    pre-head equivariant determinant family. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe polar-radical containment conclusion of `prop:simpleheaddet`, stated before
    the head-nontrivial field is installed. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D)
    theorem Q2Presentation.Induction.Section7PushoutRoute135Closers.minimalBlock_preheadDeterminantPackets_from_section7PushoutRoute135Closers
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief :
        Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual. 
          pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
       FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D,
        NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe two annihilation conclusions of `prop:simpleheaddet`, stated over the
    pre-head equivariant determinant family. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe polar-radical containment conclusion of `prop:simpleheaddet`, stated before
    the head-nontrivial field is installed. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D)
    Route135 pushout/determinant packets lowered to the Route82
    `prop:simpleheaddet` packetization.
    
    This is the route-level provider consumed below.  Its downstream shape matches
    the current Route135 determinant provider, but its axiom closure is the Route82
    four-packet frontier rather than the current square/diagonal/polar/actual
    determinant leaves.
    
  • theoremdefined in Q2Presentation/Induction/Section7PushoutRoute151Closers.lean
    complete
    theorem Q2Presentation.Induction.Section7PushoutRoute151Closers.minimalBlock_preheadCentralPushoutSimpleHeadDeterminantActualData_selected_from_section7PushoutRoute151Closers
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p : Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity.  pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief : Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual.  pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
       SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D,
        NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
          (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSimpleHeadDeterminantActualDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSimpleHeadDeterminantActualData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) : PropThe smallest remaining semantic determinant packet for the Section 7
    extraspecial residual.
    
    For the actual semantic central-pushout family `S`, this states exactly the
    `prop:simpleheaddet` conclusions needed by the existing lower route:
    
    * naturality of the determinant pairing;
    * annihilation of `T` by the scalar square map and its polar form;
    * containment of the polar radical in `T`.
    
    The square map is `S.toQuadraticFamily.square`, not a separately chosen
    extraspecial packet, so all downstream projections use one actual pushout family.
    
            SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D)
    theorem Q2Presentation.Induction.Section7PushoutRoute151Closers.minimalBlock_preheadCentralPushoutSimpleHeadDeterminantActualData_selected_from_section7PushoutRoute151Closers
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      {chiefQ2Presentation.Induction.NonScalarChiefFactor p :
        Q2Presentation.Induction.NonScalarChiefFactorQ2Presentation.Induction.NonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA concrete non-scalar chief factor in the marked wild kernel `L_Y`.
    
    This is the Lean form of the Section 7 entry point: choose `S triangleleft P <= L_Y`
    with `P/S` the first non-scalar simple factor.  Here the existing project predicate
    `ChiefFactorInLY` supplies the chief-factor condition, and `not ChiefFactorTrivial`
    records non-scalarity. 
          pQ2Presentation.Induction.FramedPair}
      (DQ2Presentation.Induction.MinimalBlockPreheadTowerData p chief :
        Q2Presentation.Induction.MinimalBlockPreheadTowerDataQ2Presentation.Induction.MinimalBlockPreheadTowerData (p : Q2Presentation.Induction.FramedPair)
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : Type 1The Section 7 tower before the nonzero simple-head field is installed.
    
    This is useful because `M/T` being nonzero can also be recovered from a nonzero
    determinant square map that annihilates `T`: a vector with nonzero square cannot
    lie in `T`.  The resulting final assembly therefore does not need a separate
    head-nontrivial residual. 
          pQ2Presentation.Induction.FramedPair chiefQ2Presentation.Induction.NonScalarChiefFactor p) :
       SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D,
        NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
          (Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSimpleHeadDeterminantActualDataQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSimpleHeadDeterminantActualData
      {p : Q2Presentation.Induction.FramedPair} {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (S : Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D) : PropThe smallest remaining semantic determinant packet for the Section 7
    extraspecial residual.
    
    For the actual semantic central-pushout family `S`, this states exactly the
    `prop:simpleheaddet` conclusions needed by the existing lower route:
    
    * naturality of the determinant pairing;
    * annihilation of `T` by the scalar square map and its polar form;
    * containment of the polar radical in `T`.
    
    The square map is `S.toQuadraticFamily.square`, not a separately chosen
    extraspecial packet, so all downstream projections use one actual pushout family.
    
            SQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSemanticData D)
    Route151 selected actual simple-head determinant packet.
    
    This lowers the compact Route150 actual determinant leaf to the three remaining
    Route82 `prop:simpleheaddet` residuals over the selected pairing: naturality,
    annihilation on `T`, and descended nonsingularity. 
  • theoremdefined in Q2Presentation/Induction/Section7ShearSplitting.lean
    complete
    theorem Induction3EShearBuild.shearEquivariantSection_exists
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
      (hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam :
         (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
          lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (t₀Q2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (ht₀Tt₀ ∈ Q2Presentation.Induction.towerT K : t₀Q2Presentation.Induction.towerM K Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (ht₀(Q2Presentation.Induction.sec7SquareFamily chief K lam).form t₀ = 1 :
        (Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  t₀Q2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
          1) :
       σAInduction3BShear.Vq chief K lam hinv →ₗ[ZMod 2] Induction2Shear.Mbar chief K lam hinv,
        (∀ (vInduction3BShear.Vq chief K lam hinv : Induction3BShear.VqInduction3BShear.Vq {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hinv : ∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) :
      TypeThe head `V̄ = M̄/T̄`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam),
            (Induction2Shear.TbarInduction2Shear.Tbar {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hinv : ∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) :
      Submodule (ZMod 2) (Induction2Shear.Mbar chief K lam hinv)The image of `T` in `M̄`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam).mkQSubmodule.mkQ.{u_1, u_2} {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) :
      M →ₗ[R] M ⧸ pThe map from a module `M` to the quotient of `M` by a submodule `p` as a linear map.  (σAInduction3BShear.Vq chief K lam hinv →ₗ[ZMod 2] Induction2Shear.Mbar chief K lam hinv vInduction3BShear.Vq chief K lam hinv) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. vInduction3BShear.Vq chief K lam hinv) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
           (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
            (vInduction3BShear.Vq chief K lam hinv : Induction3BShear.VqInduction3BShear.Vq {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hinv : ∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) :
      TypeThe head `V̄ = M̄/T̄`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam),
            (Induction3Shear.actMbarInduction3Shear.actMbar {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hinv : ∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam)
      (c : Q2Presentation.Induction.towerC K) :
      Induction2Shear.Mbar chief K lam hinv ≃ₗ[ZMod 2] Induction2Shear.Mbar chief K lam hinvThe descended action on `M̄`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam cQ2Presentation.Induction.towerC K) (σAInduction3BShear.Vq chief K lam hinv →ₗ[ZMod 2] Induction2Shear.Mbar chief K lam hinv vInduction3BShear.Vq chief K lam hinv) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
              σAInduction3BShear.Vq chief K lam hinv →ₗ[ZMod 2] Induction2Shear.Mbar chief K lam hinv ((Induction3BShear.actVqInduction3BShear.actVq {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hinv : ∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam)
      (c : Q2Presentation.Induction.towerC K) :
      Induction3BShear.Vq chief K lam hinv ≃ₗ[ZMod 2] Induction3BShear.Vq chief K lam hinvThe head action.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam cQ2Presentation.Induction.towerC K) vInduction3BShear.Vq chief K lam hinv)
    theorem Induction3EShearBuild.shearEquivariantSection_exists
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer. 
            chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
      (hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam :
        
          (cQ2Presentation.Induction.towerC K :
            Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`). 
              KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
          lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map 
              ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`. 
                    chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
                  cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (t₀Q2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (ht₀Tt₀ ∈ Q2Presentation.Induction.towerT K :
        t₀Q2Presentation.Induction.towerM K Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`.
          Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (ht₀(Q2Presentation.Induction.sec7SquareFamily chief K lam).form t₀ = 1 :
        (Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing. 
                chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂` 
            t₀Q2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
          1) :
       σAInduction3BShear.Vq chief K lam hinv →ₗ[ZMod 2] Induction2Shear.Mbar chief K lam hinv,
        (∀
            (vInduction3BShear.Vq chief K lam hinv :
              Induction3BShear.VqInduction3BShear.Vq {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hinv : ∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) :
      TypeThe head `V̄ = M̄/T̄`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)
                hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam),
            (Induction2Shear.TbarInduction2Shear.Tbar {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hinv : ∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) :
      Submodule (ZMod 2) (Induction2Shear.Mbar chief K lam hinv)The image of `T` in `M̄`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)
                    hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam).mkQSubmodule.mkQ.{u_1, u_2} {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (p : Submodule R M) :
      M →ₗ[R] M ⧸ pThe map from a module `M` to the quotient of `M` by a submodule `p` as a linear map. 
                (σAInduction3BShear.Vq chief K lam hinv →ₗ[ZMod 2] Induction2Shear.Mbar chief K lam hinv vInduction3BShear.Vq chief K lam hinv) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
              vInduction3BShear.Vq chief K lam hinv) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          
            (cQ2Presentation.Induction.towerC K :
              Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`). 
                KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
            (vInduction3BShear.Vq chief K lam hinv :
              Induction3BShear.VqInduction3BShear.Vq {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hinv : ∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam) :
      TypeThe head `V̄ = M̄/T̄`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)
                hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam),
            (Induction3Shear.actMbarInduction3Shear.actMbar {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hinv : ∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam)
      (c : Q2Presentation.Induction.towerC K) :
      Induction2Shear.Mbar chief K lam hinv ≃ₗ[ZMod 2] Induction2Shear.Mbar chief K lam hinvThe descended action on `M̄`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor
                  lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam cQ2Presentation.Induction.towerC K)
                (σAInduction3BShear.Vq chief K lam hinv →ₗ[ZMod 2] Induction2Shear.Mbar chief K lam hinv vInduction3BShear.Vq chief K lam hinv) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
              σAInduction3BShear.Vq chief K lam hinv →ₗ[ZMod 2] Induction2Shear.Mbar chief K lam hinv
                ((Induction3BShear.actVqInduction3BShear.actVq {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (hinv : ∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam)
      (c : Q2Presentation.Induction.towerC K) :
      Induction3BShear.Vq chief K lam hinv ≃ₗ[ZMod 2] Induction3BShear.Vq chief K lam hinvThe head action.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p
                    KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam cQ2Presentation.Induction.towerC K)
                  vInduction3BShear.Vq chief K lam hinv)
    **Existence of the `C`-equivariant section** (`prop:simpleheaddet`
    clause (ii) core, manuscript l.3749–3760), fully proven: shear rigidity
    factors the action through the faithful tame quotient `H_V`; the ramified
    case averages over the odd normal `⟨τ̂⟩` (no nonzero fixed vectors on the
    simple head) and the unramified case over the odd cyclic `H_V` itself. 
  • declaration not found (name was not present during directive/code-block registration)
  • theoremdefined in Q2Presentation/Induction/Section7ShearSplitting.lean
    complete
    theorem Induction3EShear.sec7_form_zero_on_T_final
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) : Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2) (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
      (hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam :
         (cQ2Presentation.Induction.towerC K : Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
          lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map  ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (tQ2Presentation.Induction.towerM K : Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      tQ2Presentation.Induction.towerM K Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor 
        (Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂`  tQ2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`. 0
    theorem Induction3EShear.sec7_form_zero_on_T_final
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Induction.towerRQ2Presentation.Induction.towerR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) : TypeThe additive `R = Phi(K)` layer. 
            chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
      (hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lam :
        
          (cQ2Presentation.Induction.towerC K :
            Q2Presentation.Induction.towerCQ2Presentation.Induction.towerC {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe lower target `C = Y/K` (`eq:targettower`). 
              KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor),
          lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K) ∘ₗLinearMap.comp.{u_2, u_3, u_4, u_9, u_10, u_11} {R₁ : Type u_2} {R₂ : Type u_3} {R₃ : Type u_4} {M₁ : Type u_9}
      {M₂ : Type u_10} {M₃ : Type u_11} [Semiring R₁] [Semiring R₂] [Semiring R₃] [AddCommMonoid M₁] [AddCommMonoid M₂]
      [AddCommMonoid M₃] {module_M₁ : Module R₁ M₁} {module_M₂ : Module R₂ M₂} {module_M₃ : Module R₃ M₃} {σ₁₂ : R₁ →+* R₂}
      {σ₂₃ : R₂ →+* R₃} {σ₁₃ : R₁ →+* R₃} [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂) :
      M₁ →ₛₗ[σ₁₃] M₃Composition of two linear maps is a linear map 
              ((Q2Presentation.Induction.towerActRQ2Presentation.Induction.towerActR {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Induction.towerC K →*
        Q2Presentation.Induction.towerR chief K ≃ₗ[ZMod 2] Q2Presentation.Induction.towerR chief KThe conjugation action of `C = Y/K` on `R = Phi(K)`. 
                    chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
                  cQ2Presentation.Induction.towerC K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K))
      (tQ2Presentation.Induction.towerM K :
        Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      tQ2Presentation.Induction.towerM K Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`. Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor 
        (Q2Presentation.Induction.sec7SquareFamilyQ2Presentation.Induction.sec7SquareFamily {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)
      (lam : Module.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)) :
      Q2Presentation.Quadratic.QuadF2 (Q2Presentation.Induction.towerM K)**The λ-composed quadratic form** `square λ` on `M` (`prop:simpleheaddet`):
    form `m ↦ λ(Sq m)`, polar the λ-composed commutator pairing. 
                chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor lamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)).formQ2Presentation.Quadratic.QuadF2.form.{u_2} {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V]
      (self : Q2Presentation.Quadratic.QuadF2 V) : V → ZMod 2the quadratic map `q : V → F₂` 
            tQ2Presentation.Induction.towerM K =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
          0
    **Clause (ii)** (`prop:simpleheaddet`): the invariant square family vanishes
    on `T` — the shear/odd-averaging contradiction against `(M^∨)^C = 0`. 
  • theoremdefined in Q2Presentation/Induction/Section7TowerPacketCorrected.lean
    complete
    theorem Q2Presentation.Induction.minimalBlock_preheadDeterminantPackets_ofCruxCanonical
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
       FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData
      (Q2Presentation.Induction.sec7RawTowerPacketCanonical chief K).preheadTowerData,
        NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe two annihilation conclusions of `prop:simpleheaddet`, stated over the
    pre-head equivariant determinant family. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData
      (Q2Presentation.Induction.sec7RawTowerPacketCanonical chief K).preheadTowerData) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe polar-radical containment conclusion of `prop:simpleheaddet`, stated before
    the head-nontrivial field is installed. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData
      (Q2Presentation.Induction.sec7RawTowerPacketCanonical chief K).preheadTowerData)
    theorem Q2Presentation.Induction.minimalBlock_preheadDeterminantPackets_ofCruxCanonical
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p) :
       FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData
      (Q2Presentation.Induction.sec7RawTowerPacketCanonical chief K).preheadTowerData,
        NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialAnnihilationData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe two annihilation conclusions of `prop:simpleheaddet`, stated over the
    pre-head equivariant determinant family. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData
      (Q2Presentation.Induction.sec7RawTowerPacketCanonical chief K).preheadTowerData) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          NonemptyNonempty.{u} (α : Sort u) : Prop`Nonempty α` is a typeclass that says that `α` is not an empty type,
    that is, there exists an element in the type. It differs from `Inhabited α`
    in that `Nonempty α` is a `Prop`, which means that it does not actually carry
    an element of `α`, only a proof that *there exists* such an element.
    Given `Nonempty α`, you can construct an element of `α` *nonconstructively*
    using `Classical.choice`.
    
            (Q2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalDataQ2Presentation.Induction.MinimalBlockPreheadExtraspecialRadicalData {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p}
      {D : Q2Presentation.Induction.MinimalBlockPreheadTowerData p chief}
      (F : Q2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData D) : PropThe polar-radical containment conclusion of `prop:simpleheaddet`, stated before
    the head-nontrivial field is installed. 
              FQ2Presentation.Induction.MinimalBlockPreheadExtraspecialEquivariantFamilyData
      (Q2Presentation.Induction.sec7RawTowerPacketCanonical chief K).preheadTowerData)
    checkpoint-F9: determinant packets over the CANONICAL raw tower, from the
    crux-lowered pushout packet (`sec7_pushoutPacket`) — the mechanism layer of
    `prop:simpleheaddet` is theorem-level in `Section7PushoutConstruction`; only the
    crux bundle (`sec7_pushoutCruxData`) remains residual. 
  • defdefined in Q2Presentation/Induction/ZeroEdgeDescent.lean
    complete
    def Q2Presentation.Induction.edgeHeadForm
      {pQ2Presentation.Induction.FramedPair : Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p : Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`.  pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.)  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.xrKernel chief K)) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Lifting.NAddQ2Presentation.Lifting.NAdd {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) : TypeThe additive `F₂`-carrier of an elementary kernel. 
            (Q2Presentation.Induction.xrKernelQ2Presentation.Induction.xrKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Lifting.ElementaryKernel p.fst**The Frattini layer `R = Φ(K)` as an elementary kernel**
    (`lem:collapse`): normal, inside `L_Y`, `θ`-dead, elementary abelian.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)))
      (hinvlam ∈ Q2Presentation.Lifting.conjInvDuals (Q2Presentation.Induction.xrKernel chief K) :
        lamModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.xrKernel chief K)) Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`.
          Q2Presentation.Lifting.conjInvDualsQ2Presentation.Lifting.conjInvDuals {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) :
      Submodule (ZMod 2) (Module.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd E))The conjugation-invariant duals `X = (R^∨)^Y = (R^∨)^C` of an
    elementary kernel (consumer spelling of the manuscript's `𝒳_R`,
    §7 l.3720–3723). 
            (Q2Presentation.Induction.xrKernelQ2Presentation.Induction.xrKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Lifting.ElementaryKernel p.fst**The Frattini layer `R = Φ(K)` as an elementary kernel**
    (`lem:collapse`): normal, inside `L_Y`, `θ`-dead, elementary abelian.  chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
      (hnelam ≠ 0 : lamModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.xrKernel chief K)) Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) :
      Q2Presentation.Quadratic.QuadF2Q2Presentation.Quadratic.QuadF2.{u_2} (V : Type u_2) [AddCommGroup V] [Module (ZMod 2) V] : Type u_2A **quadratic form over `F₂`** with its bilinear polar (commutator) form. 
        (HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
          Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
    def Q2Presentation.Induction.edgeHeadForm
      {pQ2Presentation.Induction.FramedPair :
        Q2Presentation.Induction.FramedPairQ2Presentation.Induction.FramedPair : Type 1A **framed pair** `(𝒴, F)`: a boundary-framed marked target together with a
    boundary frame for it (manuscript Definition 4.1 + `eq:beta`).  This is the index of
    Theorem 4.2: the boundary-framed surjection count `e_Γ^β` is a function of the pair.
    The induction of `sec:induction` ranges over *all* such pairs simultaneously
    ("the induction is stated globally", l.1213), ordered by `|L_Y|`. }
      (chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p :
        Q2Presentation.Induction.FirstNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor (p : Q2Presentation.Induction.FramedPair) : TypeA non-scalar chief factor of `L_Y` that is **first**: every chief factor strictly
    below it (i.e. with upper term contained in `lower`) is scalar.  This is the manuscript's
    choice `S ◁ P` at l.3616–3623 ("all chief factors below `S` are scalar and `V` is the
    first non-scalar simple factor"), which `lem:collapse` requires for the coprime step
    `[S, Ñ] = 1`. 
          pQ2Presentation.Induction.FramedPair)
      (KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor :
        Q2Presentation.Induction.KernelMinimalQ2Presentation.Induction.KernelMinimal {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.NonScalarChiefFactor p) : TypeThe manuscript's kernel choice (l.3623): `K ◁ Y`, `K ≤ P`, `KS = P`, and `K` is
    **⊆-minimal** with these properties — stated as: any `Y`-normal `K' ≤ K` still joining
    with `S` to `P` equals `K`.  (This, not leastness among all candidates, is what
    `lem:simplehead` and `lem:collapse` use: both apply it to subgroups of `K`.) 
          chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p.toNonScalarChiefFactorQ2Presentation.Induction.FirstNonScalarChiefFactor.toNonScalarChiefFactor {p : Q2Presentation.Induction.FramedPair}
      (self : Q2Presentation.Induction.FirstNonScalarChiefFactor p) : Q2Presentation.Induction.NonScalarChiefFactor p)
      (lamModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.xrKernel chief K)) :
        Module.DualModule.Dual.{u_4, u_5} (R : Type u_4) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] : Type (max u_5 u_4)The left dual space of an R-module M is the R-module of linear maps `M → R`.  (ZModZMod : ℕ → TypeThe integers modulo `n : ℕ`.  2)
          (Q2Presentation.Lifting.NAddQ2Presentation.Lifting.NAdd {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) : TypeThe additive `F₂`-carrier of an elementary kernel. 
            (Q2Presentation.Induction.xrKernelQ2Presentation.Induction.xrKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Lifting.ElementaryKernel p.fst**The Frattini layer `R = Φ(K)` as an elementary kernel**
    (`lem:collapse`): normal, inside `L_Y`, `θ`-dead, elementary abelian. 
              chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)))
      (hinvlam ∈ Q2Presentation.Lifting.conjInvDuals (Q2Presentation.Induction.xrKernel chief K) :
        lamModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.xrKernel chief K)) Membership.mem.{u, v} {α : outParam (Type u)} {γ : Type v} [self : Membership α γ] : γ → α → PropThe membership relation `a ∈ s : Prop` where `a : α`, `s : γ`. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∈` in identifiers is `mem`.
          Q2Presentation.Lifting.conjInvDualsQ2Presentation.Lifting.conjInvDuals {Yt : Q2Presentation.BoundaryFramedTarget}
      (E : Q2Presentation.Lifting.ElementaryKernel Yt) :
      Submodule (ZMod 2) (Module.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd E))The conjugation-invariant duals `X = (R^∨)^Y = (R^∨)^C` of an
    elementary kernel (consumer spelling of the manuscript's `𝒳_R`,
    §7 l.3720–3723). 
            (Q2Presentation.Induction.xrKernelQ2Presentation.Induction.xrKernel {p : Q2Presentation.Induction.FramedPair}
      (chief : Q2Presentation.Induction.FirstNonScalarChiefFactor p)
      (K : Q2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor) :
      Q2Presentation.Lifting.ElementaryKernel p.fst**The Frattini layer `R = Φ(K)` as an elementary kernel**
    (`lem:collapse`): normal, inside `L_Y`, `θ`-dead, elementary abelian. 
              chiefQ2Presentation.Induction.FirstNonScalarChiefFactor p KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))
      (hnelam ≠ 0 : lamModule.Dual (ZMod 2) (Q2Presentation.Lifting.NAdd (Q2Presentation.Induction.xrKernel chief K)) Ne.{u} {α : Sort u} (a b : α) : Prop`a ≠ b`, or `Ne a b` is defined as `¬ (a = b)` or `a = b → False`,
    and asserts that `a` and `b` are not equal.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `≠` in identifiers is `ne`. 0) :
      Q2Presentation.Quadratic.QuadF2Q2Presentation.Quadratic.QuadF2.{u_2} (V : Type u_2) [AddCommGroup V] [Module (ZMod 2) V] : Type u_2A **quadratic form over `F₂`** with its bilinear polar (commutator) form. 
        (HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    Q2Presentation.Induction.towerMQ2Presentation.Induction.towerM {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) : TypeThe additive elementary module layer `M = K/Φ(K)` (`lem:simplehead`).  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
          Q2Presentation.Induction.towerTQ2Presentation.Induction.towerT {p : Q2Presentation.Induction.FramedPair}
      {chief : Q2Presentation.Induction.NonScalarChiefFactor p} (K : Q2Presentation.Induction.KernelMinimal chief) :
      Submodule (ZMod 2) (Q2Presentation.Induction.towerM K)The manuscript's radical layer `T = (K ∩ S)/R ◁ M` (l.3628), as a
    `ZMod 2`-submodule of the additive module `M`.  KQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
    **The descended head form `q̄_λ : QuadF2 (M/T)`** (`prop:simpleheaddet`
    at the tower, the U1-aligned carrier of the R4b Gauss data).