Documentation

GQ2.DualityAssembly

Assembling prop_5_15 (deformation duality) from the simple-module case + dévissage #

prop_5_15 : IsSelfDual t A for every finite elementary 𝔽₂[C]-module. Route: the simple modules are self-dual (trivial module via trivialSelfDual; nontrivial simples via lemma_5_13 + the degree-one pairing), then lemma_5_11 (dévissage, GQ2/Devissage.lean) two-out-of-three along a composition series.

This file lives outside FoxHeisenberg.lean because it needs lemma_5_11 (in Devissage, which imports FoxHeisenberg) — the import runs the other way, the TrivialSelfDual.lean pattern.

Card bookkeeping for the simple case #

For a nontrivial simple module the invariants H⁰w(A) = A^C vanish, so the normal form H¹w ≅ A (lemma_5_13) forces #Z¹w = #A² and #H²w = 1 — clauses 1 and 2 of IsSelfDual.

theorem GQ2.FoxH.card_H1w_of_normalForm {C : Type u_1} [Group C] [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (hx0mem : ∀ (c : A), x0Supported c Z1w t) (hnf : xZ1w t, ∃! c : A, x - x0Supported c B1w t) :
Nat.card (H1w t) = Nat.card A

H¹w ≅ A from the normal form: when every x₀-supported tuple is a cocycle and every cocycle is uniquely x₀-supported modulo coboundaries (lemma_5_13), the class map A → H¹w, c ↦ [x₀Supported c], is a bijection, so #H¹w = #A.

theorem GQ2.FoxH.card_H0w_eq_one_of_nontrivial {C : Type u_1} [Group C] {A : Type u_2} [AddCommGroup A] [DistribMulAction C A] (t : Marking C) (hgen : t.Generates) (hsimple : IsSimpleModTwo C A) (hnt : ∃ (c : C) (a : A), c a a) :
Nat.card (H0w t) = 1

No invariants for a nontrivial simple module: H⁰w(A) = A^C = 0. H⁰w is the C-fixed space (H0w_eq_fixedPts, using hgen), a C-submodule, so or by simplicity; would make the action trivial, contradicting hnt.

theorem GQ2.FoxH.card_H2w_and_Z1w_of_nontrivial_simple {C : Type u_1} [Group C] [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (ht : t.TameRel) (hw : t.WildRel) (hgen : t.Generates) (hsimple : IsSimpleModTwo C A) (hnt : ∃ (c : C) (a : A), c a a) (hx0mem : ∀ (c : A), x0Supported c Z1w t) (hnf : xZ1w t, ∃! c : A, x - x0Supported c B1w t) :
Nat.card (H2w t) = 1 Nat.card (Z1w t) = Nat.card A ^ 2

Card clauses for a nontrivial simple module (feeding IsSelfDual): #H²w = 1 and #Z¹w = #A², from #H¹w = #A (card_H1w_of_normalForm), #H⁰w = 1, and the Euler characteristic card_H1w_eq / card_Z1w_eq_sq_mul_card_H2w.

theorem GQ2.FoxH.card_fixedPts_elemDual_eq_one_of_nontrivial {C : Type u_1} [Group C] {A : Type u_2} [AddCommGroup A] [DistribMulAction C A] (hsimple : IsSimpleModTwo C A) (hnt : ∃ (c : C) (a : A), c a a) :
Nat.card (fixedPts C (ElemDual A)) = 1

No dual invariants for a nontrivial simple module: #(A^∨)^C = 1. A nonzero C-invariant λ has C-stable kernel, which is by simplicity, so λ is injective; but λ(c·a) = λ(a) (invariance) then forces c·a = a, a trivial action — contradicting hnt.

theorem GQ2.FoxH.tau_split_or_ramified {C : Type u_1} [Group C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (ht : t.TameRel) (hgen : t.Generates) (hsimple : IsSimpleModTwo C A) (hcore : t.Pro2Core) (hV₂ : ∀ (a : A), a + a = 0) :
(∀ (v : A), t.τ v = v) ∀ (v : A), t.τ v = vv = 0

Split/ramified dichotomy for a simple module: either τ acts trivially (split, V^T = V) or V^T = 0 (ramified). The τ-fixed space V^T is C-stable — σ preserves it via the tame relation σ⁻¹τσ = τ² (τ(σv) = σ(τ²v) = σv), x₀,x₁ act trivially (wild_acts_trivially), and the stabilizer is a subgroup containing the generators, hence all of C (hgen) — so simplicity forces V^T = ⊥ or .

mixedB descends to H¹w (the degree-one pairing) #

theorem GQ2.FoxH.mixedB_left_congr {C : Type u_1} [Group C] [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (ht : t.TameRel) (hw : t.WildRel) (x x' : Fin 4A) (y : Fin 4ElemDual A) (hb : x - x' B1w t) (hy : y Z1w t) :
mixedB t x y = mixedB t x' y

mixedB is invariant under changing the primal argument by a coboundary (against a cocycle dual): B(x + d⁰a, y) = B(x, y) since B(d⁰a, y) = ⟨a, L(y)⟩ = 0 (prop_5_8_left, y a cocycle). Uses mixedB bilinearity.

theorem GQ2.FoxH.mixedB_right_congr {C : Type u_1} [Group C] [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (ht : t.TameRel) (hw : t.WildRel) (x : Fin 4A) (y y' : Fin 4ElemDual A) (hb : y - y' B1w t) (hx : x Z1w t) :
mixedB t x y = mixedB t x y'

Dual version: B(x, y + d⁰λ) = B(x, y) (prop_5_8_right, x a cocycle).

theorem GQ2.FoxH.clause3_of_normalForm {C : Type u_1} [Group C] [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (ht : t.TameRel) (hw : t.WildRel) (hx0memA : ∀ (c : A), x0Supported c Z1w t) (hnfA : xZ1w t, ∃! c : A, x - x0Supported c B1w t) (hx0memD : ∀ (lam : ElemDual A), x0Supported lam Z1w t) (hnfD : yZ1w t, ∃! lam : ElemDual A, y - x0Supported lam B1w t) (hndL : ∀ (c : A), c 0∃ (lam : ElemDual A), mixedB t (x0Supported c) (x0Supported lam) 0) (hndR : ∀ (lam : ElemDual A), lam 0∃ (c : A), mixedB t (x0Supported c) (x0Supported lam) 0) :
∃ (P : H1w tH1w tZMod 2), (∀ (x : (Z1w t)) (y : (Z1w t)), P (h1wMk t x) (h1wMk t y) = mixedB t x y) (∀ (h : H1w t), h 0∃ (h' : H1w t), P h h' 0) ∀ (h' : H1w t), h' 0∃ (h : H1w t), P h h' 0

Clause 3 (degree-one perfect pairing) from a normal form. Given that x₀-supported cochains x0Supported c are cocycles and hit every H¹w class uniquely (the normal form of lemma_5_13, for both A and A∨), and that the induced pairing c, λ ↦ B(x0Supported c, x0Supported λ) is nondegenerate on both sides, mixedB descends to a perfect pairing H¹w(A) × H¹w(A∨) → 𝔽₂. Descent uses mixedB_left_congr/mixedB_right_congr; nondegeneracy transports through the normal-form identification H¹w ≅ A.

Split simple case: Z¹w/B¹w shapes, normal form, x₀-support #

These are phrased against the split shapes (rather than lemma_5_13_split directly) so they apply equally to A and its contragredient dual A∨: the dual is split with trivial wild action whenever A is, without needing "the dual of a simple module is simple".

theorem GQ2.FoxH.split_shapes_of_wild {C : Type u_1} [Group C] [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (ht : t.TameRel) (hV₂ : ∀ (v : A), v + v = 0) (hx0 : ∀ (v : A), t.x₀ v = v) (hx1 : ∀ (v : A), t.x₁ v = v) (htau : ∀ (v : A), t.τ v = v) (hU : ∀ (v : A), t.sigma2 v = v) (hVS : ∀ (v : A), t.σ v = vv = 0) :
(∀ (x : Fin 4A), x Z1w t x 1 = 0 x 3 = 0) ∀ (y : Fin 4A), y B1w t ∃ (v : A), y = ![t.σ v - v, 0, 0, 0]

The split Z¹w/B¹w shapes from a trivial wild action (hx0, hx1) rather than from simplicity — the body of lemma_5_13_split with wild_acts_trivially factored out as hypotheses, so it is usable on A∨ (where wild-triviality comes from the contragredient of A's).

theorem GQ2.FoxH.x0mem_of_Z1wShape {C : Type u_1} [Group C] [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (hZ : ∀ (x : Fin 4A), x Z1w t x 1 = 0 x 3 = 0) (c : A) :

The x₀-supported cochains are cocycles, straight from the split Z¹w shape.

theorem GQ2.FoxH.normalForm_of_shapes {C : Type u_1} [Group C] [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (hZ : ∀ (x : Fin 4A), x Z1w t x 1 = 0 x 3 = 0) (hB : ∀ (y : Fin 4A), y B1w t ∃ (v : A), y = ![t.σ v - v, 0, 0, 0]) (hVS : ∀ (v : A), t.σ v = vv = 0) (x : Fin 4A) :
x Z1w t∃! c : A, x - x0Supported c B1w t

Split normal form: from the Z¹w/B¹w shapes and surjectivity of σ − 1 (from V^S = 0, hVS), every degree-one class has a unique x₀-supported representative.

Split simple case: IsSelfDual #

theorem GQ2.FoxH.selfDual_of_split {C : Type u_1} [Group C] [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (ht : t.TameRel) (hw : t.WildRel) (hgen : t.Generates) (hV₂ : ∀ (v : A), v + v = 0) (hsimple : IsSimpleModTwo C A) (hcore : t.Pro2Core) (htau : ∀ (v : A), t.τ v = v) ( : ∃ (v : A), t.σ v v) :

Proposition 5.15, split simple case. A nontrivial simple module on which τ acts trivially (htau) and σ acts nontrivially () is self-dual. The σ-tameness hU and fixed-point freeness hVS come from the tame representation-theory proof; the contragredient dual A∨ inherits split + trivial-wild action from A (via ElemDual.smul_apply), giving both normal forms; the cards close clauses 1–2 and clause3_of_normalForm (with the split pairing (c,λ) ↦ λ(c)) closes clause 3.

theorem GQ2.FoxH.selfDual_of_trivial_action {C : Type u_1} [Group C] [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (ht : t.TameRel) (hw : t.WildRel) (hgen : t.Generates) (hV₂ : ∀ (v : A), v + v = 0) ( : ∀ (v : A), t.σ v = v) (htau : ∀ (v : A), t.τ v = v) (hx0 : ∀ (v : A), t.x₀ v = v) (hx1 : ∀ (v : A), t.x₁ v = v) :

Trivial-action case. If all four generators act trivially then (by hgen) every element of C does, and the module is self-dual by trivialSelfDual. This is the split sub-case where σ also acts trivially.

Ramified simple case #

theorem GQ2.FoxH.elemDual_smul_trivial_of {C : Type u_1} [Group C] {A : Type u_2} [AddCommGroup A] [DistribMulAction C A] (g : C) (hg : ∀ (a : A), g a = a) (l : ElemDual A) :
g l = l

Elementwise contragredient triviality: if g acts trivially on A it acts trivially on A∨ ((g•λ)a = λ(g⁻¹•a) = λ(a)).

theorem GQ2.FoxH.x0Supported_mem_Z1w_ramified {C : Type u_1} [Group C] [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (ht : t.TameRel) (hV₂ : ∀ (v : A), v + v = 0) (hx0 : ∀ (v : A), t.x₀ v = v) (hx1 : ∀ (v : A), t.x₁ v = v) (htau : ∀ (v : A), t.τ v = vv = 0) (hTodd : ∀ (v : A), powOmega2 t.τ v = v) (c : A) :

In the ramified case the x₀-supported cochains are cocycles: the tame row (d1Fun_tame) involves only coordinates 0 and 1, the wild row is S⁻¹x₃ (liftMarking_wildValue_u_ramified), and all three coordinates vanish on x0Supported c.

theorem GQ2.FoxH.selfDual_of_ramified {C : Type u_1} [Group C] [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (ht : t.TameRel) (hw : t.WildRel) (hgen : t.Generates) (hV₂ : ∀ (v : A), v + v = 0) (hsimple : IsSimpleModTwo C A) (hcore : t.Pro2Core) (htau : ∀ (v : A), t.τ v = vv = 0) :

Proposition 5.15, ramified simple case. A simple module with V^T = 0 is self-dual. hTodd (τ odd-order) is derived (tau_powOmega2_smul_trivial); the dual A∨ inherits wild-triviality and hTodd (contragredient) and τ-fixed-point-freeness ((τ⁻¹−1) surjective); the pairing λ((1+U+U⁻¹)c) (lemma_5_13_pairing_ramified) is perfect because the operator 1+U+U⁻¹ is unipotent, hence bijective (sigma2_pairing_operator_injective) — no σ-tameness hU anywhere (it is not derivable: S₃/C₅⋊C₄ admissible counterexamples).

theorem GQ2.FoxH.selfDual_of_split_case {C : Type u_1} [Group C] [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (ht : t.TameRel) (hw : t.WildRel) (hgen : t.Generates) (hV₂ : ∀ (v : A), v + v = 0) (hsimple : IsSimpleModTwo C A) (hcore : t.Pro2Core) (htau : ∀ (v : A), t.τ v = v) :

Split case of a simple module (complete). When τ acts trivially, the simple module is self-dual — whether σ acts nontrivially (selfDual_of_split) or trivially (selfDual_of_trivial_action). This closes the entire V^T = V branch of the tau_split_or_ramified dichotomy.

theorem GQ2.FoxH.selfDual_of_simple {C : Type u_1} [Group C] [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (ht : t.TameRel) (hw : t.WildRel) (hgen : t.Generates) (hcore : t.Pro2Core) (hV₂ : ∀ (v : A), v + v = 0) (hsimple : IsSimpleModTwo C A) :

The simple case of prop_5_15, unconditional: every finite simple char-2 module at an admissible-style marking is self-dual. Dispatches on the tau_split_or_ramified dichotomy — selfDual_of_split_case for V^T = V, selfDual_of_ramified for V^T = 0. This is exactly the hsimp input the dévissage induction (prop_5_15_of_simple) consumes.

theorem GQ2.FoxH.prop_5_15 {C : Type u_1} [Group C] [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A] (t : Marking C) (ht : t.TameRel) (hw : t.WildRel) (hgen : t.Generates) (hA₂ : ∀ (a : A), a + a = 0) (hcore : t.Pro2Core) :

Prop. 5.15 (candidate deformation duality): the Fox–Heisenberg chain map is a quasi-isomorphism for every finite elementary module — packaged: the display-(56) numerics hold and the descended B-pairing is perfect.

The composition: the dévissage strong induction prop_5_15_of_simple (GQ2/DevissageInduction.lean, via lemma_5_11 along 0 → W → A → A/W → 0 for a proper C-stable W) reduces to the simple case, which selfDual_of_simple closes by the tau_split_or_ramified dichotomy — split (lemma_5_13_split + the tame representation-theory providers) or ramified (lemma_5_13_ramified + hTodd derived + the unipotent pairing operator).

Relocated here from GQ2/FoxHeisenberg.lean (statement unchanged, same fully qualified name GQ2.FoxH.prop_5_15): the proof needs the dévissage and the simple-case assembly, which import that file.

Paper-tag ledger (auto-generated by paperforge; do not edit) #