Documentation

GQ2.RamifiedPack.Descent

The ramified isotypic pack and descent count #

The pack interface, self-reciprocity, semilinear descent, and the final fixed-point count.

See GQ2.RamifiedPack for the paper-facing overview, source citations, and deviations.

§PackInterface: the ⟨t⟩-module structure on Wt := AdjoinRoot P #

The pack-facing layer (design doc §0's field shapes): the Subgroup.zpowers t-action on D := AdjoinRoot P by root-multiplication (rootAction, through the choice-exponent hom zpowHom : ⟨t⟩ →* Dˣ — well-defined because root P ^ orderOf t = 1), the char-2 field hWt2 (adjoinRoot_add_self), simplicity hWtsimple (isSimpleModTwo_rootAction: a t-stable additive subgroup of D = 𝔽₂[root P] is a D-subspace of the line), and the pack-shaped equivariance he (equiv_zpowers_smul, upgrading exists_isotypic_equiv's per-coordinate root-equivariance).

theorem GQ2.RamifiedPack.adjoinRoot_add_self (P : Polynomial (ZMod 2)) (w : AdjoinRoot P) :
w + w = 0

Char 2 on AdjoinRoot P: every element is 2-torsion (the hWt2 pack field).

theorem GQ2.RamifiedPack.exists_pow_eq {C : Type u_1} [Group C] (t : C) (hpos : 0 < orderOf t) (σ : (Subgroup.zpowers t)) :
∃ (n : ), σ = t ^ n

Every element of ⟨t⟩ is a ℕ-power of t (finite order: reduce the ℤ-exponent mod orderOf t).

noncomputable def GQ2.RamifiedPack.powExp {C : Type u_1} [Group C] (t : C) (hpos : 0 < orderOf t) (σ : (Subgroup.zpowers t)) :

The choice exponent of an element of ⟨t⟩: (σ : C) = t ^ powExp t hpos σ.

