Definitions/Def_Mathlib_LinearAlgebra_Countable.lean
Countability of finite modules; number fields are countable
Two general-purpose facts about countability are recorded. The first, Countable.of_module_finite, asserts that for a semiring R with countable underlying type and an additive commutative monoid M carrying an R-module structure which is module-finite over R (i.e. finitely generated as an R-module), the type M is countable. The argument takes a finite spanning family s : \mathrm{Fin}\,n \to M whose R-span is all of M, observes that the span of the range of such a family is countable, and transports this along the equality of the span with the whole module; concretely, every element of M is an R-linear combination of finitely many fixed generators, and there are only countably many such combinations when R is countable.
The second declaration is an instance deducing from this that the underlying type of any number field K is countable: a number field is by definition a field of characteristic zero which is finite-dimensional over \mathbb{Q}, so K is a module-finite \mathbb{Q}-module and \mathbb{Q} is countable. Being an instance, it makes countability of number fields available to typeclass inference throughout, for instance when a construction requires a countable index set or a countable coefficient field.
Relation to Mathlib
Both declarations are stated in Mathlib's namespaces and rely only on Mathlib notions (Module.Finite, Countable, NumberField); they are auxiliary lemmas of the kind intended for eventual inclusion in Mathlib rather than project-specific definitions.
Where it is used
The countability instance for number fields is used as ambient infrastructure by many later modules, where countability of a field or of a set of arithmetic data is needed for measure-theoretic, topological or cardinality side conditions.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 16 lines
- 2 declarations
- used in the statements of 13 theorems and imported by 52 proofs
- imports 0 definition modules
Source file: Definitions/Def_Mathlib_LinearAlgebra_Countable.lean
Imports
- only Mathlib
Imported by
Declarations
Source
import Mathlib section lemma Countable.of_module_finite (R M : Type*) [Semiring R] [Countable R] [AddCommMonoid M] [Module R M] [Module.Finite R M] : Countable M := by obtain ⟨n, s, h⟩ := Module.Finite.exists_fin (R := R) (M := M) rw [← Set.countable_univ_iff] have : Countable (Submodule.span R (Set.range s)) := inferInstance rwa [h] at this instance (K : Type*) [Field K] [NumberField K] : Countable K := Countable.of_module_finite ℚ K end
Statements phrased using this module (13)
- Fibre-sum spectral comparison for twisted GL₂ at prime degree
AutomorphicForm.fibreSum_twistedCutTrace_eq_const_mul_fibreSum_cutTrace_of_docks_ed23,000 below · depth 22 - Hecke word comparison of twisted and untwisted cut traces
AutomorphicForm.exists_atoms_forall_exists_noAtomicMass_heckeWordSum_twistedCutTrace_sub_finrank_mul_const_mul_heckeWordSum_cutTrace_eq2,972 below · depth 23 - Formal base change of an Eisenstein Hecke table is Eisenstein
AutomorphicForm.exists_eisensteinTableOf_eq_formalBaseChange_eisensteinTableOf6 below · depth 23 - Fibre-sum vanishing from monomial identities at places of record
AutomorphicForm.forall_finset_fibreSum_sub_const_mul_fibreSum_add_eq_zero_of_forall_places_exists_noAtomicMass_wordSum_eq1 below · depth 23 - Satake data constant on fibres over K, given word-shift
AutomorphicForm.satakeData_eq_of_under_eq_of_twistedCutTrace_ne_zero_of_heckeWordShift0 below · depth 23 - Absolute summability of Siegel-pinned cut traces on GL₂
AutomorphicForm.summable_norm_cutTrace_of_isUnitFactorizableOfTypeAt_of_coversModCentre96 below · depth 23 - Satake table of a principal-level cuspidal class lies in a box
AutomorphicForm.table_mem_box_of_mem_cuspClasses_siegel119 below · depth 23 - Hecke tables of cuspidal slab classes lie in the box
AutomorphicForm.table_mem_box_of_mem_cuspClasses_slab18 below · depth 23 - Hecke generator inverse double-coset relation at level U₁(N)
NumberField.AdelicLevel.exists_heckeGen_inv_eq_centralScalar_mul_mul_heckeGen_mul_levelOne1 below · depth 23 - Double-coset inversion relation for Hecke generators at principal level
NumberField.AdelicLevel.exists_heckeGen_inv_eq_centralScalar_mul_mul_heckeGen_mul_principalLevel1 below · depth 23 - Per-word twisted spectral comparison from the remainder rows
AutomorphicForm.heckeWordSum_twistedCutTrace_sub_const_mul_heckeWordSum_cutTrace_add_atoms_eq_of_remainder_rows_of_comparison194 below · depth 24 - Hecke generator inverse in a central-times-level double coset
NumberField.AdelicLevel.exists_heckeGen_inv_eq_centralScalar_mul_mul_heckeGen_mul_of_forall_finEmbed_localEmbed_mem0 below · depth 24 - Absolute summability of cut traces over Siegel-pinned cusp classes
AutomorphicForm.summable_norm_cutTrace_of_isUnitFactorizableOfTypeAt_of_coversModCentre_of_subset96 below · depth 25