Blueprint: a profinite presentation of the absolute Galois group of ℚ₂

6. Linear lifting theory and duality🔗

Lemma6.1
uses 0used by 0L∃∀N

Lemma 5.2 of the paper (Exact class-two identity).

Let

1\longrightarrow Z\longrightarrow\widetilde V\longrightarrow V\longrightarrow1

be a central extension in which V and Z are elementary abelian 2-groups, and let \phi be an automorphism of \widetilde V fixing Z. For X,D\in\widetilde V, put

\mathfrak h_\phi(X,D) =\phi(X)X\,\phi(D)D\,D^2[\phi(D),D].

Then

\mathfrak h_\phi(X,D)=\phi(X)X D^{-1}\phi(D).

Consequently:

  1. if D and X have the same image in V, then \mathfrak h_\phi(X,D)=X^2;

  2. if \phi is the identity, then \mathfrak h_\phi(X,D)=X^2 for every D.

Lean code for Lemma6.13 theorems
  • theoremdefined in GQ2/FoxHeisenberg/Traced.lean
    complete
    theorem GQ2.FoxH.classTwoCore.{u_1} {G : Type u_1} [Group G] (A B : G)
      (hcentral :  (z : G), GQ2.commP A B * z = z * GQ2.commP A B)
      (hk2 : GQ2.commP A B * GQ2.commP A B = 1) (hB4 : B ^ 4 = 1) :
      A * B * B ^ 2 * GQ2.commP A B = B⁻¹ * A
    theorem GQ2.FoxH.classTwoCore.{u_1} {G : Type u_1}
      [Group G] (A B : G)
      (hcentral :
         (z : G),
          GQ2.commP A B * z =
            z * GQ2.commP A B)
      (hk2 :
        GQ2.commP A B * GQ2.commP A B = 1)
      (hB4 : B ^ 4 = 1) :
      A * B * B ^ 2 * GQ2.commP A B = B⁻¹ * A
    **Lemma 5.2, core cancellation.**  If the commutator `k = [A,B]` (`commP` convention
    `A⁻¹B⁻¹AB`) is central and satisfies `k² = 1`, and `B⁴ = 1`, then `A·B·B²·[A,B] = B⁻¹·A`.
    This is display (32) after cancelling the common prefix `ϕ(X)·X` (with `A = ϕ(D)`, `B = D`).
    
    The proof is the paper's: from `A·B = B·A·k` (`hcomm`), `k` central and `k² = 1` give that `A`
    commutes with `B²`, and `B³ = B⁻¹`; then `A·B·B²·k = B·A·B² = B³·A = B⁻¹·A`.  The associativity
    bookkeeping is discharged by right-normalising with `simp only [mul_assoc, …]`, feeding the
    commutator relation in the right-associated form `A·(B·x) = B·(A·(k·x))` so it fires under the
    normal form. 
  • theoremdefined in GQ2/FoxHeisenberg/Traced.lean
    complete
    theorem GQ2.FoxH.classTwoIdentity.{u_1} {G : Type u_1} [Group G] (φ : G  G)
      (X D : G)
      (hcentral :  (z : G), GQ2.commP (φ D) D * z = z * GQ2.commP (φ D) D)
      (hk2 : GQ2.commP (φ D) D * GQ2.commP (φ D) D = 1) (hD4 : D ^ 4 = 1) :
      φ X * X * φ D * D * D ^ 2 * GQ2.commP (φ D) D = φ X * X * D⁻¹ * φ D
    theorem GQ2.FoxH.classTwoIdentity.{u_1}
      {G : Type u_1} [Group G] (φ : G  G)
      (X D : G)
      (hcentral :
         (z : G),
          GQ2.commP (φ D) D * z =
            z * GQ2.commP (φ D) D)
      (hk2 :
        GQ2.commP (φ D) D *
            GQ2.commP (φ D) D =
          1)
      (hD4 : D ^ 4 = 1) :
      φ X * X * φ D * D * D ^ 2 *
          GQ2.commP (φ D) D =
        φ X * X * D⁻¹ * φ D
    **Lemma 5.2, display (32)**: `h_ϕ(X,D) = ϕ(X)·X·ϕ(D)·D·D²·[ϕ(D),D] = ϕ(X)·X·D⁻¹·ϕ(D)`,
    whenever `[ϕ(D),D]` is central of order ≤ 2 and `D⁴ = 1`.  (`ϕ` need not be a homomorphism for the
    identity; the paper's `ϕ` is a `Z`-fixing automorphism, which is what makes the hypotheses hold for
    the actual `h₀`.) 
  • theoremdefined in GQ2/FoxHeisenberg/Traced.lean
    complete
    theorem GQ2.FoxH.classTwoIdentity_id.{u_1} {G : Type u_1} [Group G] (X D : G)
      (hD4 : D ^ 4 = 1) : X * X * D * D * D ^ 2 * GQ2.commP D D = X ^ 2
    theorem GQ2.FoxH.classTwoIdentity_id.{u_1}
      {G : Type u_1} [Group G] (X D : G)
      (hD4 : D ^ 4 = 1) :
      X * X * D * D * D ^ 2 * GQ2.commP D D =
        X ^ 2
    **Lemma 5.2(ii)**: when `ϕ = id`, `h_ϕ(X,D) = X²` for every `D` (`[D,D] = 1`).  Used in the
    split (`P = 1`) branch of the `h₀`-shadow, where `g₀ = σ₂²` acts trivially. 
Lemma6.2
uses 0
Used by 2
Reverse dependency previews
Preview
Proposition 6.4
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

Lemma 5.6 of the paper (Strict coefficient naturality).

For every C-module map f:A\to A', the mixed derivatives satisfy

