7. A minimal non-scalar module layer in the wild kernel
-
Q2Presentation.Induction.towerHead_submodule_dichotomy[complete] -
Q2Presentation.Induction.mChildKernel[complete] -
Q2Presentation.Induction.mChildEquiv[complete] -
Q2Presentation.Induction.mChild_hinv[complete] -
Q2Presentation.Induction.mstage_hinv[complete] -
Q2Presentation.Induction.mChild_conjInvDuals_eq_bot[complete] -
Q2Presentation.Induction.sec7_radical_bockstein_witness[complete] -
Q2Presentation.Induction.towerDualInv_zero[complete] -
Q2Presentation.Induction.Section7KernelRoute180Closers.rawSimpleHeadActualData_from_route180Pieces[complete] -
Q2Presentation.Induction.KillsFrattiniInterS[complete] -
Q2Presentation.Induction.sec7_stable_submodule_dichotomy[complete] -
Induction3EShearBuild.Vq_stable_bot_or_top[complete] -
Q2Presentation.Induction.head_nontrivial[complete] -
Q2Presentation.Induction.headInv_eq_zero[complete]
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.1●14 declarations
Associated Lean declarations
-
Q2Presentation.Induction.towerHead_submodule_dichotomy[complete]
-
Q2Presentation.Induction.mChildKernel[complete]
-
Q2Presentation.Induction.mChildEquiv[complete]
-
Q2Presentation.Induction.mChild_hinv[complete]
-
Q2Presentation.Induction.mstage_hinv[complete]
-
Q2Presentation.Induction.mChild_conjInvDuals_eq_bot[complete]
-
Q2Presentation.Induction.sec7_radical_bockstein_witness[complete]
-
Q2Presentation.Induction.towerDualInv_zero[complete]
-
Q2Presentation.Induction.Section7KernelRoute180Closers.rawSimpleHeadActualData_from_route180Pieces[complete]
-
Q2Presentation.Induction.KillsFrattiniInterS[complete]
-
Q2Presentation.Induction.sec7_stable_submodule_dichotomy[complete]
-
Induction3EShearBuild.Vq_stable_bot_or_top[complete]
-
Q2Presentation.Induction.head_nontrivial[complete]
-
Q2Presentation.Induction.headInv_eq_zero[complete]
-
Q2Presentation.Induction.towerHead_submodule_dichotomy[complete] -
Q2Presentation.Induction.mChildKernel[complete] -
Q2Presentation.Induction.mChildEquiv[complete] -
Q2Presentation.Induction.mChild_hinv[complete] -
Q2Presentation.Induction.mstage_hinv[complete] -
Q2Presentation.Induction.mChild_conjInvDuals_eq_bot[complete] -
Q2Presentation.Induction.sec7_radical_bockstein_witness[complete] -
Q2Presentation.Induction.towerDualInv_zero[complete] -
Q2Presentation.Induction.Section7KernelRoute180Closers.rawSimpleHeadActualData_from_route180Pieces[complete] -
Q2Presentation.Induction.KillsFrattiniInterS[complete] -
Q2Presentation.Induction.sec7_stable_submodule_dichotomy[complete] -
Induction3EShearBuild.Vq_stable_bot_or_top[complete] -
Q2Presentation.Induction.head_nontrivial[complete] -
Q2Presentation.Induction.headInv_eq_zero[complete]
-
theoremdefined in Q2Presentation/Induction/BaseModelHeadStructure.leancomplete
theorem Q2Presentation.Induction.towerHead_submodule_dichotomy {p
Q2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorcQ2Presentation.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 {p
Q2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorcQ2Presentation.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.leancomplete
def Q2Presentation.Induction.mChildKernel {p
Q2Presentation.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 pKQ2Presentation.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 {p
Q2Presentation.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 pKQ2Presentation.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.leancomplete
def Q2Presentation.Induction.mChildEquiv {p
Q2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)def Q2Presentation.Induction.mChildEquiv {p
Q2Presentation.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 pKQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.mChild_hinv {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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`.0theorem Q2Presentation.Induction.mChild_hinv {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.mstage_hinv {p
Q2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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`.0theorem Q2Presentation.Induction.mstage_hinv {p
Q2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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.leancomplete
theorem Q2Presentation.Induction.mChild_conjInvDuals_eq_bot {p
Q2Presentation.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 pKQ2Presentation.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 {p
Q2Presentation.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 pKQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.sec7_radical_bockstein_witness {p
Q2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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.YaQ2Presentation.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.YaQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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) Vyp.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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) Vyp.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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) VqQ2Presentation.Marking p.fst.YnQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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) VqQ2Presentation.Marking p.fst.YnQ2Presentation.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 {p
Q2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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.YaQ2Presentation.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.YaQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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) Vyp.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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) Vyp.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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) VqQ2Presentation.Marking p.fst.YnQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorhRNat.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) VqQ2Presentation.Marking p.fst.YnQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.towerDualInv_zero {p
Q2Presentation.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`.0theorem Q2Presentation.Induction.towerDualInv_zero {p
Q2Presentation.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.leancomplete
theorem Q2Presentation.Induction.Section7KernelRoute180Closers.rawSimpleHeadActualData_from_route180Pieces {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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.leancomplete
def Q2Presentation.Induction.KillsFrattiniInterS {p
Q2Presentation.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 pKQ2Presentation.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 {p
Q2Presentation.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 pKQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.sec7_stable_submodule_dichotomy {p
Q2Presentation.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 {p
Q2Presentation.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.leancomplete
theorem Induction3EShearBuild.Vq_stable_bot_or_top {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lamcQ2Presentation.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 {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lamcQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.head_nontrivial {p
Q2Presentation.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 {p
Q2Presentation.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.leancomplete
theorem Q2Presentation.Induction.headInv_eq_zero {p
Q2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorcQ2Presentation.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`.0theorem Q2Presentation.Induction.headInv_eq_zero {p
Q2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorcQ2Presentation.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`.
-
Q2Presentation.Induction.minimalBlock_kernelConcreteRoute24Data_from_finerPackets[complete] -
Q2Presentation.Induction.MinimalBlockKernelConcreteRoute44.frattiniData_from_route44Collapse[complete] -
Q2Presentation.Induction.MinimalBlockKernelConcreteRoute45.frattiniData_from_route45Split[complete] -
Q2Presentation.Induction.MinimalBlockKernelRoute106FrattiniClosers.frattiniData_from_route106Coherent[complete] -
Q2Presentation.Induction.MinimalBlockKernelRoute90Closers.frattiniCentralizerCollapseSectionData_from_route90[complete] -
Q2Presentation.Induction.kernelFrattini_le_lower[complete] -
Q2Presentation.Induction.kernel_commutator_frattini_eq_bot[complete] -
Q2Presentation.Induction.xrKernel[complete]
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.2●8 declarations
Associated Lean declarations
-
Q2Presentation.Induction.minimalBlock_kernelConcreteRoute24Data_from_finerPackets[complete]
-
Q2Presentation.Induction.MinimalBlockKernelConcreteRoute44.frattiniData_from_route44Collapse[complete]
-
Q2Presentation.Induction.MinimalBlockKernelConcreteRoute45.frattiniData_from_route45Split[complete]
-
Q2Presentation.Induction.MinimalBlockKernelRoute106FrattiniClosers.frattiniData_from_route106Coherent[complete]
-
Q2Presentation.Induction.MinimalBlockKernelRoute90Closers.frattiniCentralizerCollapseSectionData_from_route90[complete]
-
Q2Presentation.Induction.kernelFrattini_le_lower[complete]
-
Q2Presentation.Induction.kernel_commutator_frattini_eq_bot[complete]
-
Q2Presentation.Induction.xrKernel[complete]
-
Q2Presentation.Induction.minimalBlock_kernelConcreteRoute24Data_from_finerPackets[complete] -
Q2Presentation.Induction.MinimalBlockKernelConcreteRoute44.frattiniData_from_route44Collapse[complete] -
Q2Presentation.Induction.MinimalBlockKernelConcreteRoute45.frattiniData_from_route45Split[complete] -
Q2Presentation.Induction.MinimalBlockKernelRoute106FrattiniClosers.frattiniData_from_route106Coherent[complete] -
Q2Presentation.Induction.MinimalBlockKernelRoute90Closers.frattiniCentralizerCollapseSectionData_from_route90[complete] -
Q2Presentation.Induction.kernelFrattini_le_lower[complete] -
Q2Presentation.Induction.kernel_commutator_frattini_eq_bot[complete] -
Q2Presentation.Induction.xrKernel[complete]
-
theoremdefined in Q2Presentation/Induction/MinimalBlockKernelConcreteRoute24Proofs.leancomplete
theorem Q2Presentation.Induction.minimalBlock_kernelConcreteRoute24Data_from_finerPackets {p
Q2Presentation.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 {p
Q2Presentation.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.leancomplete
theorem Q2Presentation.Induction.MinimalBlockKernelConcreteRoute44.frattiniData_from_route44Collapse {p
Q2Presentation.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 {p
Q2Presentation.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.leancomplete
theorem Q2Presentation.Induction.MinimalBlockKernelConcreteRoute45.frattiniData_from_route45Split {p
Q2Presentation.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 {p
Q2Presentation.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.leancomplete
theorem Q2Presentation.Induction.MinimalBlockKernelRoute106FrattiniClosers.frattiniData_from_route106Coherent {p
Q2Presentation.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 {p
Q2Presentation.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.leancomplete
theorem Q2Presentation.Induction.MinimalBlockKernelRoute90Closers.frattiniCentralizerCollapseSectionData_from_route90 {p
Q2Presentation.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 {p
Q2Presentation.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.leancomplete
theorem Q2Presentation.Induction.kernelFrattini_le_lower {p
Q2Presentation.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.Ytheorem Q2Presentation.Induction.kernelFrattini_le_lower {p
Q2Presentation.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.leancomplete
theorem Q2Presentation.Induction.kernel_commutator_frattini_eq_bot {p
Q2Presentation.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.toNonScalarChiefFactor⁆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.=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 {p
Q2Presentation.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.toNonScalarChiefFactor⁆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.=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.leancomplete
def Q2Presentation.Induction.xrKernel {p
Q2Presentation.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 {p
Q2Presentation.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.
-
Q2Presentation.Induction.centralCover_realization_of_blockConcrete[complete] -
Q2Presentation.Induction.Ksub_theta[complete] -
Q2Presentation.Induction.Sec7FrattiniTrivialElementaryDecorationProofs.Ksub_le_thetaY_ker[complete] -
Q2Presentation.Induction.TargetDecorationKernelProofs.invariant_blockMap_eq_zero[complete]
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.3●4 theorems
Associated Lean declarations
-
Q2Presentation.Induction.centralCover_realization_of_blockConcrete[complete]
-
Q2Presentation.Induction.Ksub_theta[complete]
-
Q2Presentation.Induction.Sec7FrattiniTrivialElementaryDecorationProofs.Ksub_le_thetaY_ker[complete]
-
Q2Presentation.Induction.TargetDecorationKernelProofs.invariant_blockMap_eq_zero[complete]
-
Q2Presentation.Induction.centralCover_realization_of_blockConcrete[complete] -
Q2Presentation.Induction.Ksub_theta[complete] -
Q2Presentation.Induction.Sec7FrattiniTrivialElementaryDecorationProofs.Ksub_le_thetaY_ker[complete] -
Q2Presentation.Induction.TargetDecorationKernelProofs.invariant_blockMap_eq_zero[complete]
-
theoremdefined in Q2Presentation/Induction/CentralCoverRealizationBlockConcrete.leancomplete
theorem Q2Presentation.Induction.centralCover_realization_of_blockConcrete {p
Q2Presentation.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 {p
Q2Presentation.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.leancomplete
theorem Q2Presentation.Induction.Ksub_theta {p
Q2Presentation.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`.1theorem Q2Presentation.Induction.Ksub_theta {p
Q2Presentation.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`.1The decoration kills the kernel (`lem:decorationblock`, elementwise).
-
theoremdefined in Q2Presentation/Induction/Section7FrattiniTrivialElementary.leancomplete
theorem Q2Presentation.Induction.Sec7FrattiniTrivialElementaryDecorationProofs.Ksub_le_thetaY_ker {p
Q2Presentation.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 {p
Q2Presentation.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.leancomplete
theorem Q2Presentation.Induction.TargetDecorationKernelProofs.invariant_blockMap_eq_zero {p
Q2Presentation.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`.0theorem Q2Presentation.Induction.TargetDecorationKernelProofs.invariant_blockMap_eq_zero {p
Q2Presentation.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`.0Any `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`.
Proved in §7 of the paper. Ingredients: Lemma 7.1.
-
Q2Presentation.Induction.Annihilates.descend[complete] -
Q2Presentation.Induction.Annihilates.descend_nonsingular[complete] -
Q2Presentation.Induction.extraspecial_annihilates[complete] -
Q2Presentation.Induction.extraspecial_radical_subset[complete] -
Q2Presentation.Induction.extraspecial_nonzero[complete] -
Q2Presentation.Induction.MinimalBlock.annih_of[complete] -
Q2Presentation.Induction.MinimalBlock.headForm[complete] -
Q2Presentation.Induction.MinimalBlock.headForm_invariant[complete] -
Q2Presentation.Induction.MinimalBlock.headForm_nonsingular[complete] -
Q2Presentation.Induction.MinimalBlock.headForm_ne_zero[complete] -
Q2Presentation.Induction.MinimalBlock.simpleHeadDet[complete] -
Q2Presentation.Induction.minimalBlock_preheadCentralPushoutSimpleHeadDeterminantActualData_from_semanticClosers[complete] -
Q2Presentation.Induction.minimalBlock_preheadCentralPushoutCoherentDeterminantSemanticData[complete] -
Q2Presentation.Induction.minimalBlock_preheadCentralPushoutActualClosers4Data_from_lowerPackets[complete] -
Q2Presentation.Induction.minimalBlock_preheadCentralPushoutExtraspecialActualData[complete] -
Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualData.descended_nonsingular[complete] -
Q2Presentation.Induction.minimalBlock_preheadExtraspecialPackets_from_determinantResidual[complete] -
Q2Presentation.Induction.minimalBlock_pushoutRoute15Data_from_semanticDeterminantPieces[complete] -
Q2Presentation.Induction.MinimalBlockPushoutRoute212Closers.minimalBlock_preheadRoute212LowerManuscriptSurface[complete] -
Q2Presentation.Induction.minimalBlock_preheadDeterminantPackets_from_route67[complete] -
Q2Presentation.Induction.MinimalBlockPushoutRoute83Closers.minimalBlock_preheadPushoutRoute83Data_from_actualScalarAndCoherentDeterminant[complete] -
Q2Presentation.Induction.minimalBlock_preheadExtraspecialSimpleHeadDeterminantData_from_actualPackets[complete] -
Q2Presentation.Induction.minimalBlock_scalarQuotientData[complete] -
Q2Presentation.Induction.sec7Crux[complete] -
Q2Presentation.Induction.sec7SqAux_mul[complete] -
Q2Presentation.Induction.sec7SquareFamily[complete] -
Q2Presentation.Induction.sec7SquareFamily_annihilates[complete] -
Q2Presentation.Induction.Sec7PushoutCruxData[complete] -
Q2Presentation.Induction.sec7_pushoutPacket_ofCrux[complete] -
Q2Presentation.Induction.Sec7SimpleHeadCruxData[complete] -
Q2Presentation.Induction.sec7_radical_subset_T_of_polarT[complete] -
Q2Presentation.Induction.Sec7SimpleHeadCruxData2[complete] -
Q2Presentation.Induction.Section7PushoutRoute135Closers.minimalBlock_preheadDeterminantPackets_from_section7PushoutRoute135Closers[complete] -
Q2Presentation.Induction.Section7PushoutRoute151Closers.minimalBlock_preheadCentralPushoutSimpleHeadDeterminantActualData_selected_from_section7PushoutRoute151Closers[complete] -
Induction3EShearBuild.shearEquivariantSection_exists[complete] -
Induction3EShear._root_.Q2Presentation.Induction.sec7_shearEquivariantSection[missing declaration] -
Induction3EShear.sec7_form_zero_on_T_final[complete] -
Q2Presentation.Induction.minimalBlock_preheadDeterminantPackets_ofCruxCanonical[complete] -
Q2Presentation.Induction.edgeHeadForm[complete]
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.4●39 declarations, 1 missing
Associated Lean declarations
-
Q2Presentation.Induction.Annihilates.descend[complete]
-
Q2Presentation.Induction.Annihilates.descend_nonsingular[complete]
-
Q2Presentation.Induction.extraspecial_annihilates[complete]
-
Q2Presentation.Induction.extraspecial_radical_subset[complete]
-
Q2Presentation.Induction.extraspecial_nonzero[complete]
-
Q2Presentation.Induction.MinimalBlock.annih_of[complete]
-
Q2Presentation.Induction.MinimalBlock.headForm[complete]
-
Q2Presentation.Induction.MinimalBlock.headForm_invariant[complete]
-
Q2Presentation.Induction.MinimalBlock.headForm_nonsingular[complete]
-
Q2Presentation.Induction.MinimalBlock.headForm_ne_zero[complete]
-
Q2Presentation.Induction.MinimalBlock.simpleHeadDet[complete]
-
Q2Presentation.Induction.minimalBlock_preheadCentralPushoutSimpleHeadDeterminantActualData_from_semanticClosers[complete]
-
Q2Presentation.Induction.minimalBlock_preheadCentralPushoutCoherentDeterminantSemanticData[complete]
-
Q2Presentation.Induction.minimalBlock_preheadCentralPushoutActualClosers4Data_from_lowerPackets[complete]
-
Q2Presentation.Induction.minimalBlock_preheadCentralPushoutExtraspecialActualData[complete]
-
Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualData.descended_nonsingular[complete]
-
Q2Presentation.Induction.minimalBlock_preheadExtraspecialPackets_from_determinantResidual[complete]
-
Q2Presentation.Induction.minimalBlock_pushoutRoute15Data_from_semanticDeterminantPieces[complete]
-
Q2Presentation.Induction.MinimalBlockPushoutRoute212Closers.minimalBlock_preheadRoute212LowerManuscriptSurface[complete]
-
Q2Presentation.Induction.minimalBlock_preheadDeterminantPackets_from_route67[complete]
-
Q2Presentation.Induction.MinimalBlockPushoutRoute83Closers.minimalBlock_preheadPushoutRoute83Data_from_actualScalarAndCoherentDeterminant[complete]
-
Q2Presentation.Induction.minimalBlock_preheadExtraspecialSimpleHeadDeterminantData_from_actualPackets[complete]
-
Q2Presentation.Induction.minimalBlock_scalarQuotientData[complete]
-
Q2Presentation.Induction.sec7Crux[complete]
-
Q2Presentation.Induction.sec7SqAux_mul[complete]
-
Q2Presentation.Induction.sec7SquareFamily[complete]
-
Q2Presentation.Induction.sec7SquareFamily_annihilates[complete]
-
Q2Presentation.Induction.Sec7PushoutCruxData[complete]
-
Q2Presentation.Induction.sec7_pushoutPacket_ofCrux[complete]
-
Q2Presentation.Induction.Sec7SimpleHeadCruxData[complete]
-
Q2Presentation.Induction.sec7_radical_subset_T_of_polarT[complete]
-
Q2Presentation.Induction.Sec7SimpleHeadCruxData2[complete]
-
Q2Presentation.Induction.Section7PushoutRoute135Closers.minimalBlock_preheadDeterminantPackets_from_section7PushoutRoute135Closers[complete]
-
Q2Presentation.Induction.Section7PushoutRoute151Closers.minimalBlock_preheadCentralPushoutSimpleHeadDeterminantActualData_selected_from_section7PushoutRoute151Closers[complete]
-
Induction3EShearBuild.shearEquivariantSection_exists[complete]
-
Induction3EShear._root_.Q2Presentation.Induction.sec7_shearEquivariantSection[missing declaration]
-
Induction3EShear.sec7_form_zero_on_T_final[complete]
-
Q2Presentation.Induction.minimalBlock_preheadDeterminantPackets_ofCruxCanonical[complete]
-
Q2Presentation.Induction.edgeHeadForm[complete]
-
Q2Presentation.Induction.Annihilates.descend[complete] -
Q2Presentation.Induction.Annihilates.descend_nonsingular[complete] -
Q2Presentation.Induction.extraspecial_annihilates[complete] -
Q2Presentation.Induction.extraspecial_radical_subset[complete] -
Q2Presentation.Induction.extraspecial_nonzero[complete] -
Q2Presentation.Induction.MinimalBlock.annih_of[complete] -
Q2Presentation.Induction.MinimalBlock.headForm[complete] -
Q2Presentation.Induction.MinimalBlock.headForm_invariant[complete] -
Q2Presentation.Induction.MinimalBlock.headForm_nonsingular[complete] -
Q2Presentation.Induction.MinimalBlock.headForm_ne_zero[complete] -
Q2Presentation.Induction.MinimalBlock.simpleHeadDet[complete] -
Q2Presentation.Induction.minimalBlock_preheadCentralPushoutSimpleHeadDeterminantActualData_from_semanticClosers[complete] -
Q2Presentation.Induction.minimalBlock_preheadCentralPushoutCoherentDeterminantSemanticData[complete] -
Q2Presentation.Induction.minimalBlock_preheadCentralPushoutActualClosers4Data_from_lowerPackets[complete] -
Q2Presentation.Induction.minimalBlock_preheadCentralPushoutExtraspecialActualData[complete] -
Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualData.descended_nonsingular[complete] -
Q2Presentation.Induction.minimalBlock_preheadExtraspecialPackets_from_determinantResidual[complete] -
Q2Presentation.Induction.minimalBlock_pushoutRoute15Data_from_semanticDeterminantPieces[complete] -
Q2Presentation.Induction.MinimalBlockPushoutRoute212Closers.minimalBlock_preheadRoute212LowerManuscriptSurface[complete] -
Q2Presentation.Induction.minimalBlock_preheadDeterminantPackets_from_route67[complete] -
Q2Presentation.Induction.MinimalBlockPushoutRoute83Closers.minimalBlock_preheadPushoutRoute83Data_from_actualScalarAndCoherentDeterminant[complete] -
Q2Presentation.Induction.minimalBlock_preheadExtraspecialSimpleHeadDeterminantData_from_actualPackets[complete] -
Q2Presentation.Induction.minimalBlock_scalarQuotientData[complete] -
Q2Presentation.Induction.sec7Crux[complete] -
Q2Presentation.Induction.sec7SqAux_mul[complete] -
Q2Presentation.Induction.sec7SquareFamily[complete] -
Q2Presentation.Induction.sec7SquareFamily_annihilates[complete] -
Q2Presentation.Induction.Sec7PushoutCruxData[complete] -
Q2Presentation.Induction.sec7_pushoutPacket_ofCrux[complete] -
Q2Presentation.Induction.Sec7SimpleHeadCruxData[complete] -
Q2Presentation.Induction.sec7_radical_subset_T_of_polarT[complete] -
Q2Presentation.Induction.Sec7SimpleHeadCruxData2[complete] -
Q2Presentation.Induction.Section7PushoutRoute135Closers.minimalBlock_preheadDeterminantPackets_from_section7PushoutRoute135Closers[complete] -
Q2Presentation.Induction.Section7PushoutRoute151Closers.minimalBlock_preheadCentralPushoutSimpleHeadDeterminantActualData_selected_from_section7PushoutRoute151Closers[complete] -
Induction3EShearBuild.shearEquivariantSection_exists[complete] -
Induction3EShear._root_.Q2Presentation.Induction.sec7_shearEquivariantSection[missing declaration] -
Induction3EShear.sec7_form_zero_on_T_final[complete] -
Q2Presentation.Induction.minimalBlock_preheadDeterminantPackets_ofCruxCanonical[complete] -
Q2Presentation.Induction.edgeHeadForm[complete]
-
defdefined in Q2Presentation/Induction/MinimalBlock.leancomplete
def Q2Presentation.Induction.Annihilates.descend.{u_1} {M
Type 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 MTSubmodule (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} {M
Type 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 MTSubmodule (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.leancomplete
theorem Q2Presentation.Induction.Annihilates.descend_nonsingular.{u_1} {M
Type 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 MTSubmodule (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 pairingmM) 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} {M
Type 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 MTSubmodule (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 pairingmM) 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.leancomplete
theorem Q2Presentation.Induction.extraspecial_annihilates.{u_1} {M
Type 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) MtM) 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) MtM) 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) MmM) 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) Mtheorem Q2Presentation.Induction.extraspecial_annihilates.{u_1} {M
Type 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) MtM) 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) MtM) 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) MmM) 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) MThe 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.leancomplete
theorem Q2Presentation.Induction.extraspecial_radical_subset.{u_1} {M
Type 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) MmM) 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) Mm'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 pairingmM) 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) Mtheorem Q2Presentation.Induction.extraspecial_radical_subset.{u_1} {M
Type 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) MmM) 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) Mm'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 pairingmM) 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) MThe extraspecial polar radical lands in `T` (`prop:simpleheaddet` nonsingularity input) when the symmetrized pairing of `φ` has radical `⊆ T`.
-
theoremdefined in Q2Presentation/Induction/MinimalBlock.leancomplete
theorem Q2Presentation.Induction.extraspecial_nonzero.{u_1} {M
Type 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) MmM) 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`.0theorem Q2Presentation.Induction.extraspecial_nonzero.{u_1} {M
Type 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) MmM) 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`.0The extraspecial descended form is **nonzero** (`prop:simpleheaddet`) when the diagonal of `φ` is nonzero somewhere.
-
theoremdefined in Q2Presentation/Induction/MinimalBlock.leancomplete
theorem Q2Presentation.Induction.MinimalBlock.annih_of {p
Q2Presentation.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 {p
Q2Presentation.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.leancomplete
def Q2Presentation.Induction.MinimalBlock.headForm {p
Q2Presentation.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 {p
Q2Presentation.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.leancomplete
theorem Q2Presentation.Induction.MinimalBlock.headForm_invariant {p
Q2Presentation.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.XRhlamlam ≠ 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.XRhlamlam ≠ 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.headtheorem Q2Presentation.Induction.MinimalBlock.headForm_invariant {p
Q2Presentation.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.XRhlamlam ≠ 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.XRhlamlam ≠ 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.leancomplete
theorem Q2Presentation.Induction.MinimalBlock.headForm_nonsingular {p
Q2Presentation.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.XRhlamlam ≠ 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 {p
Q2Presentation.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.XRhlamlam ≠ 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.leancomplete
theorem Q2Presentation.Induction.MinimalBlock.headForm_ne_zero {p
Q2Presentation.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.XRhlamlam ≠ 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`.0theorem Q2Presentation.Induction.MinimalBlock.headForm_ne_zero {p
Q2Presentation.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.XRhlamlam ≠ 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.leancomplete
theorem Q2Presentation.Induction.MinimalBlock.simpleHeadDet {p
Q2Presentation.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.XRhlamlam ≠ 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.XRhlamlam ≠ 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.XRhlamlam ≠ 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.XRhlamlam ≠ 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.headtheorem Q2Presentation.Induction.MinimalBlock.simpleHeadDet {p
Q2Presentation.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.XRhlamlam ≠ 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.XRhlamlam ≠ 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.XRhlamlam ≠ 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.XRhlamlam ≠ 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.leancomplete
theorem Q2Presentation.Induction.minimalBlock_preheadCentralPushoutSimpleHeadDeterminantActualData_from_semanticClosers {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.minimalBlock_preheadCentralPushoutCoherentDeterminantSemanticData {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.minimalBlock_preheadCentralPushoutActualClosers4Data_from_lowerPackets {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.minimalBlock_preheadCentralPushoutExtraspecialActualData {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.MinimalBlockPreheadCentralPushoutExtraspecialActualData.descended_nonsingular {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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.RcD.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 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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.RcD.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.leancomplete
theorem Q2Presentation.Induction.minimalBlock_preheadExtraspecialPackets_from_determinantResidual {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.minimalBlock_pushoutRoute15Data_from_semanticDeterminantPieces {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.MinimalBlockPushoutRoute212Closers.minimalBlock_preheadRoute212LowerManuscriptSurface {p
Q2Presentation.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.FramedPairchiefQ2Presentation.Induction.NonScalarChiefFactor p) : ∃ xQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSquarePolarData DSQ2Presentation.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 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.Induction.NonScalarChiefFactor p) : ∃ xQ2Presentation.Induction.MinimalBlockPreheadCentralPushoutSquarePolarData DSQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.minimalBlock_preheadDeterminantPackets_from_route67 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.MinimalBlockPushoutRoute83Closers.minimalBlock_preheadPushoutRoute83Data_from_actualScalarAndCoherentDeterminant {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.minimalBlock_preheadExtraspecialSimpleHeadDeterminantData_from_actualPackets {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.minimalBlock_scalarQuotientData {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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.leancomplete
def Q2Presentation.Induction.sec7Crux {p
Q2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactordef Q2Presentation.Induction.sec7Crux {p
Q2Presentation.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 pKQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.sec7SqAux_mul {p
Q2Presentation.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.Ksubk'↥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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactork'↥K.Ksubk↥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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactork↥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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactork'↥K.Ksubtheorem Q2Presentation.Induction.sec7SqAux_mul {p
Q2Presentation.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.Ksubk'↥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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactork'↥K.Ksubk↥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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactork↥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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactork'↥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.leancomplete
def Q2Presentation.Induction.sec7SquareFamily {p
Q2Presentation.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 pKQ2Presentation.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 {p
Q2Presentation.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 pKQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.sec7SquareFamily_annihilates {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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)`.
-
structuredefined in Q2Presentation/Induction/Section7PushoutConstruction.leancomplete
structure Q2Presentation.Induction.Sec7PushoutCruxData {p
Q2Presentation.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 {p
Q2Presentation.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
phi
Module.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 Kpolar_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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor)) (mQ2Presentation.Induction.towerM Km'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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pairingmQ2Presentation.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 Knatural
∀ (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 pKQ2Presentation.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 pKQ2Presentation.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 Km'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 Kkill
∀ (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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pairingmQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.sec7_pushoutPacket_ofCrux {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactor))theorem Q2Presentation.Induction.sec7_pushoutPacket_ofCrux {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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.
-
structuredefined in Q2Presentation/Induction/Section7PushoutConstruction.leancomplete
structure Q2Presentation.Induction.Sec7SimpleHeadCruxData {p
Q2Presentation.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 {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pairingtQ2Presentation.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`.0form_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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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`.0radical_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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pairingmQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.sec7_radical_subset_T_of_polarT {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pairingtQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pairingmQ2Presentation.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.toNonScalarChiefFactortheorem Q2Presentation.Induction.sec7_radical_subset_T_of_polarT {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pairingtQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pairingmQ2Presentation.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. -
structuredefined in Q2Presentation/Induction/Section7PushoutConstruction.leancomplete
structure Q2Presentation.Induction.Sec7SimpleHeadCruxData2 {p
Q2Presentation.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 {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pairingtQ2Presentation.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`.0form_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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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.leancomplete
theorem Q2Presentation.Induction.Section7PushoutRoute135Closers.minimalBlock_preheadDeterminantPackets_from_section7PushoutRoute135Closers {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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.leancomplete
theorem Q2Presentation.Induction.Section7PushoutRoute151Closers.minimalBlock_preheadCentralPushoutSimpleHeadDeterminantActualData_selected_from_section7PushoutRoute151Closers {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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 {p
Q2Presentation.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.FramedPairchiefQ2Presentation.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.leancomplete
theorem Induction3EShearBuild.shearEquivariantSection_exists {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 hinvvInduction3BShear.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lamcQ2Presentation.Induction.towerC K) (σAInduction3BShear.Vq chief K lam hinv →ₗ[ZMod 2] Induction2Shear.Mbar chief K lam hinvvInduction3BShear.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lamcQ2Presentation.Induction.towerC K) vInduction3BShear.Vq chief K lam hinv)theorem Induction3EShearBuild.shearEquivariantSection_exists {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 hinvvInduction3BShear.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lamcQ2Presentation.Induction.towerC K) (σAInduction3BShear.Vq chief K lam hinv →ₗ[ZMod 2] Induction2Shear.Mbar chief K lam hinvvInduction3BShear.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.Dual (ZMod 2) (Q2Presentation.Induction.towerR chief K)hinv∀ (c : Q2Presentation.Induction.towerC K), lam ∘ₗ ↑((Q2Presentation.Induction.towerActR chief K) c) = lamcQ2Presentation.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.leancomplete
theorem Induction3EShear.sec7_form_zero_on_T_final {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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`.0theorem Induction3EShear.sec7_form_zero_on_T_final {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.Induction.KernelMinimal chief.toNonScalarChiefFactorlamModule.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.leancomplete
theorem Q2Presentation.Induction.minimalBlock_preheadDeterminantPackets_ofCruxCanonical {p
Q2Presentation.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 {p
Q2Presentation.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.leancomplete
def Q2Presentation.Induction.edgeHeadForm {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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 {p
Q2Presentation.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 pKQ2Presentation.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 pKQ2Presentation.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).