Paper XI · Lean source
HeisenbergFinite.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 (2)
PaperXI/HeisenbergFinite.lean32 lines
Original source path
formalization/PaperXI/HeisenbergFinite.leanSkip declarations and read code
1 import PaperXI.HeisenbergGroup
2 import PaperXI.HeisenbergDimension
3 import Mathlib.RingTheory.Finiteness.Cardinality
4
5 /-! Finiteness and order of the actual Heisenberg group. -/
6
7 set_option autoImplicit false
8
9 namespace PaperXI.HeisenbergFinite
10
11 open PaperXI.Heisenberg
12
13 variable {K X : Type*} [Field K] [AddCommGroup X] [Module K X]
14
15 /-- The underlying coordinate equivalence of the actual group. -/
16 def coordinates : Element K X ≃ (X × Module.Dual K X) × K where
17 toFun a := ((a.position, a.frequency), a.central)
18 invFun a := ⟨a.1.1, a.1.2, a.2⟩
19 left_inv a := by cases a; rfl
20 right_inv a := by rcases a with ⟨⟨x, ξ⟩, z⟩; rfl
21
22 instance instFinite [Finite K] [FiniteDimensional K X] : Finite (Element K X) := by
23 let : Finite X := Module.finite_of_finite K
24 let : Finite (Module.Dual K X) := Module.finite_of_finite K
25 exact Finite.of_injective coordinates coordinates.injective
26
27 theorem natCard_eq [FiniteDimensional K X] :
28 Nat.card (Element K X) = (Nat.card X) ^ 2 * Nat.card K := by
29 rw [Nat.card_congr (coordinates (K := K) (X := X)), Nat.card_prod,
30 PaperXI.HeisenbergDimension.natCard_symplectic]
31
32 end PaperXI.HeisenbergFinite
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: d3703379c8db33d8675a342dc898f778aa75b1599529098f11b2af1df156e553
Back to Paper XI: Packets, Arithmetic Realization, and Conditional Comparison