\beta^{A'}_{\rho,r}(f_*a,\lambda') =\beta^A_{\rho,r}(a,f^\vee\lambda').

Lean code for Lemma6.21 theorem
  • theoremdefined in GQ2/FoxHeisenberg/Traced.lean
    complete
    theorem GQ2.FoxH.lemma_5_6.{u_1, u_2, u_3} {C : Type u_1} [Group C]
      {A : Type u_2} [AddCommGroup A] [DistribMulAction C A] {A' : Type u_3}
      [AddCommGroup A'] [DistribMulAction C A'] [Finite A] [Finite A']
      [Finite C] (f : A →+ A') (hf :  (g : C) (a : A), f (g  a) = g  f a)
      (t : GQ2.Marking C) (x : Fin 4  A)
      (y' : Fin 4  GQ2.FoxH.ElemDual A') :
      GQ2.FoxH.mixedB t (fun i => f (x i)) y' =
        GQ2.FoxH.mixedB t x fun i => AddMonoidHom.comp (y' i) f
    theorem GQ2.FoxH.lemma_5_6.{u_1, u_2, u_3}
      {C : Type u_1} [Group C] {A : Type u_2}
      [AddCommGroup A] [DistribMulAction C A]
      {A' : Type u_3} [AddCommGroup A']
      [DistribMulAction C A'] [Finite A]
      [Finite A'] [Finite C] (f : A →+ A')
      (hf :
         (g : C) (a : A),
          f (g  a) = g  f a)
      (t : GQ2.Marking C) (x : Fin 4  A)
      (y' : Fin 4  GQ2.FoxH.ElemDual A') :
      GQ2.FoxH.mixedB t (fun i => f (x i))
          y' =
        GQ2.FoxH.mixedB t x fun i =>
          AddMonoidHom.comp (y' i) f
    **Lemma 5.6 (strict coefficient naturality)**, in the traced form Prop 5.10 uses: for an
    equivariant `f : A → A'`, `B_{A'}(f∗x, y') = B_A(x, f^∨ y')`.
    
    Proof (the paper's "evaluate in the mixed Heisenberg group"): the two markings live in
    `H(A') ⋊ C` and `H(A) ⋊ C`, related by `f` on the `A`-slot and `f^∨` on the dual slot.  They both
    sit inside the **mixed subgroup** `S ≤ H(A') ⋊ C × H(A) ⋊ C` cut out by "`f`-related `a`/`λ`,
    equal `z`, equal `g`" — a subgroup precisely because `f` is `C`-equivariant.  The two projections
    `π₁, π₂ : S →* …` carry the mixed marking to the two sides (`Marking.map_tameValue`/`map_wildValue`,
    the latter needing `S` finite for the `ω₂`-powers), and `S`'s defining `z`-equation makes the two
    relator `z`-coordinates agree — which is exactly the claim.
    
    (Requires `A`, `A'`, `C` finite, the paper's finite setting: `map_wildValue`'s `ω₂` push needs the
    source group finite.) 
Lemma6.3
uses 0used by 1L∃∀N

Lemma 5.7 of the paper (Finite-word Stokes formula).

Let F_n=\langle g_1,\dots,g_n\rangle be a free group, let \rho:F_n\to C be a homomorphism to a finite group, and write c_i=\rho(g_i). Let r\in F_n be an ordinary finite word with \rho(r)=1, and let \epsilon_i(r)\in\F_2 be the total exponent of g_i in r, reduced modulo 2.

For x=(x_i)\in A^n and y=(y_i)\in(A^\vee)^n, evaluate r after replacing g_i by (x_i,y_i,0;c_i)\in\mathcal H(A)\rtimes C. Write the result as

\bigl(L_r^A(x),L_r^{A^\vee}(y),\beta_r(x,y);1\bigr).

Then, for a\in A and \lambda\in A^\vee,

beta_r(d^0a,y) &=langle a,L_r^{notn{Amod}{A}^vee}(y)rangle +sum_{i=1}^nepsilon_i(r),y_i(c_i a), beta_r(x,d^0lambda) &=langle L_r^notn{Amod}{A}(x),lambdarangle +sum_{i=1}^nepsilon_i(r),lambda(x_i),

where

d^0a=((c_i-1)a)_i, \qquad d^0\lambda=((c_i-1)\lambda)_i.

Consequently, for words r_1,\dots,r_m and coefficients t_j\in\F_2 satisfying

\sum_{j=1}^m t_j\epsilon_i(r_j)=0 \qquad(1\le i\le n),

the corresponding traced mixed coordinate satisfies the two Stokes identities without correction terms.

Lean code for Lemma6.32 theorems
  • theoremdefined in GQ2/FoxHeisenberg/Heisenberg.lean
    complete
    theorem GQ2.FoxH.lemma_5_7_left.{u_1, u_2} {C : Type u_1} [Group C]
      {A : Type u_2} [AddCommGroup A] [DistribMulAction C A] {n : }
      (c : Fin n  C) (r : FreeGroup (Fin n))
      (hr : (FreeGroup.lift c) r = 1) (a : A)
      (y : Fin n  GQ2.FoxH.ElemDual A) :
      ((GQ2.FoxH.stokesEval c (fun i => c i  a - a) y) r).z =
        ((GQ2.FoxH.stokesEval c 0 y) r).l a +
           i,
            Multiplicative.toAdd ((GQ2.FoxH.expMod2 i) r) * (y i) (c i  a)
    theorem GQ2.FoxH.lemma_5_7_left.{u_1, u_2}
      {C : Type u_1} [Group C] {A : Type u_2}
      [AddCommGroup A] [DistribMulAction C A]
      {n : } (c : Fin n  C)
      (r : FreeGroup (Fin n))
      (hr : (FreeGroup.lift c) r = 1) (a : A)
      (y : Fin n  GQ2.FoxH.ElemDual A) :
      ((GQ2.FoxH.stokesEval c
              (fun i => c i  a - a) y)
            r).z =
        ((GQ2.FoxH.stokesEval c 0 y) r).l a +
           i,
            Multiplicative.toAdd
                ((GQ2.FoxH.expMod2 i) r) *
              (y i) (c i  a)
    **Lemma 5.7, display (38)**: for a word `r` with trivial lower value, evaluating at the
    generic coboundary `x = d⁰a = ((cᵢ−1)a)ᵢ` gives
    `β_r(d⁰a, y) = ⟨a, L^{A^∨}_r(y)⟩ + Σᵢ εᵢ(r)·yᵢ(cᵢa)`. 
  • theoremdefined in GQ2/FoxHeisenberg/Heisenberg.lean
    complete
    theorem GQ2.FoxH.lemma_5_7_right.{u_1, u_2} {C : Type u_1} [Group C]
      {A : Type u_2} [AddCommGroup A] [DistribMulAction C A] {n : }
      (c : Fin n  C) (r : FreeGroup (Fin n))
      (_hr : (FreeGroup.lift c) r = 1) (x : Fin n  A)
      (lam : GQ2.FoxH.ElemDual A) :
      ((GQ2.FoxH.stokesEval c x fun i => c i  lam - lam) r).z =
        lam ((GQ2.FoxH.stokesEval c x 0) r).a +
           i, Multiplicative.toAdd ((GQ2.FoxH.expMod2 i) r) * lam (x i)
    theorem GQ2.FoxH.lemma_5_7_right.{u_1, u_2}
      {C : Type u_1} [Group C] {A : Type u_2}
      [AddCommGroup A] [DistribMulAction C A]
      {n : } (c : Fin n  C)
      (r : FreeGroup (Fin n))
      (_hr : (FreeGroup.lift c) r = 1)
      (x : Fin n  A)
      (lam : GQ2.FoxH.ElemDual A) :
      ((GQ2.FoxH.stokesEval c x fun i =>
              c i  lam - lam)
            r).z =
        lam
            ((GQ2.FoxH.stokesEval c x 0)
                r).a +
           i,
            Multiplicative.toAdd
                ((GQ2.FoxH.expMod2 i) r) *
              lam (x i)
    **Lemma 5.7, display (39)**: the dual-variable form,
    `β_r(x, d⁰λ) = ⟨L^A_r(x), λ⟩ + Σᵢ εᵢ(r)·λ(xᵢ)`.  (The lower-value hypothesis `hr` is recorded for
    symmetry with the left form; the dual central defect is `g`-independent, so it is not needed
    here.) 
Proposition6.4
uses 0used by 1L∃∀N

Proposition 5.8 of the paper (Traced finite-word Stokes identity).

Let \beta_{\mathrm t} and \beta_{\mathrm w} be the mixed central coordinates obtained from the tame and wild relators, and set

\mathcal B_{\rho,A}=\beta_{\mathrm t}+\beta_{\mathrm w}.

Let L_{\mathrm t} and L_{\mathrm w} denote the two unnormalized first relation differentials. Then, before passage to cohomology,

mathcal B_{rho,notn{Amod}{A}}(d^0_{rho,notn{Amod}{A}}a,y) &=langle a, L_{mathrm t}^{notn{Amod}{A}^vee}(y)+L_{mathrm w}^{notn{Amod}{A}^vee}(y)rangle, mathcal B_{rho,notn{Amod}{A}}(x,d^0_{rho,notn{Amod}{A}^vee}lambda) &=langle L_{mathrm t}^{notn{Amod}{A}}(x)+L_{mathrm w}^{notn{Amod}{A}}(x),lambdarangle.

The identities are natural in A. They are assertions about the sum of the two relator coordinates; in general they are false for either relator separately.

Lean code for Proposition6.42 theorems
  • theoremdefined in GQ2/FoxHeisenberg/Traced.lean
    complete
    theorem GQ2.FoxH.prop_5_8_left.{u_1, u_2} {C : Type u_1} [Group C]
      {A : Type u_2} [AddCommGroup A] [DistribMulAction C A] [Finite A]
      [Finite C] (t : GQ2.Marking C) (ht : t.TameRel) (hw : t.WildRel)
      (a : A) (y : Fin 4  GQ2.FoxH.ElemDual A) :
      GQ2.FoxH.mixedB t ((GQ2.FoxH.d0 t) a) y =
        ((GQ2.FoxH.d1Fun t y).1 + (GQ2.FoxH.d1Fun t y).2) a
    theorem GQ2.FoxH.prop_5_8_left.{u_1, u_2}
      {C : Type u_1} [Group C] {A : Type u_2}
      [AddCommGroup A] [DistribMulAction C A]
      [Finite A] [Finite C]
      (t : GQ2.Marking C) (ht : t.TameRel)
      (hw : t.WildRel) (a : A)
      (y : Fin 4  GQ2.FoxH.ElemDual A) :
      GQ2.FoxH.mixedB t ((GQ2.FoxH.d0 t) a)
          y =
        ((GQ2.FoxH.d1Fun t y).1 +
            (GQ2.FoxH.d1Fun t y).2)
          a
    **Prop 5.8, display (41)** (= chain identity (47) of Prop 5.10 under the canonical
    identifications): `B_{ρ,A}(d⁰a, y) = ⟨a, L^{A^∨}_t(y) + L^{A^∨}_w(y)⟩`, where the dual
    first relation differentials are `d1Fun` on `A^∨`.
    
    The proof follows the paper's statement on p. 17.  The tame summand is
    `mixedB_tameRow` — `⟨a, L^{A^∨}_t(y)⟩ + y_τ(τ·a)` (tame ε-vector `(0,1,0,0)`, `expMod2_fgTame`);
    the wild summand comes from `bridge_wild` + `lemma_5_7_left` with ε-vector
    `(0, e, 0, e+1) = (0,1,0,0)` at the odd `ω₂`-representative (`expMod2_wildValueExp`), i.e.
    `⟨a, L^{A^∨}_w(y)⟩ + y_τ(τ·a)`; the two `y_τ(τ·a)` corrections cancel (char 2), which is exactly
    condition (40) for the `(1,1)` trace.  (An earlier apparent inconsistency here was a repo-side
    `h₀` transcription bug, resolved — see `docs/erratum-h0-transcription.md`.) 
  • theoremdefined in GQ2/FoxHeisenberg/Traced.lean
    complete
    theorem GQ2.FoxH.prop_5_8_right.{u_1, u_2} {C : Type u_1} [Group C]
      {A : Type u_2} [AddCommGroup A] [DistribMulAction C A] [Finite A]
      [Finite C] (t : GQ2.Marking C) (ht : t.TameRel) (hw : t.WildRel)
      (x : Fin 4  A) (lam : GQ2.FoxH.ElemDual A) :
      GQ2.FoxH.mixedB t x ((GQ2.FoxH.d0 t) lam) =
        lam ((GQ2.FoxH.d1Fun t x).1 + (GQ2.FoxH.d1Fun t x).2)
    theorem GQ2.FoxH.prop_5_8_right.{u_1, u_2}
      {C : Type u_1} [Group C] {A : Type u_2}
      [AddCommGroup A] [DistribMulAction C A]
      [Finite A] [Finite C]
      (t : GQ2.Marking C) (ht : t.TameRel)
      (hw : t.WildRel) (x : Fin 4  A)
      (lam : GQ2.FoxH.ElemDual A) :
      GQ2.FoxH.mixedB t x
          ((GQ2.FoxH.d0 t) lam) =
        lam
          ((GQ2.FoxH.d1Fun t x).1 +
            (GQ2.FoxH.d1Fun t x).2)
    **Prop 5.8, display (42)** (= chain identity (48)): `B_{ρ,A}(x, d⁰λ) = ⟨L_t(x)+L_w(x), λ⟩`.
    Proved as stated: `mixedB = tameRow + wildRow`, and the two `λ(x_τ)` corrections cancel (char 2). 
Proof for Proposition 6.4
Proof uses 2
Proof dependency previews
Preview
Lemma 6.2
Loading preview
Proof dependency preview content is loaded from the rendered-fragment cache.

Proved in §5 of the paper. Ingredients: Lemma 6.3 Lemma 6.2.

Lemma6.5
uses 0used by 1L∃∀N

Lemma 5.11 of the paper (Exact cone dévissage).

For an elementary \F_2[C]-module A, put

K(A)=\Cone\!\left( D_{\rho,A}:C^\bullet_{\rho,A}\longrightarrow \Hom_{\F_2}(C^\bullet_{\rho,A^\vee},\F_2)[-2] \right).

For every short exact sequence of finite \F_2[C]-modules

0\longrightarrow A'\longrightarrow A\longrightarrow A''\longrightarrow0,

there is a degreewise short exact sequence of complexes

0\longrightarrow K(A')\longrightarrow K(A)\longrightarrow K(A'') \longrightarrow0.

Consequently, if two of K(A'), K(A), and K(A'') are acyclic, then so is the third. In particular, acyclicity for all simple modules implies acyclicity for every elementary module, including nonsplit and nonsemisimple modules.

Lean code for Lemma6.52 theorems
  • theoremdefined in GQ2/Devissage/GeneratesBridge.lean
    complete
    theorem GQ2.FoxH.lemma_5_11.{u_1, u_2, u_3, u_4} {C : Type u_1} [Group C]
      [Finite C] {A : Type u_2} {A' : Type u_3} {A'' : Type u_4}
      [AddCommGroup A] [DistribMulAction C A] [AddCommGroup A']
      [DistribMulAction C A'] [AddCommGroup A''] [DistribMulAction C A'']
      [Finite A'] [Finite A] [Finite A''] (t : GQ2.Marking C)
      (ht : t.TameRel) (hw : t.WildRel) (hgen : t.Generates)
      (hA₂ :  (a : A), a + a = 0) (f : A' →+ A) (g : A →+ A'')
      (hf :  (c : C) (a : A'), f (c  a) = c  f a)
      (hg :  (c : C) (a : A), g (c  a) = c  g a)
      (hinj : Function.Injective f) (hsurj : Function.Surjective g)
      (hexact : f.range = g.ker) :
      (GQ2.FoxH.IsSelfDual t A'  GQ2.FoxH.IsSelfDual t A'' 
          GQ2.FoxH.IsSelfDual t A) 
        (GQ2.FoxH.IsSelfDual t A'  GQ2.FoxH.IsSelfDual t A 
            GQ2.FoxH.IsSelfDual t A'') 
          (GQ2.FoxH.IsSelfDual t A  GQ2.FoxH.IsSelfDual t A'' 
            GQ2.FoxH.IsSelfDual t A')
    theorem GQ2.FoxH.lemma_5_11.{u_1, u_2, u_3, u_4}
      {C : Type u_1} [Group C] [Finite C]
      {A : Type u_2} {A' : Type u_3}
      {A'' : Type u_4} [AddCommGroup A]
      [DistribMulAction C A] [AddCommGroup A']
      [DistribMulAction C A']
      [AddCommGroup A'']
      [DistribMulAction C A''] [Finite A']
      [Finite A] [Finite A'']
      (t : GQ2.Marking C) (ht : t.TameRel)
      (hw : t.WildRel) (hgen : t.Generates)
      (hA₂ :  (a : A), a + a = 0)
      (f : A' →+ A) (g : A →+ A'')
      (hf :
         (c : C) (a : A'),
          f (c  a) = c  f a)
      (hg :
         (c : C) (a : A),
          g (c  a) = c  g a)
      (hinj : Function.Injective f)
      (hsurj : Function.Surjective g)
      (hexact : f.range = g.ker) :
      (GQ2.FoxH.IsSelfDual t A' 
            GQ2.FoxH.IsSelfDual t A'' 
          GQ2.FoxH.IsSelfDual t A) 
        (GQ2.FoxH.IsSelfDual t A' 
              GQ2.FoxH.IsSelfDual t A 
            GQ2.FoxH.IsSelfDual t A'') 
          (GQ2.FoxH.IsSelfDual t A 
              GQ2.FoxH.IsSelfDual t A'' 
            GQ2.FoxH.IsSelfDual t A')
    **Lemma 5.11 (exact cone dévissage)**, stated as its consequence: along a short exact
    sequence of finite elementary `𝔽₂[C]`-modules over a *generating* marking, self-duality
    satisfies two-out-of-three.  Proved via the word-internal dévissage `selfdualW_two_of_three`
    and the `Generates` bridge `isSelfDual_iff_W`. 
  • theoremdefined in GQ2/Devissage/LESMaster.lean
    complete
    theorem GQ2.FoxH.selfdualW_two_of_three.{u_1, u_2, u_3, u_4} {C : Type u_1}
      [Group C] {A' : Type u_2} {A : Type u_3} {A'' : Type u_4}
      [AddCommGroup A'] [DistribMulAction C A'] [Finite A'] [AddCommGroup A]
      [DistribMulAction C A] [Finite A] [AddCommGroup A'']
      [DistribMulAction C A''] [Finite A''] [Finite C] (f : A' →+ A)
      (g : A →+ A'') (hf :  (c : C) (a : A'), f (c  a) = c  f a)
      (hg :  (c : C) (a : A), g (c  a) = c  g a)
      (hinj : Function.Injective f) (hsurj : Function.Surjective g)
      (hexact : f.range = g.ker) (hA₂ :  (a : A), a + a = 0)
      (t : GQ2.Marking C) (ht : t.TameRel) (hw : t.WildRel) :
      (GQ2.FoxH.IsSelfDualW t A'  GQ2.FoxH.IsSelfDualW t A'' 
          GQ2.FoxH.IsSelfDualW t A) 
        (GQ2.FoxH.IsSelfDualW t A'  GQ2.FoxH.IsSelfDualW t A 
            GQ2.FoxH.IsSelfDualW t A'') 
          (GQ2.FoxH.IsSelfDualW t A  GQ2.FoxH.IsSelfDualW t A'' 
            GQ2.FoxH.IsSelfDualW t A')
    theorem GQ2.FoxH.selfdualW_two_of_three.{u_1, u_2,
        u_3, u_4}
      {C : Type u_1} [Group C] {A' : Type u_2}
      {A : Type u_3} {A'' : Type u_4}
      [AddCommGroup A']
      [DistribMulAction C A'] [Finite A']
      [AddCommGroup A] [DistribMulAction C A]
      [Finite A] [AddCommGroup A'']
      [DistribMulAction C A''] [Finite A'']
      [Finite C] (f : A' →+ A) (g : A →+ A'')
      (hf :
         (c : C) (a : A'),
          f (c  a) = c  f a)
      (hg :
         (c : C) (a : A),
          g (c  a) = c  g a)
      (hinj : Function.Injective f)
      (hsurj : Function.Surjective g)
      (hexact : f.range = g.ker)
      (hA₂ :  (a : A), a + a = 0)
      (t : GQ2.Marking C) (ht : t.TameRel)
      (hw : t.WildRel) :
      (GQ2.FoxH.IsSelfDualW t A' 
            GQ2.FoxH.IsSelfDualW t A'' 
          GQ2.FoxH.IsSelfDualW t A) 
        (GQ2.FoxH.IsSelfDualW t A' 
              GQ2.FoxH.IsSelfDualW t A 
            GQ2.FoxH.IsSelfDualW t A'') 
          (GQ2.FoxH.IsSelfDualW t A 
              GQ2.FoxH.IsSelfDualW t A'' 
            GQ2.FoxH.IsSelfDualW t A')
    **Lemma 5.11, word-internal form (exact-cone dévissage)**: two-out-of-three for
    `IsSelfDualW` along the module SES.  Proof: translate each `IsSelfDualW` into
    `χ`-bijectivities (`isSelfDualW_iff`, `chi_bij_of_selfdualW`), then chase the duality ladder —
    nine four-lemma windows across the two LESs (word complex of the SES, and of its dualization)
    tied by the `lemma_5_6`-squares, the evaluation squares and the δ-squares. 
Proof for Lemma 6.5

Proved in §5 of the paper. Ingredients: Lemma 6.2.

Lemma6.6
uses 0used by 1L∃∀N

Lemma 5.12 of the paper (Simple characteristic-two modules are tame).

Let V be a simple \F_2[C]-module occurring in the induction. Then the marked normal 2-subgroup of C acts trivially on V. Hence V factors through the finite tame quotient of C.

Lean code for Lemma6.61 theorem
  • theoremdefined in GQ2/FoxHeisenberg/Traced.lean
    complete
    theorem GQ2.FoxH.lemma_5_12.{u_1, u_3} {C : Type u_1} [Group C] {V : Type u_3}
      [AddCommGroup V] [DistribMulAction C V] [Finite V]
      (hV₂ :  (v : V), v + v = 0) (hsimple : GQ2.FoxH.IsSimpleModTwo C V)
      (L : Subgroup C) (hnormal : L.Normal) (hL : IsPGroup 2 L) (g : C) :
      g  L   (v : V), g  v = v
    theorem GQ2.FoxH.lemma_5_12.{u_1, u_3}
      {C : Type u_1} [Group C] {V : Type u_3}
      [AddCommGroup V] [DistribMulAction C V]
      [Finite V] (hV₂ :  (v : V), v + v = 0)
      (hsimple : GQ2.FoxH.IsSimpleModTwo C V)
      (L : Subgroup C) (hnormal : L.Normal)
      (hL : IsPGroup 2 L) (g : C) :
      g  L   (v : V), g  v = v
    **Lemma 5.12 (simple characteristic-two modules are tame)**: a normal 2-subgroup `L ◁ C`
    acts trivially on every simple `𝔽₂[C]`-module.  Proof: the `L`-fixed subspace is nonzero (the
    `p`-group congruence `#V ≡ #Vᴸ (mod 2)` with `#V` even) and `C`-stable (`L` normal), so
    simplicity forces it to be all of `V`.  (Proved for the §5 proof layer, as part of the Heisenberg
    word-evaluation core — `d1Fun_add`, `d1Fun_comp_d0`, Lemma 5.6, Lemma 5.7 both forms, and the
    tame row of Prop 5.8; the *wild row* (Prop 5.8/Lemma 5.13, needing the target-dependent
    integer-`ω₂` representative of the wild word) and the mapping-cone dévissage Lemma 5.11
    followed later in the §5 proof layer and are also proved.) 
Lemma6.7
uses 0used by 1L∃∀N

Lemma 5.13 of the paper (Normal forms for nontrivial simple modules).

Let V be a nontrivial simple tame \F_2[C]-module. Every class in H^1_{A,\rho}(V) has a unique representative supported on x_0:

(a,b,c,d)\sim(0,0,c,0).

More precisely, the two possible inertia cases are as follows.

  1. If \mathsf T=1, then P=1, 1+\mathsf S^{-1} is invertible, and Z^1_{A,\rho}(V)=\{(a,0,c,0):a,c\in V\},\qquad B^1_{A,\rho}(V)=\{((\mathsf S-1)v,0,0,0):v\in V\}.

  2. If V^{\mathsf T}=0, then P=0 and \mathsf T-1=1+\mathsf T is invertible. The wild row first forces d=0. Subtracting the coboundary of v=(\mathsf T-1)^{-1}b kills b, and the tame row then forces a=0.

Under the representatives (53), the degree-one pairing with the corresponding representative \lambda\in V^\vee is

(c,\lambda)\longmapsto \begin{cases} \lambda(c),&\mathsf T=1,\\[1mm] \lambda((1+\mathsf U+\mathsf U^{-1})c),&V^{\mathsf T}=0. \end{cases}

Both operators in (54) are invertible.

Lean code for Lemma6.74 theorems
  • theoremdefined in GQ2/FoxHeisenberg/HessianRow.lean
    complete
    theorem GQ2.FoxH.lemma_5_13_split.{u_1, u_2} {C : Type u_1} [Group C] [Finite C]
      {V : Type u_2} [AddCommGroup V] [DistribMulAction C V]
      (t : GQ2.Marking C) (ht : t.TameRel) :
      t.WildRel 
         (hV₂ :  (v : V), v + v = 0)
          (hsimple : GQ2.FoxH.IsSimpleModTwo C V) [inst : Finite V]
          (hcore : t.Pro2Core) (htau :  (v : V), t.τ  v = v)
          (hU :  (v : V), t.sigma2  v = v)
          (hVS :  (v : V), t.σ  v = v  v = 0),
          (∀ (x : Fin 4  V), x  GQ2.FoxH.Z1w t  x 1 = 0  x 3 = 0) 
             (y : Fin 4  V),
              y  GQ2.FoxH.B1w t   v, y = ![t.σ  v - v, 0, 0, 0]
    theorem GQ2.FoxH.lemma_5_13_split.{u_1, u_2}
      {C : Type u_1} [Group C] [Finite C]
      {V : Type u_2} [AddCommGroup V]
      [DistribMulAction C V]
      (t : GQ2.Marking C) (ht : t.TameRel) :
      t.WildRel 
         (hV₂ :  (v : V), v + v = 0)
          (hsimple :
            GQ2.FoxH.IsSimpleModTwo C V)
          [inst : Finite V]
          (hcore : t.Pro2Core)
          (htau :  (v : V), t.τ  v = v)
          (hU :  (v : V), t.sigma2  v = v)
          (hVS :
             (v : V), t.σ  v = v  v = 0),
          (∀ (x : Fin 4  V),
              x  GQ2.FoxH.Z1w t 
                x 1 = 0  x 3 = 0) 
             (y : Fin 4  V),
              y  GQ2.FoxH.B1w t 
                 v,
                  y = ![t.σ  v - v, 0, 0, 0]
    **Lemma 5.13, split case (i), cocycle shape**: if `T = 1` (trivial `τ`-action on a
    nontrivial simple module), `Z¹ = {(a, 0, c, 0)}` and `B¹ = {((S−1)v, 0, 0, 0)}`.
    
    Hypotheses (per `docs/orchestration/p13-normal-form-hypothesis-gap.md`): `hcore` supplies trivial wild action
    (`wild_acts_trivially`); `hVS` is `V^S = 0`, i.e. `1 + S⁻¹` invertible — it excludes the trivial
    module `𝔽₂` (where `1 + S⁻¹ = 0` and the `x 3 = 0` clause would fail; that module is handled
    separately in `prop_5_15`).  `hU` is the σ-tameness (`σ₂ = U` acts trivially).  Both `hVS` and `hU`
    are *derivable* in the split case — with `τ, x₀, x₁` acting trivially the `C`-action factors through
    the cyclic `⟨σ̄⟩`, so a nontrivial simple `V` is a simple `𝔽₂[⟨σ⟩]`-module: `V^S = V^C = 0` and `σ`
    has odd order (⇒ `σ₂ = 1`).  Those derivations need `t.Generates` and simple-cyclic rep theory, so
    they are factored out as hypotheses here, keeping the normal-form proof pure finite-Fox calculus.
    See `docs/orchestration/p13-normal-form-hypothesis-gap.md` §7.
    
    Proved (the §5 proof layer): `B¹` half from `b1w_split_shape`; `Z¹` half from the tame row `d1Fun_tame_split`
    (`= S⁻¹·x₁`) and the wild row `liftMarking_wildValue_u` (`= x₁ + (1+S⁻¹)·x₃`), with `x 1 = 0` from
    `S⁻¹` injective and `x 3 = 0` from `hVS`. 
  • theoremdefined in GQ2/FoxHeisenberg/HessianRow.lean
    complete
    theorem GQ2.FoxH.lemma_5_13_ramified.{u_1, u_2} {C : Type u_1} [Group C]
      [Finite C] {V : Type u_2} [AddCommGroup V] [DistribMulAction C V]
      (t : GQ2.Marking C) (ht : t.TameRel) (hw : t.WildRel)
      (hV₂ :  (v : V), v + v = 0) [Finite V]
      (hx0 :  (v : V), t.x₀  v = v) (hx1 :  (v : V), t.x₁  v = v)
      (htau :  (v : V), t.τ  v = v  v = 0)
      (hTodd :  (v : V), GQ2.powOmega2 t.τ  v = v) (x : Fin 4  V) :
      x  GQ2.FoxH.Z1w t  ∃! c, x - GQ2.FoxH.x0Supported c  GQ2.FoxH.B1w t
    theorem GQ2.FoxH.lemma_5_13_ramified.{u_1, u_2}
      {C : Type u_1} [Group C] [Finite C]
      {V : Type u_2} [AddCommGroup V]
      [DistribMulAction C V]
      (t : GQ2.Marking C) (ht : t.TameRel)
      (hw : t.WildRel)
      (hV₂ :  (v : V), v + v = 0) [Finite V]
      (hx0 :  (v : V), t.x₀  v = v)
      (hx1 :  (v : V), t.x₁  v = v)
      (htau :  (v : V), t.τ  v = v  v = 0)
      (hTodd :
         (v : V), GQ2.powOmega2 t.τ  v = v)
      (x : Fin 4  V) :
      x  GQ2.FoxH.Z1w t 
        ∃! c,
          x - GQ2.FoxH.x0Supported c 
            GQ2.FoxH.B1w t
    **Lemma 5.13, ramified case (ii), unique normal form**: if `V^T = 0`, every degree-one
    class has a unique representative supported on `x₀` (display (53)).
    
    Hypothesis `hcore` supplies trivial wild action (`wild_acts_trivially`); the ramified condition
    `V^T = 0` (`htau`) gives `1 + T` invertible.
    
    **Hypothesis `hTodd`**: `τ`'s 2-primary part `powOmega2 t.τ` acts
    trivially on `V`, i.e. `τ` acts with *odd* order on `V`.  This is the ramified analogue of the
    split case's `hU : ∀ v, t.sigma2 • v = v` (`sigma2 = powOmega2 t.σ`), and is the arithmetic fact
    that `τ = ` tame inertia is prime-to-2, so acts through an odd quotient on the `𝔽₂`-module `V`.
    It is **required** (not implied by `V^T = 0`, which admits even-order fixed-point-free actions):
    the wild-row aux offset `(powOmega2 p).u` is a geometric sum whose length is the `ω₂`-exponent,
    and it collapses to `0` (via the `P = 0` norm ledger `WordLift.norm_eq_zero_of_fixedPointFree`)
    exactly because the odd action-period divides that length.  Like `hU`/`hVS` in the split case,
    this is factored out as an explicit hypothesis, supplied by the simple-factor analysis.
    See `docs/orchestration/p13-normal-form-hypothesis-gap.md` for the counterexample and rationale.
    
    **Signature note**: the trivial wild action is taken as hypotheses
    `hx0`/`hx1` rather than derived from `(hsimple, hcore)` via `wild_acts_trivially` — so the lemma
    applies to the contragredient dual `A∨` (whose wild-triviality transfers from `A`'s) without a
    "dual of simple is simple" detour, mirroring the split-side `split_shapes_of_wild`.
    
    No `hU` hypothesis is needed: the σ-tameness `∀ v, σ₂ • v = v` is *not derivable from
    admissibility* (`S₃` on its 2-dim simple module and `C₅⋊C₄` on `𝔽₁₆`, markings `x₀=x₁=1`,
    are admissible ramified counterexamples), and it is not needed: the `h₀`-row `x₂`-cancellation
    happens in `g₀`-conjugate pairs (`liftMarking_h0_u_ramified`, via `conjP_u_of_base_trivial`). 
  • theoremdefined in GQ2/FoxHeisenberg/HessianRow.lean
    complete
    theorem GQ2.FoxH.lemma_5_13_pairing_split.{u_1, u_2} {C : Type u_1} [Group C]
      [Finite C] {V : Type u_2} [AddCommGroup V] [DistribMulAction C V]
      (t : GQ2.Marking C) :
      t.TameRel 
        t.WildRel 
           (hV₂ :  (v : V), v + v = 0)
            (hsimple : GQ2.FoxH.IsSimpleModTwo C V) [Finite V]
            (hcore : t.Pro2Core) (htau :  (v : V), t.τ  v = v)
            (hU :  (v : V), t.sigma2  v = v) (c : V)
            (lam : GQ2.FoxH.ElemDual V),
            GQ2.FoxH.mixedB t (GQ2.FoxH.x0Supported c)
                (GQ2.FoxH.x0Supported lam) =
              lam c
    theorem GQ2.FoxH.lemma_5_13_pairing_split.{u_1,
        u_2}
      {C : Type u_1} [Group C] [Finite C]
      {V : Type u_2} [AddCommGroup V]
      [DistribMulAction C V]
      (t : GQ2.Marking C) :
      t.TameRel 
        t.WildRel 
           (hV₂ :  (v : V), v + v = 0)
            (hsimple :
              GQ2.FoxH.IsSimpleModTwo C V)
            [Finite V] (hcore : t.Pro2Core)
            (htau :  (v : V), t.τ  v = v)
            (hU :  (v : V), t.sigma2  v = v)
            (c : V)
            (lam : GQ2.FoxH.ElemDual V),
            GQ2.FoxH.mixedB t
                (GQ2.FoxH.x0Supported c)
                (GQ2.FoxH.x0Supported lam) =
              lam c
    **Lemma 5.13, pairing display (54), split case**: on `x₀`-supported representatives the
    degree-one pairing is `(c, λ) ↦ λ(c)` when `T = 1`.
    
    The proof uses the mixed Hessian ledger, Lemma 5.14 — `h₀ ↦ λ(c)` via
    `classTwoIdentity` [needs `g₀ = σ₂²` trivial, i.e. `hU`], and the `[d₀,z₀]` term vanishes since
    `P + 1 = 0` in char 2 for `T = 1`.  `hsimple`/`hcore` give the trivial wild action
    (`wild_acts_trivially`); `hU` is the σ-tameness (derivable in split; see `lemma_5_13_split`). 
  • theoremdefined in GQ2/FoxHeisenberg/HessianRow.lean
    complete
    theorem GQ2.FoxH.lemma_5_13_pairing_ramified.{u_1, u_2} {C : Type u_1} [Group C]
      [Finite C] {V : Type u_2} [AddCommGroup V] [DistribMulAction C V]
      (t : GQ2.Marking C) :
      t.TameRel 
        t.WildRel 
           (hV₂ :  (v : V), v + v = 0) [Finite V]
            (hx0 :  (v : V), t.x₀  v = v) (hx1 :  (v : V), t.x₁  v = v)
            (htau :  (v : V), t.τ  v = v  v = 0)
            (hTodd :  (v : V), GQ2.powOmega2 t.τ  v = v) (c : V)
            (lam : GQ2.FoxH.ElemDual V),
            GQ2.FoxH.mixedB t (GQ2.FoxH.x0Supported c)
                (GQ2.FoxH.x0Supported lam) =
              lam (c + t.sigma2  c + t.sigma2⁻¹  c)
    theorem GQ2.FoxH.lemma_5_13_pairing_ramified.{u_1,
        u_2}
      {C : Type u_1} [Group C] [Finite C]
      {V : Type u_2} [AddCommGroup V]
      [DistribMulAction C V]
      (t : GQ2.Marking C) :
      t.TameRel 
        t.WildRel 
           (hV₂ :  (v : V), v + v = 0)
            [Finite V]
            (hx0 :  (v : V), t.x₀  v = v)
            (hx1 :  (v : V), t.x₁  v = v)
            (htau :
               (v : V), t.τ  v = v  v = 0)
            (hTodd :
               (v : V),
                GQ2.powOmega2 t.τ  v = v)
            (c : V)
            (lam : GQ2.FoxH.ElemDual V),
            GQ2.FoxH.mixedB t
                (GQ2.FoxH.x0Supported c)
                (GQ2.FoxH.x0Supported lam) =
              lam
                (c + t.sigma2  c +
                  t.sigma2⁻¹  c)
    **Lemma 5.13, pairing display (54), ramified case**: when `V^T = 0` the pairing on
    `x₀`-supported representatives is `(c, λ) ↦ λ((1 + U + U⁻¹)c)` for `U = S₂^ω`
    (`Marking.sigma2`).
    
    The tame relator's central coordinate vanishes on the x₀-supported rep
    (`heisMarking_tameValue_z_eq_zero`), so the pairing is carried entirely by the wild relator
    (`heisMarking_wildValue_z_ramified`): `h₀ ↦ λ(c)` (the shadow) plus the `[d₀,z₀]` symplectic term
    `λ(Uc) + λ(U⁻¹c)` (nonzero here because `Dd₀ = c ≠ 0`, unlike the split `P + 1 = 0` collapse).
    
    **Hypothesis `hTodd`** (added the §5 proof layer, mirroring the §5 proof layer's `lemma_5_13_ramified`): `τ`'s 2-primary part
    acts trivially on `V` (tame inertia is prime-to-2), needed for the ramified `Dd₀ = c` via the
    `P = 0` ledger.  Supplied per simple factor by the tame representation-theory proof.  The trivial wild action is taken as
    hypotheses `hx0`/`hx1` (the Prop. 5.15 proof signature note on `lemma_5_13_ramified`). 
Proof for Lemma 6.7

Proved in §5 of the paper. Ingredients: Lemma 6.6.

Proposition6.8
uses 0
Used by 3
Reverse dependency previews
Preview
Corollary 6.10
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

Proposition 5.15 of the paper (Candidate deformation duality).

For every elementary \F_2[C]-module A, the chain map (46) is a quasi-isomorphism. Hence

H^2_{A,\rho}(A)^\vee\cong (A^\vee)^C, \qquad \dim Z^1_{A,\rho}(A)=2\dim A+\dim(A^\vee)^C.

The induced pairings

H^i_{A,\rho}(A)\times H^{2-i}_{A,\rho}(A^\vee)\to\F_2

are perfect and natural in A.

Lean code for Proposition6.84 theorems
  • theoremdefined in GQ2/DevissageInduction.lean
    complete
    theorem GQ2.FoxH.prop_5_15_of_simple.{u, u_1} {C : Type u_1} [Group C]
      [Finite C] (t : GQ2.Marking C) (ht : t.TameRel) (hw : t.WildRel)
      (hgen : t.Generates)
      (hsimp :
         (B : Type u) [inst : AddCommGroup B]
          [inst_1 : DistribMulAction C B] [inst_2 : Finite B],
          (∀ (b : B), b + b = 0) 
            GQ2.FoxH.IsSimpleModTwo C B  GQ2.FoxH.IsSelfDual t B)
      {A : Type u} [AddCommGroup A] [DistribMulAction C A] [Finite A]
      (hA₂ :  (a : A), a + a = 0) : GQ2.FoxH.IsSelfDual t A
    theorem GQ2.FoxH.prop_5_15_of_simple.{u, u_1}
      {C : Type u_1} [Group C] [Finite C]
      (t : GQ2.Marking C) (ht : t.TameRel)
      (hw : t.WildRel) (hgen : t.Generates)
      (hsimp :
         (B : Type u) [inst : AddCommGroup B]
          [inst_1 : DistribMulAction C B]
          [inst_2 : Finite B],
          (∀ (b : B), b + b = 0) 
            GQ2.FoxH.IsSimpleModTwo C B 
              GQ2.FoxH.IsSelfDual t B)
      {A : Type u} [AddCommGroup A]
      [DistribMulAction C A] [Finite A]
      (hA₂ :  (a : A), a + a = 0) :
      GQ2.FoxH.IsSelfDual t A
    **Prop 5.15, dévissage half (the Prop. 5.15 proof)**: `IsSelfDual` for *all* finite elementary-2
    `C`-modules, parameterized over the simple case (`hsimp` — the split/ramified dispatch).
    Strong induction on `Nat.card A`; the induction step is `lemma_5_11` (the dévissage proof) along
    `0 → W → A → A ⧸ W → 0` for a `C`-stable `W ∉ {⊥, ⊤}`; the subsingleton base is
    `trivialSelfDual` (the Prop. 5.15 proof part (i)). 
  • theoremdefined in GQ2/DualityAssembly.lean
    complete
    theorem GQ2.FoxH.selfDual_of_split.{u_1, u_2} {C : Type u_1} [Group C]
      [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A]
      [DistribMulAction C A] (t : GQ2.Marking C) (ht : t.TameRel)
      (hw : t.WildRel) (hgen : t.Generates) (hV₂ :  (v : A), v + v = 0)
      (hsimple : GQ2.FoxH.IsSimpleModTwo C A) (hcore : t.Pro2Core)
      (htau :  (v : A), t.τ  v = v) ( :  v, t.σ  v  v) :
      GQ2.FoxH.IsSelfDual t A
    theorem GQ2.FoxH.selfDual_of_split.{u_1, u_2}
      {C : Type u_1} [Group C] [Finite C]
      {A : Type u_2} [AddCommGroup A]
      [Finite A] [DistribMulAction C A]
      (t : GQ2.Marking C) (ht : t.TameRel)
      (hw : t.WildRel) (hgen : t.Generates)
      (hV₂ :  (v : A), v + v = 0)
      (hsimple : GQ2.FoxH.IsSimpleModTwo C A)
      (hcore : t.Pro2Core)
      (htau :  (v : A), t.τ  v = v)
      ( :  v, t.σ  v  v) :
      GQ2.FoxH.IsSelfDual t A
    **Proposition 5.15, split simple case.**  A nontrivial simple module on which `τ` acts trivially
    (`htau`) and `σ` acts nontrivially (`hσ`) 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. 
  • theoremdefined in GQ2/DualityAssembly.lean
    complete
    theorem GQ2.FoxH.selfDual_of_ramified.{u_1, u_2} {C : Type u_1} [Group C]
      [Finite C] {A : Type u_2} [AddCommGroup A] [Finite A]
      [DistribMulAction C A] (t : GQ2.Marking C) (ht : t.TameRel)
      (hw : t.WildRel) (hgen : t.Generates) (hV₂ :  (v : A), v + v = 0)
      (hsimple : GQ2.FoxH.IsSimpleModTwo C A) (hcore : t.Pro2Core)
      (htau :  (v : A), t.τ  v = v  v = 0) : GQ2.FoxH.IsSelfDual t A
    theorem GQ2.FoxH.selfDual_of_ramified.{u_1, u_2}
      {C : Type u_1} [Group C] [Finite C]
      {A : Type u_2} [AddCommGroup A]
      [Finite A] [DistribMulAction C A]
      (t : GQ2.Marking C) (ht : t.TameRel)
      (hw : t.WildRel) (hgen : t.Generates)
      (hV₂ :  (v : A), v + v = 0)
      (hsimple : GQ2.FoxH.IsSimpleModTwo C A)
      (hcore : t.Pro2Core)
      (htau :
         (v : A), t.τ  v = v  v = 0) :
      GQ2.FoxH.IsSelfDual t A
    **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). 
  • theoremdefined in GQ2/DualityAssembly.lean
    complete
    theorem GQ2.FoxH.prop_5_15.{u_1, u_2} {C : Type u_1} [Group C] [Finite C]
      {A : Type u_2} [AddCommGroup A] [Finite A] [DistribMulAction C A]
      (t : GQ2.Marking C) (ht : t.TameRel) (hw : t.WildRel)
      (hgen : t.Generates) (hA₂ :  (a : A), a + a = 0)
      (hcore : t.Pro2Core) : GQ2.FoxH.IsSelfDual t A
    theorem GQ2.FoxH.prop_5_15.{u_1, u_2}
      {C : Type u_1} [Group C] [Finite C]
      {A : Type u_2} [AddCommGroup A]
      [Finite A] [DistribMulAction C A]
      (t : GQ2.Marking C) (ht : t.TameRel)
      (hw : t.WildRel) (hgen : t.Generates)
      (hA₂ :  (a : A), a + a = 0)
      (hcore : t.Pro2Core) :
      GQ2.FoxH.IsSelfDual t A
    **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. 
Proof for Proposition 6.8
Proof uses 3
Proof dependency previews
Preview
Proposition 6.4
Loading preview
Proof dependency preview content is loaded from the rendered-fragment cache.

Proved in §5 of the paper. Ingredients: Lemma 6.5 Lemma 6.7 Proposition 6.4.

Proposition6.9
uses 0
Used by 2
Reverse dependency previews
Preview
Corollary 6.10
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

Proposition 5.16 of the paper (Local lifting duality).

For every elementary \F_2[C]-module A,

H^2_{F,\rho}(A)^\vee\cong (A^\vee)^C, \qquad \dim Z^1_{F,\rho}(A)=2\dim A+\dim(A^\vee)^C.

The local cup product and invariant map give perfect pairings

H^i_{F,\rho}(A)\times H^{2-i}_{F,\rho}(A^\vee)\to\F_2.

Lean code for Proposition6.92 theorems
  • theoremdefined in GQ2/LocalLiftingDuality.lean
    complete
    theorem GQ2.LocalLiftingDuality.prop_5_16_bundle.{u_1} {C : Type u_1} [Group C]
      [TopologicalSpace C] [DiscreteTopology C] [Finite C]
      (ρ : GQ2.AbsGalQ2 →ₜ* C) ( : Function.Surjective ρ) {A : Type}
      [AddCommGroup A] [TopologicalSpace A] [DiscreteTopology A] [Finite A]
      [DistribMulAction C A] [DistribMulAction GQ2.AbsGalQ2 A]
      [ContinuousSMul GQ2.AbsGalQ2 A]
      (hcomp :  (γ : GQ2.AbsGalQ2) (a : A), γ  a = ρ γ  a)
      (hA₂ :  (a : A), a + a = 0) [TopologicalSpace (GQ2.FoxH.ElemDual A)]
      [DiscreteTopology (GQ2.FoxH.ElemDual A)]
      [DistribMulAction GQ2.AbsGalQ2 (GQ2.FoxH.ElemDual A)]
      [ContinuousSMul GQ2.AbsGalQ2 (GQ2.FoxH.ElemDual A)] :
      (∀ (γ : GQ2.AbsGalQ2) (lam : GQ2.FoxH.ElemDual A),
          γ  lam = ρ γ  lam) 
         [inst : TopologicalSpace (ZMod 2)]
          [inst✝ : DiscreteTopology (ZMod 2)]
          [inst✝¹ : DistribMulAction GQ2.AbsGalQ2 (ZMod 2)]
          [ContinuousSMul GQ2.AbsGalQ2 (ZMod 2)]
          (htriv :  (γ : GQ2.AbsGalQ2) (m : ZMod 2), γ  m = m)
          (hpair :
             (γ : GQ2.AbsGalQ2) (a : A) (lam : GQ2.FoxH.ElemDual A),
              ((GQ2.FoxH.dualEval A) (γ  a)) (γ  lam) =
                γ  ((GQ2.FoxH.dualEval A) a) lam),
          Nat.card (GQ2.ContCoh.H2 GQ2.AbsGalQ2 A) =
              Nat.card (GQ2.FoxH.fixedPts C (GQ2.FoxH.ElemDual A)) 
            Nat.card (GQ2.ContCoh.Z1 GQ2.AbsGalQ2 A) =
                Nat.card A ^ 2 *
                  Nat.card (GQ2.FoxH.fixedPts C (GQ2.FoxH.ElemDual A)) 
              Nat.card (GQ2.ContCoh.H2 GQ2.AbsGalQ2 (ZMod 2)) = 2 
                (Function.Bijective fun c =>
                    (GQ2.ContCoh.cup11 (GQ2.FoxH.dualEval A) hpair) c) 
                  (Function.Bijective fun c =>
                      (GQ2.ContCoh.cup02 (GQ2.FoxH.dualEval A) hpair) c) 
                    Function.Bijective fun c =>
                      (GQ2.ContCoh.cup20 (GQ2.FoxH.dualEval A) hpair) c
    theorem GQ2.LocalLiftingDuality.prop_5_16_bundle.{u_1}
      {C : Type u_1} [Group C]
      [TopologicalSpace C]
      [DiscreteTopology C] [Finite C]
      (ρ : GQ2.AbsGalQ2 →ₜ* C)
      ( : Function.Surjective ρ) {A : Type}
      [AddCommGroup A] [TopologicalSpace A]
      [DiscreteTopology A] [Finite A]
      [DistribMulAction C A]
      [DistribMulAction GQ2.AbsGalQ2 A]
      [ContinuousSMul GQ2.AbsGalQ2 A]
      (hcomp :
         (γ : GQ2.AbsGalQ2) (a : A),
          γ  a = ρ γ  a)
      (hA₂ :  (a : A), a + a = 0)
      [TopologicalSpace (GQ2.FoxH.ElemDual A)]
      [DiscreteTopology (GQ2.FoxH.ElemDual A)]
      [DistribMulAction GQ2.AbsGalQ2
          (GQ2.FoxH.ElemDual A)]
      [ContinuousSMul GQ2.AbsGalQ2
          (GQ2.FoxH.ElemDual A)] :
      (∀ (γ : GQ2.AbsGalQ2)
          (lam : GQ2.FoxH.ElemDual A),
          γ  lam = ρ γ  lam) 
         [inst : TopologicalSpace (ZMod 2)]
          [inst✝ : DiscreteTopology (ZMod 2)]
          [inst✝¹ :
            DistribMulAction GQ2.AbsGalQ2
              (ZMod 2)]
          [ContinuousSMul GQ2.AbsGalQ2
              (ZMod 2)]
          (htriv :
             (γ : GQ2.AbsGalQ2) (m : ZMod 2),
              γ  m = m)
          (hpair :
             (γ : GQ2.AbsGalQ2) (a : A)
              (lam : GQ2.FoxH.ElemDual A),
              ((GQ2.FoxH.dualEval A) (γ  a))
                  (γ  lam) =
                γ 
                  ((GQ2.FoxH.dualEval A) a)
                    lam),
          Nat.card
                (GQ2.ContCoh.H2 GQ2.AbsGalQ2
                  A) =
              Nat.card
                (GQ2.FoxH.fixedPts C
                    (GQ2.FoxH.ElemDual A)) 
            Nat.card
                  (GQ2.ContCoh.Z1
                      GQ2.AbsGalQ2 A) =
                Nat.card A ^ 2 *
                  Nat.card
                    (GQ2.FoxH.fixedPts C
                        (GQ2.FoxH.ElemDual
                          A)) 
              Nat.card
                    (GQ2.ContCoh.H2
                      GQ2.AbsGalQ2 (ZMod 2)) =
                  2 
                (Function.Bijective fun c =>
                    (GQ2.ContCoh.cup11
                        (GQ2.FoxH.dualEval A)
                        hpair)
                      c) 
                  (Function.Bijective fun c =>
                      (GQ2.ContCoh.cup02
                          (GQ2.FoxH.dualEval
                            A)
                          hpair)
                        c) 
                    Function.Bijective
                      fun c =>
                      (GQ2.ContCoh.cup20
                          (GQ2.FoxH.dualEval
                            A)
                          hpair)
                        c
    **`prop_5_16` (local lifting duality), fully assembled** — all six clauses, stated with the
    paper's exact signature (`GQ2.FoxH.prop_5_16`).  This is the complete the Prop. 5.16 proof result: clauses
    (i)–(iii) are the numeric/Euler-characteristic content, (iv)–(vi) the cup-perfectness content.
    
    `GQ2.FoxH.prop_5_16` could not be proved by an `exact` splice in its original home, because
    `FoxHeisenberg` (where it was declared) would then have had to import this file, which already
    imports `FoxHeisenberg` (for `ElemDual`/`dualEval`) — an import cycle.  The statement was
    therefore relocated out of `FoxHeisenberg.lean` and is proved from this bundle below. 
  • theoremdefined in GQ2/LocalLiftingDuality.lean
    complete
    theorem GQ2.FoxH.prop_5_16.{u_1} {C : Type u_1} [Group C] [TopologicalSpace C]
      [DiscreteTopology C] [Finite C] (ρ : GQ2.AbsGalQ2 →ₜ* C)
      ( : Function.Surjective ρ) {A : Type} [AddCommGroup A]
      [TopologicalSpace A] [DiscreteTopology A] [Finite A]
      [DistribMulAction C A] [DistribMulAction GQ2.AbsGalQ2 A]
      [ContinuousSMul GQ2.AbsGalQ2 A]
      (hcomp :  (γ : GQ2.AbsGalQ2) (a : A), γ  a = ρ γ  a)
      (hA₂ :  (a : A), a + a = 0) [TopologicalSpace (GQ2.FoxH.ElemDual A)]
      [DiscreteTopology (GQ2.FoxH.ElemDual A)]
      [DistribMulAction GQ2.AbsGalQ2 (GQ2.FoxH.ElemDual A)]
      [ContinuousSMul GQ2.AbsGalQ2 (GQ2.FoxH.ElemDual A)]
      (hcompD :
         (γ : GQ2.AbsGalQ2) (lam : GQ2.FoxH.ElemDual A),
          γ  lam = ρ γ  lam)
      [TopologicalSpace (ZMod 2)] [DiscreteTopology (ZMod 2)]
      [DistribMulAction GQ2.AbsGalQ2 (ZMod 2)]
      [ContinuousSMul GQ2.AbsGalQ2 (ZMod 2)]
      (htriv :  (γ : GQ2.AbsGalQ2) (m : ZMod 2), γ  m = m)
      (hpair :
         (γ : GQ2.AbsGalQ2) (a : A) (lam : GQ2.FoxH.ElemDual A),
          ((GQ2.FoxH.dualEval A) (γ  a)) (γ  lam) =
            γ  ((GQ2.FoxH.dualEval A) a) lam) :
      Nat.card (GQ2.ContCoh.H2 GQ2.AbsGalQ2 A) =
          Nat.card (GQ2.FoxH.fixedPts C (GQ2.FoxH.ElemDual A)) 
        Nat.card (GQ2.ContCoh.Z1 GQ2.AbsGalQ2 A) =
            Nat.card A ^ 2 *
              Nat.card (GQ2.FoxH.fixedPts C (GQ2.FoxH.ElemDual A)) 
          Nat.card (GQ2.ContCoh.H2 GQ2.AbsGalQ2 (ZMod 2)) = 2 
            (Function.Bijective fun c =>
                (GQ2.ContCoh.cup11 (GQ2.FoxH.dualEval A) hpair) c) 
              (Function.Bijective fun c =>
                  (GQ2.ContCoh.cup02 (GQ2.FoxH.dualEval A) hpair) c) 
                Function.Bijective fun c =>
                  (GQ2.ContCoh.cup20 (GQ2.FoxH.dualEval A) hpair) c
    theorem GQ2.FoxH.prop_5_16.{u_1} {C : Type u_1}
      [Group C] [TopologicalSpace C]
      [DiscreteTopology C] [Finite C]
      (ρ : GQ2.AbsGalQ2 →ₜ* C)
      ( : Function.Surjective ρ) {A : Type}
      [AddCommGroup A] [TopologicalSpace A]
      [DiscreteTopology A] [Finite A]
      [DistribMulAction C A]
      [DistribMulAction GQ2.AbsGalQ2 A]
      [ContinuousSMul GQ2.AbsGalQ2 A]
      (hcomp :
         (γ : GQ2.AbsGalQ2) (a : A),
          γ  a = ρ γ  a)
      (hA₂ :  (a : A), a + a = 0)
      [TopologicalSpace (GQ2.FoxH.ElemDual A)]
      [DiscreteTopology (GQ2.FoxH.ElemDual A)]
      [DistribMulAction GQ2.AbsGalQ2
          (GQ2.FoxH.ElemDual A)]
      [ContinuousSMul GQ2.AbsGalQ2
          (GQ2.FoxH.ElemDual A)]
      (hcompD :
         (γ : GQ2.AbsGalQ2)
          (lam : GQ2.FoxH.ElemDual A),
          γ  lam = ρ γ  lam)
      [TopologicalSpace (ZMod 2)]
      [DiscreteTopology (ZMod 2)]
      [DistribMulAction GQ2.AbsGalQ2 (ZMod 2)]
      [ContinuousSMul GQ2.AbsGalQ2 (ZMod 2)]
      (htriv :
         (γ : GQ2.AbsGalQ2) (m : ZMod 2),
          γ  m = m)
      (hpair :
         (γ : GQ2.AbsGalQ2) (a : A)
          (lam : GQ2.FoxH.ElemDual A),
          ((GQ2.FoxH.dualEval A) (γ  a))
              (γ  lam) =
            γ 
              ((GQ2.FoxH.dualEval A) a) lam) :
      Nat.card
            (GQ2.ContCoh.H2 GQ2.AbsGalQ2 A) =
          Nat.card
            (GQ2.FoxH.fixedPts C
                (GQ2.FoxH.ElemDual A)) 
        Nat.card
              (GQ2.ContCoh.Z1 GQ2.AbsGalQ2
                  A) =
            Nat.card A ^ 2 *
              Nat.card
                (GQ2.FoxH.fixedPts C
                    (GQ2.FoxH.ElemDual A)) 
          Nat.card
                (GQ2.ContCoh.H2 GQ2.AbsGalQ2
                  (ZMod 2)) =
              2 
            (Function.Bijective fun c =>
                (GQ2.ContCoh.cup11
                    (GQ2.FoxH.dualEval A)
                    hpair)
                  c) 
              (Function.Bijective fun c =>
                  (GQ2.ContCoh.cup02
                      (GQ2.FoxH.dualEval A)
                      hpair)
                    c) 
                Function.Bijective fun c =>
                  (GQ2.ContCoh.cup20
                      (GQ2.FoxH.dualEval A)
                      hpair)
                    c
    **Prop 5.16 (local lifting duality)**: for a finite elementary module with `G_ℚ₂`-action
    factoring through `ρ : G_ℚ₂ ↠ C`, the display-(57) numerics hold and the cup-product API evaluation-cup
    pairings are perfect in all three degree pairs (the Tate-duality interface phrasing; the clause `#H²(𝔽₂) = 2`
    certifies the target line).  The two-actions setup follows the continuous-cohomology API's compatible-pair pattern:
    separate `C`- and `G_ℚ₂`-actions related pointwise through `ρ` — no double instance on one
    type.
    
    The proof is `GQ2.LocalLiftingDuality.prop_5_16_bundle`; this is where axioms B6 and B7 enter
    (App. D row).  It lives outside `GQ2/FoxHeisenberg.lean` to break an
    public import cycle (the `𝔽₂`-cup/B6 infrastructure imports that file). 
Proof for Proposition 6.9
Proof uses 2
Proof dependency previews
Preview
Proposition 1.4
Loading preview
Proof dependency preview content is loaded from the rendered-fragment cache.

Proved in §5 of the paper. Ingredients: Proposition 1.4 Proposition 1.9.

Corollary6.10
uses 0used by 1L∃∀N

Corollary 5.17 of the paper (Common lift numerics and adjoint boundaries).

For either source, use the corresponding notation H^i_{\Gamma,\rho} and Z^1_{\Gamma,\rho}. Then the obstruction-space dimensions, unobstructed lift multiplicities, and perfect pairings agree numerically.

For every short exact sequence

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

and its dual, the connecting maps are adjoint: if

\partial_{\Gamma,\rho}:H^1_{\Gamma,\rho}(V)\to H^2_{\Gamma,\rho}(T)

and \chi\in(T^\vee)^C has dual boundary

\gamma_\chi=\partial_C^\vee(\chi)\in H^1(C,V^\vee),

then

\langle\partial_{\Gamma,\rho}c,\chi\rangle =\langle c,\rho^*\gamma_\chi\rangle_\Gamma.

Lean code for Corollary6.101 theorem
  • theoremdefined in GQ2/LocalLiftingDuality.lean
    complete
    theorem GQ2.FoxH.cor_5_17_card.{u_1} {C : Type u_1} [Group C]
      [TopologicalSpace C] [DiscreteTopology C] [Finite C]
      (t : GQ2.Marking C) (ht : t.TameRel) (hw : t.WildRel)
      (hgen : t.Generates) (hcore : t.Pro2Core) (ρ : GQ2.AbsGalQ2 →ₜ* C)
      ( : Function.Surjective ρ) {A : Type} [AddCommGroup A]
      [TopologicalSpace A] [DiscreteTopology A] [Finite A]
      [DistribMulAction C A] [DistribMulAction GQ2.AbsGalQ2 A]
      [ContinuousSMul GQ2.AbsGalQ2 A]
      (hcomp :  (γ : GQ2.AbsGalQ2) (a : A), γ  a = ρ γ  a)
      (hA₂ :  (a : A), a + a = 0) [TopologicalSpace (GQ2.FoxH.ElemDual A)]
      [DiscreteTopology (GQ2.FoxH.ElemDual A)]
      [DistribMulAction GQ2.AbsGalQ2 (GQ2.FoxH.ElemDual A)]
      [ContinuousSMul GQ2.AbsGalQ2 (GQ2.FoxH.ElemDual A)]
      (hcompD :
         (γ : GQ2.AbsGalQ2) (lam : GQ2.FoxH.ElemDual A),
          γ  lam = ρ γ  lam)
      [TopologicalSpace (ZMod 2)] [DiscreteTopology (ZMod 2)]
      [DistribMulAction GQ2.AbsGalQ2 (ZMod 2)]
      [ContinuousSMul GQ2.AbsGalQ2 (ZMod 2)]
      (htriv :  (γ : GQ2.AbsGalQ2) (m : ZMod 2), γ  m = m)
      (hpair :
         (γ : GQ2.AbsGalQ2) (a : A) (lam : GQ2.FoxH.ElemDual A),
          ((GQ2.FoxH.dualEval A) (γ  a)) (γ  lam) =
            γ  ((GQ2.FoxH.dualEval A) a) lam) :
      Nat.card (GQ2.FoxH.Z1w t) =
          Nat.card (GQ2.ContCoh.Z1 GQ2.AbsGalQ2 A) 
        Nat.card (GQ2.FoxH.H2w t) = Nat.card (GQ2.ContCoh.H2 GQ2.AbsGalQ2 A)
    theorem GQ2.FoxH.cor_5_17_card.{u_1}
      {C : Type u_1} [Group C]
      [TopologicalSpace C]
      [DiscreteTopology C] [Finite C]
      (t : GQ2.Marking C) (ht : t.TameRel)
      (hw : t.WildRel) (hgen : t.Generates)
      (hcore : t.Pro2Core)
      (ρ : GQ2.AbsGalQ2 →ₜ* C)
      ( : Function.Surjective ρ) {A : Type}
      [AddCommGroup A] [TopologicalSpace A]
      [DiscreteTopology A] [Finite A]
      [DistribMulAction C A]
      [DistribMulAction GQ2.AbsGalQ2 A]
      [ContinuousSMul GQ2.AbsGalQ2 A]
      (hcomp :
         (γ : GQ2.AbsGalQ2) (a : A),
          γ  a = ρ γ  a)
      (hA₂ :  (a : A), a + a = 0)
      [TopologicalSpace (GQ2.FoxH.ElemDual A)]
      [DiscreteTopology (GQ2.FoxH.ElemDual A)]
      [DistribMulAction GQ2.AbsGalQ2
          (GQ2.FoxH.ElemDual A)]
      [ContinuousSMul GQ2.AbsGalQ2
          (GQ2.FoxH.ElemDual A)]
      (hcompD :
         (γ : GQ2.AbsGalQ2)
          (lam : GQ2.FoxH.ElemDual A),
          γ  lam = ρ γ  lam)
      [TopologicalSpace (ZMod 2)]
      [DiscreteTopology (ZMod 2)]
      [DistribMulAction GQ2.AbsGalQ2 (ZMod 2)]
      [ContinuousSMul GQ2.AbsGalQ2 (ZMod 2)]
      (htriv :
         (γ : GQ2.AbsGalQ2) (m : ZMod 2),
          γ  m = m)
      (hpair :
         (γ : GQ2.AbsGalQ2) (a : A)
          (lam : GQ2.FoxH.ElemDual A),
          ((GQ2.FoxH.dualEval A) (γ  a))
              (γ  lam) =
            γ 
              ((GQ2.FoxH.dualEval A) a) lam) :
      Nat.card (GQ2.FoxH.Z1w t) =
          Nat.card
            (GQ2.ContCoh.Z1 GQ2.AbsGalQ2 A) 
        Nat.card (GQ2.FoxH.H2w t) =
          Nat.card
            (GQ2.ContCoh.H2 GQ2.AbsGalQ2 A)
    **Corollary 5.17, numerics half** (proved wiring): the obstruction-space and
    unobstructed-lift-multiplicity cardinalities agree for the two sources.  (The
    adjoint-boundary identity (58) is deferred: it needs connecting-map infrastructure in both
    theories — see the module docstring.) 
Proof for Corollary 6.10
Proof uses 2
Proof dependency previews
Preview
Proposition 6.8
Loading preview
Proof dependency preview content is loaded from the rendered-fragment cache.

Proved in §5 of the paper. Ingredients: Proposition 6.8 Proposition 6.9.