Paper XI · Lean source
HeisenbergCochain.lean
Selected results recorded Coverage and evidence
Compiler/replay evidence is reported for a subset or bounded block. No whole-work coverage is implied.
This viewer reads the retained source; it does not run Lean or assign new claim mappings.
Local imports (1)
PaperXI/HeisenbergCochain.lean69 lines
Original source path
formalization/PaperXI/HeisenbergCochain.leanSkip declarations and read code
1 import PaperXI.BilinearHeisenberg
2 import Mathlib.Algebra.CharP.Two
3
4 /-! Actual changes of central section and the square obstruction in characteristic
5 two. These statements concern the middle groups, not just their commutator forms. -/
6 set_option autoImplicit false
7 noncomputable section
8 namespace PaperXI.HeisenbergCochain
9 open BilinearHeisenberg
10 variable {K V : Type*} [Field K] [AddCommGroup V] [Module K V]
11 variable (c d : LinearMap.BilinForm K V)
12
13 /-- A normalized coboundary constructs a genuine central-extension isomorphism. -/
14 def equiv (f : V → K) (_h0 : f 0 = 0)
15 (hf : ∀ x y, d x y - c x y = f (x + y) - f x - f y) :
16 Element c ≃* Element d where
17 toFun h := ⟨h.vector, h.central + f h.vector⟩
18 invFun h := ⟨h.vector, h.central - f h.vector⟩
19 left_inv h := by ext <;> simp
20 right_inv h := by ext <;> simp
21 map_mul' h k := by
22 ext
23 · rfl
24 · change h.central + k.central + c h.vector k.vector + f (h.vector + k.vector) =
25 (h.central + f h.vector) + (k.central + f k.vector) + d h.vector k.vector
26 linear_combination -(hf h.vector k.vector)
27
28 @[simp] theorem equiv_center (f : V → K) (h0 : f 0 = 0)
29 (hf : ∀ x y, d x y - c x y = f (x + y) - f x - f y) (z : Multiplicative K) :
30 equiv c d f h0 hf (i c z) = i d z := by
31 ext <;> simp [equiv, h0]
32
33 @[simp] theorem equiv_vector (f : V → K) (h0 : f 0 = 0)
34 (hf : ∀ x y, d x y - c x y = f (x + y) - f x - f y) (h : Element c) :
35 (equiv c d f h0 hf h).vector = h.vector := rfl
36
37 section CharacteristicTwo
38 variable [CharP K 2]
39
40 /-- All lifts of a quotient vector have the same square, calculated from c. -/
41 theorem square (h : Element c) :
42 h * h = i c (Multiplicative.ofAdd (c h.vector h.vector)) := by
43 ext
44 · change h.vector + h.vector = 0
45 rw [← two_smul K, show (2 : K) = 0 from CharP.cast_eq_zero K 2, zero_smul]
46 · change h.central + h.central + c h.vector h.vector = c h.vector h.vector
47 rw [CharTwo.add_self_eq_zero, zero_add]
48
49 /-- A center- and quotient-preserving isomorphism must preserve the diagonal
50 factor set. Thus the alternating commutator alone does not determine the extension. -/
51 theorem diagonal_preserved (e : Element c ≃* Element d)
52 (he : ∀ z, e (i c z) = i d z)
53 (hq : ∀ h, (e h).vector = h.vector) (v : V) : c v v = d v v := by
54 let h : Element c := ⟨v, 0⟩
55 have hm := e.map_mul h h
56 rw [square, he, square] at hm
57 have hv := congrArg Element.central hm
58 change c h.vector h.vector = d (e h).vector (e h).vector at hv
59 rw [hq] at hv
60 exact hv
61
62 theorem no_equiv_of_diagonal_mismatch (v : V) (hv : c v v ≠ d v v) :
63 ¬ ∃ e : Element c ≃* Element d,
64 (∀ z, e (i c z) = i d z) ∧ (∀ h, (e h).vector = h.vector) := by
65 rintro ⟨e, he, hq⟩
66 exact hv (diagonal_preserved c d e he hq v)
67
68 end CharacteristicTwo
69 end PaperXI.HeisenbergCochain
Original file and source record
This copy matches the recorded source file. Its publication here does not change the work’s review status.
SHA-256: ba7c5f4ea39d1e68eadd6f852cf159e67a2b0c454eb6083d92f7d48ca9e92f8f
Back to Paper XI: Packets, Arithmetic Realization, and Conditional Comparison