Equations
Instances For
    theorem GQ2.RamifiedPack.root_pow_orderOf {C : Type u_1} [Group C] (t : C) (P : Polynomial (ZMod 2)) (hdvd : P Polynomial.X ^ orderOf t - 1) :
    AdjoinRoot.root P ^ orderOf t = 1

    root P ^ orderOf t = 1 from P ∣ X^{orderOf t} − 1 (via AdjoinRoot.mk_eq_zero).

    theorem GQ2.RamifiedPack.equiv_pow_smul {C : Type u_1} [Group C] (t : C) (P : Polynomial (ZMod 2)) {V : Type u_2} [AddCommGroup V] [DistribMulAction C V] {s : } (e : V ≃+ (Fin sAdjoinRoot P)) (he : ∀ (v : V) (j : Fin s), e (t v) j = AdjoinRoot.root P * e v j) (n : ) (v : V) (j : Fin s) :
    e (t ^ n v) j = AdjoinRoot.root P ^ n * e v j

    ℕ-power upgrade of exists_isotypic_equiv's per-coordinate root-equivariance.

    theorem GQ2.RamifiedPack.root_ne_zero {C : Type u_1} [Group C] (t : C) (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hpos : 0 < orderOf t) (hdvd : P Polynomial.X ^ orderOf t - 1) :
    AdjoinRoot.root P 0

    The root is nonzero (else 0 = root^{orderOf t} = 1).

    noncomputable def GQ2.RamifiedPack.rootUnit {C : Type u_1} [Group C] (t : C) (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hpos : 0 < orderOf t) (hdvd : P Polynomial.X ^ orderOf t - 1) :
    (AdjoinRoot P)ˣ

    The root as a unit of the field AdjoinRoot P.

    Equations
    Instances For
      theorem GQ2.RamifiedPack.rootUnit_pow_congr {C : Type u_1} [Group C] (t : C) (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hpos : 0 < orderOf t) (hdvd : P Polynomial.X ^ orderOf t - 1) {m n : } (h : t ^ m = t ^ n) :
      rootUnit t P hpos hdvd ^ m = rootUnit t P hpos hdvd ^ n

      Well-definedness core: equal t-powers give equal rootUnit-powers (orderOf rootUnit ∣ orderOf t, then pow_eq_pow_iff_modEq both ways).

      noncomputable def GQ2.RamifiedPack.zpowHom {C : Type u_1} [Group C] (t : C) (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hpos : 0 < orderOf t) (hdvd : P Polynomial.X ^ orderOf t - 1) :
      (Subgroup.zpowers t) →* (AdjoinRoot P)ˣ

      The ⟨t⟩ →* Dˣ hom t^k ↦ root^k (choice-exponent; well-defined by rootUnit_pow_congr).

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[reducible]
        noncomputable def GQ2.RamifiedPack.rootAction {C : Type u_1} [Group C] (t : C) (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hpos : 0 < orderOf t) (hdvd : P Polynomial.X ^ orderOf t - 1) :
        DistribMulAction (↥(Subgroup.zpowers t)) (AdjoinRoot P)

        The ⟨t⟩-module structure on Wt := AdjoinRoot P (the pack instance argument): t^k acts as multiplication by root P ^ k. Consumers letI it.

        Equations
        Instances For
          theorem GQ2.RamifiedPack.rootAction_smul_of_pow {C : Type u_1} [Group C] (t : C) (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hpos : 0 < orderOf t) (hdvd : P Polynomial.X ^ orderOf t - 1) {σ : (Subgroup.zpowers t)} {n : } ( : σ = t ^ n) (w : AdjoinRoot P) :
          σ w = AdjoinRoot.root P ^ n * w

          Computation rule for rootAction at a ℕ-power presentation of σ.

          theorem GQ2.RamifiedPack.rootAction_gen_smul {C : Type u_1} [Group C] (t : C) (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hpos : 0 < orderOf t) (hdvd : P Polynomial.X ^ orderOf t - 1) (w : AdjoinRoot P) :
          t, w = AdjoinRoot.root P * w

          The generator acts as root-multiplication.

          theorem GQ2.RamifiedPack.isSimpleModTwo_rootAction {C : Type u_1} [Group C] (t : C) (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hpos : 0 < orderOf t) (hdvd : P Polynomial.X ^ orderOf t - 1) :
          FoxH.IsSimpleModTwo (↥(Subgroup.zpowers t)) (AdjoinRoot P)

          Wt is a simple ⟨t⟩-module (the hWtsimple pack field): a t-stable additive subgroup of D = 𝔽₂[root P] is stable under multiplication by every mk P g, hence a D-subspace of the line D — so or .

          theorem GQ2.RamifiedPack.equiv_zpowers_smul {C : Type u_1} [Group C] (t : C) (P : Polynomial (ZMod 2)) {V : Type u_2} [AddCommGroup V] [DistribMulAction C V] [Fact (Irreducible P)] (hpos : 0 < orderOf t) (hdvd : P Polynomial.X ^ orderOf t - 1) {s : } (e : V ≃+ (Fin sAdjoinRoot P)) (he : ∀ (v : V) (j : Fin s), e (t v) j = AdjoinRoot.root P * e v j) (σ : (Subgroup.zpowers t)) (v : V) (j : Fin s) :
          e (σ v) j = σ e v j

          The pack-shaped equivariance he: the per-coordinate root-equivariance of exists_isotypic_equiv upgrades to full ⟨t⟩-equivariance for the rootAction module structure on Wtprop_6_9_ramified's he field verbatim.

          §SelfReciprocity: f = deg P is EVEN (design doc §4) #

          The nonsingular t-invariant polar pairing makes the -adjoint t̂⁻¹, so P(t̂) = 0 forces P(t̂⁻¹) = 0 (A); transported through the isotypic equivalence this says x⁻¹ is a root of P in D = 𝔽₂[x], x := root P (B); the induced 𝔽₂-algebra involution x ↦ x⁻¹ of D is a genuine order-2 element of Aut(D/𝔽₂) (nontrivial since x ≠ 1 — the ramified exclusion of P = X + 1), and #Aut(D/𝔽₂) = f (finite fields are Galois: GaloisField.instIsGaloisOfFinite), so Lagrange gives 2 ∣ f (C). The numerology f = 2^a·r, a ≥ 1, r odd then feeds the pack's hWcard shape.

          theorem GQ2.RamifiedPack.q_pow_smul {C : Type u_1} [Group C] {V : Type u_2} [AddCommGroup V] [DistribMulAction C V] {t : C} {q : VZMod 2} (hqt : ∀ (v : V), q (t v) = q v) (n : ) (v : V) :
          q (t ^ n v) = q v

          Invariance of q under t extends to all powers.

          theorem GQ2.RamifiedPack.polar_smul_left_inv {C : Type u_1} [Group C] {V : Type u_2} [AddCommGroup V] [DistribMulAction C V] {g : C} {q : VZMod 2} (hqg : ∀ (v : V), q (g v) = q v) (w v : V) :
          QuadraticFp2.polar q (g w) v = QuadraticFp2.polar q w (g⁻¹ v)

          The adjoint shift: for g preserving q, the polar pairing trades g on the left for g⁻¹ on the right.

          theorem GQ2.RamifiedPack.polar_aeval_actEnd {C : Type u_1} [Group C] {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V] [DistribMulAction C V] (t : C) (q : VZMod 2) (hq : QuadraticFp2.IsQuadraticFp2 q) (hqt : ∀ (v : V), q (t v) = q v) (Q : Polynomial (ZMod 2)) (w v : V) :
          QuadraticFp2.polar q (((Polynomial.aeval (actEnd t)) Q) w) v = QuadraticFp2.polar q w (((Polynomial.aeval (actEnd t⁻¹)) Q) v)

          (A) the operator-adjoint identity: B(P(t̂)w, v) = B(w, P(t̂⁻¹)v) for the polar pairing of a t-invariant quadratic map.

          theorem GQ2.RamifiedPack.aeval_actEnd_inv_eq_zero {C : Type u_1} [Group C] {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V] [DistribMulAction C V] (t : C) (q : VZMod 2) (hq : QuadraticFp2.IsQuadraticFp2 q) (hns : QuadraticFp2.Nonsingular q) (hqt : ∀ (v : V), q (t v) = q v) {P : Polynomial (ZMod 2)} (hkill : ∀ (v : V), ((Polynomial.aeval (actEnd t)) P) v = 0) (v : V) :
          ((Polynomial.aeval (actEnd t⁻¹)) P) v = 0

          (A) closed: P(t̂) = 0 forces P(t̂⁻¹) = 0 (nonsingularity kills the orthogonal complement of everything).

          theorem GQ2.RamifiedPack.equiv_pow_smul_gen {C : Type u_1} [Group C] {V : Type u_2} [AddCommGroup V] [DistribMulAction C V] (P : Polynomial (ZMod 2)) (g : C) (x : AdjoinRoot P) {s : } (e : V ≃+ (Fin sAdjoinRoot P)) (hge : ∀ (v : V) (j : Fin s), e (g v) j = x * e v j) (n : ) (v : V) (j : Fin s) :
          e (g ^ n v) j = x ^ n * e v j

          Generalized ℕ-power transport (any group element acting per-coordinate as a fixed scalar).

          theorem GQ2.RamifiedPack.aeval_root_inv_eq_zero {C : Type u_1} [Group C] {V : Type u_2} [AddCommGroup V] [Module (ZMod 2) V] [DistribMulAction C V] (t : C) (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hroot0 : AdjoinRoot.root P 0) {s : } (hs : 1 s) (e : V ≃+ (Fin sAdjoinRoot P)) (he : ∀ (v : V) (j : Fin s), e (t v) j = AdjoinRoot.root P * e v j) (hkill' : ∀ (v : V), ((Polynomial.aeval (actEnd t⁻¹)) P) v = 0) :
          (Polynomial.aeval (AdjoinRoot.root P)⁻¹) P = 0

          (B) transport to D: P(t̂⁻¹) = 0 on V ≅ D^s (s ≥ 1) evaluates, on the first basis vector, to P(x⁻¹) = 0 in D.

          theorem GQ2.RamifiedPack.even_natDegree_of_aeval_inv_eq_zero (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hmon : P.Monic) (hroot0 : AdjoinRoot.root P 0) (hroot1 : AdjoinRoot.root P 1) (h0 : (Polynomial.aeval (AdjoinRoot.root P)⁻¹) P = 0) :
          Even P.natDegree

          (C) f is even: the involution x ↦ x⁻¹ of D = AdjoinRoot P (an 𝔽₂-algebra automorphism since x⁻¹ is again a root of P) has order 2 in Aut(D/𝔽₂) when x ≠ 1, and finite fields are Galois, so 2 ∣ #Aut = finrank = natDegree P.

          theorem GQ2.RamifiedPack.exists_two_pow_mul_odd {f : } (hf0 : f 0) (hfe : Even f) :
          ∃ (a : ) (r : ), 1 a Odd r f = 2 ^ a * r

          The pack numerology: an even nonzero f is 2^a · r with a ≥ 1 and r odd.

          §UKill: U^{2^a} = 1 for U := powOmega2 s (design doc §5, common first step) #

          The 2-primary part U = s^{ω₂} of s, raised to 2^a, centralizes t — the twist exponent 2^{ω·2^a} is ≡ 1 (mod orderOf t) because f = deg P ∣ ω·2^a (via f ∣ orderOf s from the Frobenius order on D, and r ∣ ω from the ω₂ ≡ 0-on-odd-part congruence) and orderOf t ∣ 2^f − 1 (Lagrange in ). Commuting with both generators makes U^{2^a} central; its fixed space is then a nonzero C-submodule (the 2-group fixed-point count), so simplicity + faithfulness kill it.

          theorem GQ2.RamifiedPack.inv_pow_conj {C : Type u_1} [Group C] (s t : C) (hrel : s⁻¹ * t * s = t ^ 2) (n : ) :
          (s ^ n)⁻¹ * t * s ^ n = t ^ 2 ^ n

          Iterating the tame twist: (s^n)⁻¹ t s^n = t^{2^n}.

          theorem GQ2.RamifiedPack.root_pow_eq_of_t_pow_eq {C : Type u_1} [Group C] {V : Type u_2} [AddCommGroup V] [DistribMulAction C V] (t : C) (P : Polynomial (ZMod 2)) {m n : } (ht : t ^ m = t ^ n) {sV : } (hsV : 1 sV) (e : V ≃+ (Fin sVAdjoinRoot P)) (he : ∀ (v : V) (j : Fin sV), e (t v) j = AdjoinRoot.root P * e v j) :
          AdjoinRoot.root P ^ m = AdjoinRoot.root P ^ n

          Equal t-powers pin equal root-powers (evaluate the isotypic equivalence on the first basis vector).

          theorem GQ2.RamifiedPack.t_pow_eq_of_root_pow_eq {C : Type u_1} [Group C] {V : Type u_2} [AddCommGroup V] [DistribMulAction C V] (t : C) (P : Polynomial (ZMod 2)) (hfaith : ∀ (g : C), (∀ (v : V), g v = v)g = 1) {m n : } (hx : AdjoinRoot.root P ^ m = AdjoinRoot.root P ^ n) {sV : } (e : V ≃+ (Fin sVAdjoinRoot P)) (he : ∀ (v : V) (j : Fin sV), e (t v) j = AdjoinRoot.root P * e v j) :
          t ^ m = t ^ n

          Equal root-powers pin equal t-powers (via faithfulness through the equivalence).

          theorem GQ2.RamifiedPack.orderOf_root_eq {C : Type u_1} [Group C] {V : Type u_2} [AddCommGroup V] [DistribMulAction C V] (t : C) (P : Polynomial (ZMod 2)) (hfaith : ∀ (g : C), (∀ (v : V), g v = v)g = 1) (hdvd : P Polynomial.X ^ orderOf t - 1) {sV : } (e : V ≃+ (Fin sVAdjoinRoot P)) (he : ∀ (v : V) (j : Fin sV), e (t v) j = AdjoinRoot.root P * e v j) :
          orderOf (AdjoinRoot.root P) = orderOf t

          With a faithful action, the root has the same order as t.

          theorem GQ2.RamifiedPack.finite_adjoinRoot (P : Polynomial (ZMod 2)) (hmon : P.Monic) :
          Finite (AdjoinRoot P)

          AdjoinRoot P of a monic polynomial over 𝔽₂ is finite.

          noncomputable def GQ2.RamifiedPack.frobAlg (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] :
          AdjoinRoot P →ₐ[ZMod 2] AdjoinRoot P

          The Frobenius square map as an 𝔽₂-algebra endomorphism of AdjoinRoot P (hand-rolled: char 2 makes squaring additive via adjoinRoot_add_self).

          Equations
          • GQ2.RamifiedPack.frobAlg P = { toFun := fun (y : AdjoinRoot P) => y ^ 2, map_one' := , map_mul' := , map_zero' := , map_add' := , commutes' := }
          Instances For
            noncomputable def GQ2.RamifiedPack.frobEquiv (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hmon : P.Monic) :
            Gal(AdjoinRoot P/ZMod 2)

            The Frobenius as an algebra automorphism (injective self-map of a finite field).

            Equations
            Instances For
              theorem GQ2.RamifiedPack.orderOf_frobEquiv (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hmon : P.Monic) (hdeg : 0 < P.natDegree) :
              orderOf (frobEquiv P hmon) = P.natDegree

              The Frobenius has order exactly f = deg P in Aut(D/𝔽₂): Lagrange bounds it by f (#Aut = f, Galois), and φ^m = 1 makes all 2^f elements roots of X^{2^m} − X, so f ≤ m.

              theorem GQ2.RamifiedPack.frobEquiv_pow_eq_one_of_root (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hmon : P.Monic) {m : } (hx : AdjoinRoot.root P ^ 2 ^ m = AdjoinRoot.root P) :
              frobEquiv P hmon ^ m = 1

              A Frobenius power fixing the root fixes everything (AdjoinRoot.algHom_ext).

              theorem GQ2.RamifiedPack.natDegree_dvd_of_root_pow (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hmon : P.Monic) (hdeg : 0 < P.natDegree) {m : } (hx : AdjoinRoot.root P ^ 2 ^ m = AdjoinRoot.root P) :
              P.natDegree m

              f = deg P divides any m with x^{2^m} = x (Frobenius order pinning).

              theorem GQ2.RamifiedPack.orderOf_t_dvd_two_pow_sub_one {C : Type u_1} [Group C] {V : Type u_2} [AddCommGroup V] [DistribMulAction C V] (t : C) (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hmon : P.Monic) (hpos : 0 < orderOf t) (hdvd : P Polynomial.X ^ orderOf t - 1) (hfaith : ∀ (g : C), (∀ (v : V), g v = v)g = 1) {sV : } (e : V ≃+ (Fin sVAdjoinRoot P)) (he : ∀ (v : V) (j : Fin sV), e (t v) j = AdjoinRoot.root P * e v j) :
              orderOf t 2 ^ P.natDegree - 1

              Lagrange in : orderOf t ∣ 2^f − 1.

              theorem GQ2.RamifiedPack.powOmega2_pow_two_pow_eq_one {C : Type u_1} [Group C] {V : Type u_2} [AddCommGroup V] [DistribMulAction C V] (t : C) (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] [Finite C] [Finite V] (s : C) (hgen : Subgroup.closure {s, t} = ) (hrel : s⁻¹ * t * s = t ^ 2) (hfaith : ∀ (g : C), (∀ (v : V), g v = v)g = 1) (hsimple : ∀ (W : AddSubgroup V), (∀ (g : C), wW, g w W)W = W = ) (hmon : P.Monic) (hdvd : P Polynomial.X ^ orderOf t - 1) {a r : } (hr : Odd r) (hfar : P.natDegree = 2 ^ a * r) {sV : } (hsV : 1 sV) (e : V ≃+ (Fin sVAdjoinRoot P)) (he : ∀ (v : V) (j : Fin sV), e (t v) j = AdjoinRoot.root P * e v j) :
              powOmega2 s ^ 2 ^ a = 1

              U^{2^a} = 1 (design doc §5, the centrality kill): the 2^a-th power of the 2-primary part U = powOmega2 s centralizes both generators, so its (nonzero) fixed space is a C-submodule; simplicity and faithfulness force U^{2^a} = 1.

              §DescentKit: the D-side inputs of the descent count (design doc §5, Route A) #

              For the twist σ := frobEquiv^ω (order 2^a, since gcd(ω, f) = r for odd ω with r ∣ ω): the fixed field F := fixedField ⟨σ⟩ has exactly 2^r elements (Artin's lemma finrank_fixedField_eq_card + the card tower), and the vector-valued Dedekind/Artin independence engine — a family annihilated by all twisted evaluations Σᵢ σⁱ(y)•wᵢ = 0 vanishes — which powers both halves of the dim_F V^U = s argument in §5b-ii.

              theorem GQ2.RamifiedPack.artin_vector (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] {M : Type u_1} [AddCommGroup M] [Module (AdjoinRoot P) M] (σ : Gal(AdjoinRoot P/ZMod 2)) {m : } (hdist : i < m, j < m, σ ^ i = σ ^ ji = j) (w : M) (h : ∀ (y : AdjoinRoot P), iFinset.range m, (σ ^ i) y w i = 0) (i : ) :
              i Finset.range mw i = 0

              Vector-valued Artin independence: if the powers σ⁰, …, σ^{m−1} are pairwise distinct and ∑ i, σⁱ(y) • wᵢ = 0 for every scalar y, then every wᵢ = 0. (Minimal-support descent: a second nonzero index is killed by the μ-twist difference system; a single nonzero index dies at y = 1.)

              theorem GQ2.RamifiedPack.orderOf_frobEquiv_pow (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hmon : P.Monic) (hdeg : 0 < P.natDegree) {ω r aa : } (hωodd : Odd ω) (hrω : r ω) (hfar : P.natDegree = 2 ^ aa * r) :
              orderOf (frobEquiv P hmon ^ ω) = 2 ^ aa

              The twist frobEquiv^ω has order exactly 2^a when ω is odd with r ∣ ω (gcd(f, ω) = r at f = 2^a·r).

              theorem GQ2.RamifiedPack.mem_fixedField_zpowers_iff (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (σ : Gal(AdjoinRoot P/ZMod 2)) (hσpos : 0 < orderOf σ) (y : AdjoinRoot P) :
              y IntermediateField.fixedField (Subgroup.zpowers σ) σ y = y

              Membership in the fixed field of ⟨σ⟩ is fixedness under σ itself.

              theorem GQ2.RamifiedPack.card_fixedField_zpowers (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (hmon : P.Monic) {aa r : } (σ : Gal(AdjoinRoot P/ZMod 2)) (hord : orderOf σ = 2 ^ aa) (hfar : P.natDegree = 2 ^ aa * r) :
              Nat.card (IntermediateField.fixedField (Subgroup.zpowers σ)) = 2 ^ r

              The fixed field of the twist has 2^r elements: [D : F] = #⟨σ⟩ = 2^a (Artin) and #D = #F^{[D:F]} pin #F = 2^r at f = 2^a·r.

              §DescentCount: #(fixed points of a σ-semilinear automorphism of D^n) = #F^n #

              The abstract Route-A descent (design doc §5): for β : AddAut (D^n) that is σ-semilinear (β(y•w) = σ(y)•β(w)) with β^{2^a} = 1 and σ of order 2^a, the fixed set of β is an F-form of D^nF-independent fixed vectors are D-independent (Dedekind shortening) and the fixed set D-spans (the trace projector through the artin_vector engine on the quotient) — so #Fix(β) = #F^n.

              theorem GQ2.RamifiedPack.pow_ne_pow_of_orderOf (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] (σ : Gal(AdjoinRoot P/ZMod 2)) {aa : } (hord : orderOf σ = 2 ^ aa) (i : ) :
              i < 2 ^ aaj < 2 ^ aa, σ ^ i = σ ^ ji = j

              Distinct powers of σ below its order.

              theorem GQ2.RamifiedPack.coe_smul_fixedField (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] {n : } (F : IntermediateField (ZMod 2) (AdjoinRoot P)) (c : F) (w : Fin nAdjoinRoot P) :
              c w = c w

              The ↥F-scalar bridge on D^n: the subfield scalar acts as its coercion.

              def GQ2.RamifiedPack.fixedSubmodule (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] {n : } (σ : Gal(AdjoinRoot P/ZMod 2)) (β : (Fin nAdjoinRoot P) ≃+ (Fin nAdjoinRoot P)) (hσpos : 0 < orderOf σ) (hsemi : ∀ (y : AdjoinRoot P) (w : Fin nAdjoinRoot P), β (y w) = σ y β w) :
              Submodule (↥(IntermediateField.fixedField (Subgroup.zpowers σ))) (Fin nAdjoinRoot P)

              The fixed set of β as an ↥F-submodule of D^n (F := fixedField ⟨σ⟩): σ-fixed scalars pass through β.

              Equations
              • GQ2.RamifiedPack.fixedSubmodule P σ β hσpos hsemi = { carrier := {w : Fin nAdjoinRoot P | β w = w}, add_mem' := , zero_mem' := , smul_mem' := }
              Instances For
                theorem GQ2.RamifiedPack.linearIndependent_of_fixed (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] {n : } (σ : Gal(AdjoinRoot P/ZMod 2)) (β : (Fin nAdjoinRoot P) ≃+ (Fin nAdjoinRoot P)) (hσpos : 0 < orderOf σ) (hsemi : ∀ (y : AdjoinRoot P) (w : Fin nAdjoinRoot P), β (y w) = σ y β w) {ι : Type u_1} [Fintype ι] (v : ιFin nAdjoinRoot P) (hfix : ∀ (i : ι), β (v i) = v i) (hindF : LinearIndependent (↥(IntermediateField.fixedField (Subgroup.zpowers σ))) v) :
                LinearIndependent (AdjoinRoot P) v

                The Dedekind shortening: F-independent β-fixed vectors are D-independent.

                theorem GQ2.RamifiedPack.span_fixed_eq_top (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] {n : } (σ : Gal(AdjoinRoot P/ZMod 2)) (β : (Fin nAdjoinRoot P) ≃+ (Fin nAdjoinRoot P)) {aa : } (hord : orderOf σ = 2 ^ aa) (hsemi : ∀ (y : AdjoinRoot P) (w : Fin nAdjoinRoot P), β (y w) = σ y β w) (hβord : (⇑β)^[2 ^ aa] = id) :
                Submodule.span (AdjoinRoot P) {w : Fin nAdjoinRoot P | β w = w} =

                The fixed set D-spans (the trace projector through the artin_vector engine on the quotient): every vector lies in the D-span of the β-fixed set.

                theorem GQ2.RamifiedPack.card_fixed_eq (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] {n : } (σ : Gal(AdjoinRoot P/ZMod 2)) (β : (Fin nAdjoinRoot P) ≃+ (Fin nAdjoinRoot P)) (hmon : P.Monic) {aa : } (hord : orderOf σ = 2 ^ aa) (hsemi : ∀ (y : AdjoinRoot P) (w : Fin nAdjoinRoot P), β (y w) = σ y β w) (hβord : (⇑β)^[2 ^ aa] = id) :
                Nat.card { w : Fin nAdjoinRoot P // β w = w } = Nat.card (IntermediateField.fixedField (Subgroup.zpowers σ)) ^ n

                The descent count: the fixed points of a σ-semilinear automorphism of D^n of order dividing 2^a = orderOf σ number exactly #F^n.

                theorem GQ2.RamifiedPack.semilinear_of_root_case (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] {n : } (σ : Gal(AdjoinRoot P/ZMod 2)) (β : (Fin nAdjoinRoot P) ≃+ (Fin nAdjoinRoot P)) (hx : ∀ (w : Fin nAdjoinRoot P), β (AdjoinRoot.root P w) = σ (AdjoinRoot.root P) β w) (y : AdjoinRoot P) (w : Fin nAdjoinRoot P) :
                β (y w) = σ y β w

                Semilinearity follows from the root case (additive + polynomial bootstrap).

                §VUCount: the pack hVU#V^U = 2^{r·sV} (design doc §5, assembled) #

                theorem GQ2.RamifiedPack.card_fixed_powOmega2 {C : Type u_1} [Group C] {V : Type u_2} [AddCommGroup V] [DistribMulAction C V] (t : C) (P : Polynomial (ZMod 2)) [Fact (Irreducible P)] [Finite C] [Finite V] (s : C) (hgen : Subgroup.closure {s, t} = ) (hrel : s⁻¹ * t * s = t ^ 2) (hfaith : ∀ (g : C), (∀ (v : V), g v = v)g = 1) (hsimple : ∀ (W : AddSubgroup V), (∀ (g : C), wW, g w W)W = W = ) (hmon : P.Monic) (hdvd : P Polynomial.X ^ orderOf t - 1) {a r : } (hr : Odd r) (ha : 1 a) (hfar : P.natDegree = 2 ^ a * r) {sV : } (hsV : 1 sV) (e : V ≃+ (Fin sVAdjoinRoot P)) (he : ∀ (v : V) (j : Fin sV), e (t v) j = AdjoinRoot.root P * e v j) :
                Nat.card { v : V // powOmega2 s v = v } = 2 ^ (r * sV)

                The pack hVU: at a faithful simple isotypic ramified tame action, the fixed vectors of U := powOmega2 s number exactly 2^{r·sV} — the σ-semilinear descent count transported through the isotypic equivalence.