Congruence subgroups for a modulus
StructureCongruence subgroup#βfully proved
Let \(K\) be a number field and \(\mathfrak m\) a modulus of \(K\). A congruence subgroup for \(\mathfrak m\) is a subgroup \(H\) of the group of invertible fractional ideals of \(K\) coprime to the finite part of \(\mathfrak m\) such that \(H\) contains the ray group of \(\mathfrak m\).
@[ext] structure CongruenceSubgroup (m : Modulus K) where
/-- Underlying subgroup of the coprime ideals. -/
toSubgroup : Subgroup (coprimeFractionalIdeals m)
/-- The ray group is contained in the subgroup. -/
rayGroup_le : rayGroup m β€ toSubgroup
@[ext] structure Modulus (K : Type*) [Field K] [NumberField K] where
finitePart : (Ideal (π K))β°
infinitePart : Finset (RealPlace K)
MathlibExt/NumberTheory/NumberField/RayClass/Modulus.lean:30
def coprimeFractionalIdeals (m : Modulus K) :
Subgroup (FractionalIdeal (π K)β° K)Λ£ where
carrier :=
{ u |
β v, finiteSupported m v β
FractionalIdeal.count K v (u : FractionalIdeal (π K)β° K) = 0 }
one_mem' := by
intro v _
rw [Units.val_one]
exact FractionalIdeal.count_one K v
mul_mem' := by
intro a b ha hb v hv
β―
MathlibExt/NumberTheory/NumberField/RayClass/RayGroup.lean:40
def rayGroup (m : Modulus K) : Subgroup (coprimeFractionalIdeals m) :=
Subgroup.closure (rayGenerators m)
MathlibExt/NumberTheory/NumberField/RayClass/RayGroup.lean:116
toSubgroup : Subgroup (coprimeFractionalIdeals m)
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceSubgroup.lean:28
Uses 2 Β· Used by 16
DefinitionImage of a congruence subgroup in the ray class group#βfully proved
Let \(H\) be a congruence subgroup for a modulus \(\mathfrak m\) of a number field \(K\), and let \(\pi\) be the canonical projection from the group of invertible fractional ideals of \(K\) coprime to the finite part of \(\mathfrak m\) onto the ray class group of \(\mathfrak m\). The image of \(H\) is the subgroup \(\pi(H)\) of the ray class group.
def image (C : CongruenceSubgroup (K := K) m) :
Subgroup (RayClassGroup m) :=
C.toSubgroup.map (rayClassMap m)
@[ext] structure CongruenceSubgroup (m : Modulus K) where
/-- Underlying subgroup of the coprime ideals. -/
toSubgroup : Subgroup (coprimeFractionalIdeals m)
/-- The ray group is contained in the subgroup. -/
rayGroup_le : rayGroup m β€ toSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceSubgroup.lean:26
abbrev RayClassGroup (m : Modulus K) :=
β₯(coprimeFractionalIdeals m) β§Έ rayGroup m
MathlibExt/NumberTheory/NumberField/RayClass/Group.lean:28
def rayClassMap (m : Modulus K) :
coprimeFractionalIdeals m β* RayClassGroup m :=
QuotientGroup.mk' (rayGroup m)
MathlibExt/NumberTheory/NumberField/RayClass/Group.lean:32
Uses 5 Β· Used by 1
TheoremMembership in the image of a congruence subgroup#βfully proved
Let \(H\) be a congruence subgroup for a modulus \(\mathfrak m\) of a number field \(K\), and let \(\pi\) be the canonical projection from the group of invertible fractional ideals of \(K\) coprime to the finite part of \(\mathfrak m\) onto the ray class group of \(\mathfrak m\). An element \(x\) of the ray class group lies in the image \(\pi(H)\) if and only if \(\pi(y) = x\) for some \(y \in H\).
theorem mem_image_iff (C : CongruenceSubgroup (K := K) m)
(x : RayClassGroup m) :
x β C.image β β y β C.toSubgroup, rayClassMap m y = x
@[ext] structure CongruenceSubgroup (m : Modulus K) where
/-- Underlying subgroup of the coprime ideals. -/
toSubgroup : Subgroup (coprimeFractionalIdeals m)
/-- The ray group is contained in the subgroup. -/
rayGroup_le : rayGroup m β€ toSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceSubgroup.lean:26
abbrev RayClassGroup (m : Modulus K) :=
β₯(coprimeFractionalIdeals m) β§Έ rayGroup m
MathlibExt/NumberTheory/NumberField/RayClass/Group.lean:28
def rayClassMap (m : Modulus K) :
coprimeFractionalIdeals m β* RayClassGroup m :=
QuotientGroup.mk' (rayGroup m)
MathlibExt/NumberTheory/NumberField/RayClass/Group.lean:32
Uses 6
DefinitionCongruence subgroup as a subgroup of all invertible fractional ideals#βfully proved
For a congruence subgroup \(H\) for a modulus \(\mathfrak m\) of a number field \(K\), this is the image of \(H\) under the inclusion of the group of invertible fractional ideals of \(K\) coprime to the finite part of \(\mathfrak m\) into the group of all invertible fractional ideals of \(K\).
def toAmbientSubgroup (C : CongruenceSubgroup (K := K) m) :
Subgroup ((FractionalIdeal (π K)β° K)Λ£) :=
C.toSubgroup.map (coprimeFractionalIdeals m).subtype
@[ext] structure CongruenceSubgroup (m : Modulus K) where
/-- Underlying subgroup of the coprime ideals. -/
toSubgroup : Subgroup (coprimeFractionalIdeals m)
/-- The ray group is contained in the subgroup. -/
rayGroup_le : rayGroup m β€ toSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceSubgroup.lean:26
def coprimeFractionalIdeals (m : Modulus K) :
Subgroup (FractionalIdeal (π K)β° K)Λ£ where
carrier :=
{ u |
β v, finiteSupported m v β
FractionalIdeal.count K v (u : FractionalIdeal (π K)β° K) = 0 }
one_mem' := by
intro v _
rw [Units.val_one]
exact FractionalIdeal.count_one K v
mul_mem' := by
intro a b ha hb v hv
β―
MathlibExt/NumberTheory/NumberField/RayClass/RayGroup.lean:40
Uses 2 Β· Used by 10
DefinitionSmallest congruence subgroup#βfully proved
For a modulus \(\mathfrak m\) of a number field \(K\), the smallest congruence subgroup for \(\mathfrak m\) is the ray group of \(\mathfrak m\) itself, a subgroup of the group of invertible fractional ideals of \(K\) coprime to the finite part of \(\mathfrak m\).
def smallest (m : Modulus K) : CongruenceSubgroup (K := K) m :=
β¨rayGroup m, le_rflβ©
@[ext] structure Modulus (K : Type*) [Field K] [NumberField K] where
finitePart : (Ideal (π K))β°
infinitePart : Finset (RealPlace K)
MathlibExt/NumberTheory/NumberField/RayClass/Modulus.lean:30
@[ext] structure CongruenceSubgroup (m : Modulus K) where
/-- Underlying subgroup of the coprime ideals. -/
toSubgroup : Subgroup (coprimeFractionalIdeals m)
/-- The ray group is contained in the subgroup. -/
rayGroup_le : rayGroup m β€ toSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceSubgroup.lean:26
def rayGroup (m : Modulus K) : Subgroup (coprimeFractionalIdeals m) :=
Subgroup.closure (rayGenerators m)
MathlibExt/NumberTheory/NumberField/RayClass/RayGroup.lean:116
Uses 3
DefinitionLargest congruence subgroup#βfully proved
For a modulus \(\mathfrak m\) of a number field \(K\), the largest congruence subgroup for \(\mathfrak m\) is the whole group of invertible fractional ideals of \(K\) coprime to the finite part of \(\mathfrak m\), which contains the ray group of \(\mathfrak m\).
def largest (m : Modulus K) : CongruenceSubgroup (K := K) m :=
β¨β€, le_topβ©
@[ext] structure Modulus (K : Type*) [Field K] [NumberField K] where
finitePart : (Ideal (π K))β°
infinitePart : Finset (RealPlace K)
MathlibExt/NumberTheory/NumberField/RayClass/Modulus.lean:30
@[ext] structure CongruenceSubgroup (m : Modulus K) where
/-- Underlying subgroup of the coprime ideals. -/
toSubgroup : Subgroup (coprimeFractionalIdeals m)
/-- The ray group is contained in the subgroup. -/
rayGroup_le : rayGroup m β€ toSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceSubgroup.lean:26
Uses 3
StructureCongruence subgroup pair#βfully proved
Let \(K\) be a number field. A congruence subgroup pair for \(K\) consists of a modulus \(\mathfrak m\) of \(K\) together with a congruence subgroup for \(\mathfrak m\), that is, a subgroup of the group of invertible fractional ideals of \(K\) coprime to the finite part of \(\mathfrak m\) that contains the ray group of \(\mathfrak m\).
structure CongruenceSubgroupPair (K : Type*) [Field K] [NumberField K] where
/-- The modulus of the pair. -/
modulus : Modulus K
/-- The congruence subgroup for `modulus`. -/
subgroup : CongruenceSubgroup modulus
@[ext] structure Modulus (K : Type*) [Field K] [NumberField K] where
finitePart : (Ideal (π K))β°
infinitePart : Finset (RealPlace K)
MathlibExt/NumberTheory/NumberField/RayClass/Modulus.lean:30
@[ext] structure CongruenceSubgroup (m : Modulus K) where
/-- Underlying subgroup of the coprime ideals. -/
toSubgroup : Subgroup (coprimeFractionalIdeals m)
/-- The ray group is contained in the subgroup. -/
rayGroup_le : rayGroup m β€ toSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceSubgroup.lean:26
modulus : Modulus K
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceEquivalence.lean:29
Uses 1 Β· Used by 6
DefinitionEquivalence of congruence subgroup pairs#βfully proved
Let \(K\) be a number field. For a modulus \(\mathfrak m\) of \(K\), write \(I^{\mathfrak m}\) for the group of nonzero fractional ideals of \(K\) coprime to the finite part of \(\mathfrak m\). Two pairs \((\mathfrak m, H)\) and \((\mathfrak n, H')\), each consisting of a modulus of \(K\) and a congruence subgroup for it, are equivalent when \(I^{\mathfrak m} \cap H' = I^{\mathfrak n} \cap H\), where both congruence subgroups are viewed as subgroups of the group of all nonzero fractional ideals of \(K\).
def IsEquivalent (P Q : CongruenceSubgroupPair K) : Prop :=
coprimeFractionalIdeals P.modulus β Q.subgroup.toAmbientSubgroup =
coprimeFractionalIdeals Q.modulus β P.subgroup.toAmbientSubgroup
structure CongruenceSubgroupPair (K : Type*) [Field K] [NumberField K] where
/-- The modulus of the pair. -/
modulus : Modulus K
/-- The congruence subgroup for `modulus`. -/
subgroup : CongruenceSubgroup modulus
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceEquivalence.lean:27
def coprimeFractionalIdeals (m : Modulus K) :
Subgroup (FractionalIdeal (π K)β° K)Λ£ where
carrier :=
{ u |
β v, finiteSupported m v β
FractionalIdeal.count K v (u : FractionalIdeal (π K)β° K) = 0 }
one_mem' := by
intro v _
rw [Units.val_one]
exact FractionalIdeal.count_one K v
mul_mem' := by
intro a b ha hb v hv
β―
MathlibExt/NumberTheory/NumberField/RayClass/RayGroup.lean:40
Uses 4 Β· Used by 5
TheoremCriterion for equivalence of congruence subgroup pairs#βfully proved
Let \(K\) be a number field, and for a modulus \(\mathfrak m\) of \(K\) write \(I^{\mathfrak m}\) for the group of nonzero fractional ideals of \(K\) coprime to the finite part of \(\mathfrak m\). Two pairs \((\mathfrak m, H)\) and \((\mathfrak n, H')\), each consisting of a modulus of \(K\) and a congruence subgroup for it, are equivalent if and only if \(I^{\mathfrak m} \cap H' = I^{\mathfrak n} \cap H\) in the group of all nonzero fractional ideals of \(K\).
theorem isEquivalent_iff (P Q : CongruenceSubgroupPair K) :
IsEquivalent P Q β
coprimeFractionalIdeals P.modulus β Q.subgroup.toAmbientSubgroup =
coprimeFractionalIdeals Q.modulus β P.subgroup.toAmbientSubgroup
structure CongruenceSubgroupPair (K : Type*) [Field K] [NumberField K] where
/-- The modulus of the pair. -/
modulus : Modulus K
/-- The congruence subgroup for `modulus`. -/
subgroup : CongruenceSubgroup modulus
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceEquivalence.lean:27
def IsEquivalent (P Q : CongruenceSubgroupPair K) : Prop :=
coprimeFractionalIdeals P.modulus β Q.subgroup.toAmbientSubgroup =
coprimeFractionalIdeals Q.modulus β P.subgroup.toAmbientSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceEquivalence.lean:37
def coprimeFractionalIdeals (m : Modulus K) :
Subgroup (FractionalIdeal (π K)β° K)Λ£ where
carrier :=
{ u |
β v, finiteSupported m v β
FractionalIdeal.count K v (u : FractionalIdeal (π K)β° K) = 0 }
one_mem' := by
intro v _
rw [Units.val_one]
exact FractionalIdeal.count_one K v
mul_mem' := by
intro a b ha hb v hv
β―
MathlibExt/NumberTheory/NumberField/RayClass/RayGroup.lean:40
Uses 5 Β· Used by 1
TheoremEquivalence of congruence subgroup pairs is reflexive#βfully proved
Let \(K\) be a number field. Every pair consisting of a modulus of \(K\) and a congruence subgroup for it is equivalent to itself.
theorem IsEquivalent.refl (P : CongruenceSubgroupPair K) :
IsEquivalent P P
structure CongruenceSubgroupPair (K : Type*) [Field K] [NumberField K] where
/-- The modulus of the pair. -/
modulus : Modulus K
/-- The congruence subgroup for `modulus`. -/
subgroup : CongruenceSubgroup modulus
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceEquivalence.lean:27
def IsEquivalent (P Q : CongruenceSubgroupPair K) : Prop :=
coprimeFractionalIdeals P.modulus β Q.subgroup.toAmbientSubgroup =
coprimeFractionalIdeals Q.modulus β P.subgroup.toAmbientSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceEquivalence.lean:37
TheoremEquivalence of congruence subgroup pairs is symmetric#βfully proved
Let \(K\) be a number field. If a pair \(P\), consisting of a modulus of \(K\) and a congruence subgroup for it, is equivalent to such a pair \(Q\), then \(Q\) is equivalent to \(P\).
theorem IsEquivalent.symm {P Q : CongruenceSubgroupPair K} :
IsEquivalent P Q β IsEquivalent Q P
structure CongruenceSubgroupPair (K : Type*) [Field K] [NumberField K] where
/-- The modulus of the pair. -/
modulus : Modulus K
/-- The congruence subgroup for `modulus`. -/
subgroup : CongruenceSubgroup modulus
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceEquivalence.lean:27
def IsEquivalent (P Q : CongruenceSubgroupPair K) : Prop :=
coprimeFractionalIdeals P.modulus β Q.subgroup.toAmbientSubgroup =
coprimeFractionalIdeals Q.modulus β P.subgroup.toAmbientSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceEquivalence.lean:37
DefinitionRay group among all fractional ideals#βfully proved
For a modulus \(\mathfrak m\) of a number field \(K\), the ambient ray group of \(\mathfrak m\) is the image of the ray group of \(\mathfrak m\) under the inclusion of the group of nonzero fractional ideals of \(K\) coprime to the finite part of \(\mathfrak m\) into the group of all nonzero fractional ideals of \(K\).
def rayGroupAmbient (m : Modulus K) : Subgroup ((FractionalIdeal (π K)β° K)Λ£) :=
(rayGroup m).map (coprimeFractionalIdeals m).subtype
@[ext] structure Modulus (K : Type*) [Field K] [NumberField K] where
finitePart : (Ideal (π K))β°
infinitePart : Finset (RealPlace K)
MathlibExt/NumberTheory/NumberField/RayClass/Modulus.lean:30
def rayGroup (m : Modulus K) : Subgroup (coprimeFractionalIdeals m) :=
Subgroup.closure (rayGenerators m)
MathlibExt/NumberTheory/NumberField/RayClass/RayGroup.lean:116
def coprimeFractionalIdeals (m : Modulus K) :
Subgroup (FractionalIdeal (π K)β° K)Λ£ where
carrier :=
{ u |
β v, finiteSupported m v β
FractionalIdeal.count K v (u : FractionalIdeal (π K)β° K) = 0 }
one_mem' := by
intro v _
rw [Units.val_one]
exact FractionalIdeal.count_one K v
mul_mem' := by
intro a b ha hb v hv
β―
MathlibExt/NumberTheory/NumberField/RayClass/RayGroup.lean:40
Uses 2 Β· Used by 6
TheoremThe ray group consists of coprime ideals#βfully proved
For every modulus \(\mathfrak m\) of a number field \(K\), the ray group of \(\mathfrak m\), viewed as a subgroup of the group of nonzero fractional ideals of \(K\), is contained in the group of nonzero fractional ideals coprime to the finite part of \(\mathfrak m\).
theorem rayGroupAmbient_le_coprime (m : Modulus K) :
rayGroupAmbient m β€ coprimeFractionalIdeals m
@[ext] structure Modulus (K : Type*) [Field K] [NumberField K] where
finitePart : (Ideal (π K))β°
infinitePart : Finset (RealPlace K)
MathlibExt/NumberTheory/NumberField/RayClass/Modulus.lean:30
def rayGroupAmbient (m : Modulus K) : Subgroup ((FractionalIdeal (π K)β° K)Λ£) :=
(rayGroup m).map (coprimeFractionalIdeals m).subtype
MathlibExt/NumberTheory/NumberField/RayClass/ChangeModulus.lean:33
def coprimeFractionalIdeals (m : Modulus K) :
Subgroup (FractionalIdeal (π K)β° K)Λ£ where
carrier :=
{ u |
β v, finiteSupported m v β
FractionalIdeal.count K v (u : FractionalIdeal (π K)β° K) = 0 }
one_mem' := by
intro v _
rw [Units.val_one]
exact FractionalIdeal.count_one K v
mul_mem' := by
intro a b ha hb v hv
β―
MathlibExt/NumberTheory/NumberField/RayClass/RayGroup.lean:40
Uses 3
TheoremA congruence subgroup contains the ray group#βfully proved
Let \(C\) be a congruence subgroup for a modulus \(\mathfrak m\) of a number field \(K\). Viewed as subgroups of the group of nonzero fractional ideals of \(K\), the ray group of \(\mathfrak m\) is contained in \(C\).
theorem CongruenceSubgroup.rayGroupAmbient_le_toAmbientSubgroup
{m : Modulus K} (C : CongruenceSubgroup m) :
rayGroupAmbient m β€ C.toAmbientSubgroup
@[ext] structure Modulus (K : Type*) [Field K] [NumberField K] where
finitePart : (Ideal (π K))β°
infinitePart : Finset (RealPlace K)
MathlibExt/NumberTheory/NumberField/RayClass/Modulus.lean:30
@[ext] structure CongruenceSubgroup (m : Modulus K) where
/-- Underlying subgroup of the coprime ideals. -/
toSubgroup : Subgroup (coprimeFractionalIdeals m)
/-- The ray group is contained in the subgroup. -/
rayGroup_le : rayGroup m β€ toSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceSubgroup.lean:26
def rayGroupAmbient (m : Modulus K) : Subgroup ((FractionalIdeal (π K)β° K)Λ£) :=
(rayGroup m).map (coprimeFractionalIdeals m).subtype
MathlibExt/NumberTheory/NumberField/RayClass/ChangeModulus.lean:33
Uses 5 Β· Used by 1
TheoremCoprimality passes to divisors of a modulus#βfully proved
Let \(\mathfrak m_1\) and \(\mathfrak m_2\) be moduli of a number field \(K\) with \(\mathfrak m_2 \mid \mathfrak m_1\). Then every nonzero fractional ideal of \(K\) coprime to the finite part of \(\mathfrak m_1\) is coprime to the finite part of \(\mathfrak m_2\).
theorem coprimeFractionalIdeals_le_of_dvd {m1 m2 : Modulus K}
(h : m2 β£ m1) :
coprimeFractionalIdeals m1 β€ coprimeFractionalIdeals m2
@[ext] structure Modulus (K : Type*) [Field K] [NumberField K] where
finitePart : (Ideal (π K))β°
infinitePart : Finset (RealPlace K)
MathlibExt/NumberTheory/NumberField/RayClass/Modulus.lean:30
def coprimeFractionalIdeals (m : Modulus K) :
Subgroup (FractionalIdeal (π K)β° K)Λ£ where
carrier :=
{ u |
β v, finiteSupported m v β
FractionalIdeal.count K v (u : FractionalIdeal (π K)β° K) = 0 }
one_mem' := by
intro v _
rw [Units.val_one]
exact FractionalIdeal.count_one K v
mul_mem' := by
intro a b ha hb v hv
β―
MathlibExt/NumberTheory/NumberField/RayClass/RayGroup.lean:40
Uses 2 Β· Used by 3
DefinitionChange of modulus of a congruence subgroup#βfully proved
Let \(C_1\) be a congruence subgroup for a modulus \(\mathfrak m_1\) of a number field \(K\), viewed as a subgroup of the group of nonzero fractional ideals of \(K\), and let \(\mathfrak m_2\) be any modulus of \(K\). Write \(I^{\mathfrak m_2}\) for the group of nonzero fractional ideals of \(K\) coprime to the finite part of \(\mathfrak m_2\) and \(P_{\mathfrak m_2} \subseteq I^{\mathfrak m_2}\) for the ray group of \(\mathfrak m_2\). The change of modulus of \(C_1\) to \(\mathfrak m_2\) is the congruence subgroup for \(\mathfrak m_2\) generated, inside \(I^{\mathfrak m_2}\), by \(C_1 \cap I^{\mathfrak m_2}\) and \(P_{\mathfrak m_2}\).
def changeModulus {m1 : Modulus K} (C1 : CongruenceSubgroup m1)
(m2 : Modulus K) : CongruenceSubgroup m2 where
toSubgroup :=
C1.toAmbientSubgroup.comap (coprimeFractionalIdeals m2).subtype β
rayGroup m2
rayGroup_le := le_sup_right
@[ext] structure Modulus (K : Type*) [Field K] [NumberField K] where
finitePart : (Ideal (π K))β°
infinitePart : Finset (RealPlace K)
MathlibExt/NumberTheory/NumberField/RayClass/Modulus.lean:30
@[ext] structure CongruenceSubgroup (m : Modulus K) where
/-- Underlying subgroup of the coprime ideals. -/
toSubgroup : Subgroup (coprimeFractionalIdeals m)
/-- The ray group is contained in the subgroup. -/
rayGroup_le : rayGroup m β€ toSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceSubgroup.lean:26
def coprimeFractionalIdeals (m : Modulus K) :
Subgroup (FractionalIdeal (π K)β° K)Λ£ where
carrier :=
{ u |
β v, finiteSupported m v β
FractionalIdeal.count K v (u : FractionalIdeal (π K)β° K) = 0 }
one_mem' := by
intro v _
rw [Units.val_one]
exact FractionalIdeal.count_one K v
mul_mem' := by
intro a b ha hb v hv
β―
MathlibExt/NumberTheory/NumberField/RayClass/RayGroup.lean:40
def rayGroup (m : Modulus K) : Subgroup (coprimeFractionalIdeals m) :=
Subgroup.closure (rayGenerators m)
MathlibExt/NumberTheory/NumberField/RayClass/RayGroup.lean:116
Uses 4 Β· Used by 4
TheoremAmbient subgroup of a change of modulus#βfully proved
Let \(\mathfrak m_1\) and \(\mathfrak m_2\) be moduli of a number field \(K\) and let \(C_1\) be a congruence subgroup for \(\mathfrak m_1\). Write \(I^{\mathfrak m_2}\) for the group of nonzero fractional ideals of \(K\) coprime to the finite part of \(\mathfrak m_2\) and \(P_{\mathfrak m_2}\) for the ray group of \(\mathfrak m_2\). Viewing all of these as subgroups of the group of nonzero fractional ideals of \(K\), the change of modulus of \(C_1\) to \(\mathfrak m_2\) is the subgroup generated by \(C_1 \cap I^{\mathfrak m_2}\) and \(P_{\mathfrak m_2}\).
theorem changeModulus_toAmbientSubgroup {m1 m2 : Modulus K}
(C1 : CongruenceSubgroup m1) :
(changeModulus C1 m2).toAmbientSubgroup =
(C1.toAmbientSubgroup β coprimeFractionalIdeals m2) β
rayGroupAmbient m2
@[ext] structure Modulus (K : Type*) [Field K] [NumberField K] where
finitePart : (Ideal (π K))β°
infinitePart : Finset (RealPlace K)
MathlibExt/NumberTheory/NumberField/RayClass/Modulus.lean:30
@[ext] structure CongruenceSubgroup (m : Modulus K) where
/-- Underlying subgroup of the coprime ideals. -/
toSubgroup : Subgroup (coprimeFractionalIdeals m)
/-- The ray group is contained in the subgroup. -/
rayGroup_le : rayGroup m β€ toSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceSubgroup.lean:26
def changeModulus {m1 : Modulus K} (C1 : CongruenceSubgroup m1)
(m2 : Modulus K) : CongruenceSubgroup m2 where
toSubgroup :=
C1.toAmbientSubgroup.comap (coprimeFractionalIdeals m2).subtype β
rayGroup m2
rayGroup_le := le_sup_right
MathlibExt/NumberTheory/NumberField/RayClass/ChangeModulus.lean:61
def coprimeFractionalIdeals (m : Modulus K) :
Subgroup (FractionalIdeal (π K)β° K)Λ£ where
carrier :=
{ u |
β v, finiteSupported m v β
FractionalIdeal.count K v (u : FractionalIdeal (π K)β° K) = 0 }
one_mem' := by
intro v _
rw [Units.val_one]
exact FractionalIdeal.count_one K v
mul_mem' := by
intro a b ha hb v hv
β―
MathlibExt/NumberTheory/NumberField/RayClass/RayGroup.lean:40
def rayGroupAmbient (m : Modulus K) : Subgroup ((FractionalIdeal (π K)β° K)Λ£) :=
(rayGroup m).map (coprimeFractionalIdeals m).subtype
MathlibExt/NumberTheory/NumberField/RayClass/ChangeModulus.lean:33
Uses 6 Β· Used by 1
TheoremAmbient subgroup of a change of modulus to a divisor#βfully proved
Let \(\mathfrak m_1\) and \(\mathfrak m_2\) be moduli of a number field \(K\) with \(\mathfrak m_2 \mid \mathfrak m_1\), and let \(C_1\) be a congruence subgroup for \(\mathfrak m_1\). Viewed as subgroups of the group of nonzero fractional ideals of \(K\), the change of modulus of \(C_1\) to \(\mathfrak m_2\) equals the subgroup generated by \(C_1\) and the ray group \(P_{\mathfrak m_2}\) of \(\mathfrak m_2\).
theorem changeModulus_toAmbientSubgroup_of_dvd {m1 m2 : Modulus K}
(C1 : CongruenceSubgroup m1) (hdiv : m2 β£ m1) :
(changeModulus C1 m2).toAmbientSubgroup =
C1.toAmbientSubgroup β rayGroupAmbient m2
@[ext] structure Modulus (K : Type*) [Field K] [NumberField K] where
finitePart : (Ideal (π K))β°
infinitePart : Finset (RealPlace K)
MathlibExt/NumberTheory/NumberField/RayClass/Modulus.lean:30
@[ext] structure CongruenceSubgroup (m : Modulus K) where
/-- Underlying subgroup of the coprime ideals. -/
toSubgroup : Subgroup (coprimeFractionalIdeals m)
/-- The ray group is contained in the subgroup. -/
rayGroup_le : rayGroup m β€ toSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceSubgroup.lean:26
def changeModulus {m1 : Modulus K} (C1 : CongruenceSubgroup m1)
(m2 : Modulus K) : CongruenceSubgroup m2 where
toSubgroup :=
C1.toAmbientSubgroup.comap (coprimeFractionalIdeals m2).subtype β
rayGroup m2
rayGroup_le := le_sup_right
MathlibExt/NumberTheory/NumberField/RayClass/ChangeModulus.lean:61
def rayGroupAmbient (m : Modulus K) : Subgroup ((FractionalIdeal (π K)β° K)Λ£) :=
(rayGroup m).map (coprimeFractionalIdeals m).subtype
MathlibExt/NumberTheory/NumberField/RayClass/ChangeModulus.lean:33
Uses 7 Β· Used by 1
TheoremThe change of modulus is equivalent to the original pair#βfully proved
Let \(\mathfrak m_1\) and \(\mathfrak m_2\) be moduli of a number field \(K\) with \(\mathfrak m_2 \mid \mathfrak m_1\), and let \(C_1\) be a congruence subgroup for \(\mathfrak m_1\). Write \(I^{\mathfrak m_1}\) for the group of nonzero fractional ideals of \(K\) coprime to the finite part of \(\mathfrak m_1\) and \(P_{\mathfrak m_2}\) for the ray group of \(\mathfrak m_2\), and view all of these as subgroups of the group of nonzero fractional ideals of \(K\). If \(I^{\mathfrak m_1} \cap P_{\mathfrak m_2} \subseteq C_1\), then the pair \((\mathfrak m_1, C_1)\) is equivalent to the pair \((\mathfrak m_2, C_2)\), where \(C_2\) is the change of modulus of \(C_1\) to \(\mathfrak m_2\).
theorem changeModulus_isEquivalent {m1 m2 : Modulus K}
(C1 : CongruenceSubgroup m1) (hdiv : m2 β£ m1)
(hcond : coprimeFractionalIdeals m1 β rayGroupAmbient m2 β€
C1.toAmbientSubgroup) :
CongruenceSubgroupPair.IsEquivalent
{ modulus := m1, subgroup := C1 }
{ modulus := m2, subgroup := changeModulus C1 m2 }
@[ext] structure Modulus (K : Type*) [Field K] [NumberField K] where
finitePart : (Ideal (π K))β°
infinitePart : Finset (RealPlace K)
MathlibExt/NumberTheory/NumberField/RayClass/Modulus.lean:30
@[ext] structure CongruenceSubgroup (m : Modulus K) where
/-- Underlying subgroup of the coprime ideals. -/
toSubgroup : Subgroup (coprimeFractionalIdeals m)
/-- The ray group is contained in the subgroup. -/
rayGroup_le : rayGroup m β€ toSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceSubgroup.lean:26
def coprimeFractionalIdeals (m : Modulus K) :
Subgroup (FractionalIdeal (π K)β° K)Λ£ where
carrier :=
{ u |
β v, finiteSupported m v β
FractionalIdeal.count K v (u : FractionalIdeal (π K)β° K) = 0 }
one_mem' := by
intro v _
rw [Units.val_one]
exact FractionalIdeal.count_one K v
mul_mem' := by
intro a b ha hb v hv
β―
MathlibExt/NumberTheory/NumberField/RayClass/RayGroup.lean:40
def rayGroupAmbient (m : Modulus K) : Subgroup ((FractionalIdeal (π K)β° K)Λ£) :=
(rayGroup m).map (coprimeFractionalIdeals m).subtype
MathlibExt/NumberTheory/NumberField/RayClass/ChangeModulus.lean:33
def IsEquivalent (P Q : CongruenceSubgroupPair K) : Prop :=
coprimeFractionalIdeals P.modulus β Q.subgroup.toAmbientSubgroup =
coprimeFractionalIdeals Q.modulus β P.subgroup.toAmbientSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceEquivalence.lean:37
def changeModulus {m1 : Modulus K} (C1 : CongruenceSubgroup m1)
(m2 : Modulus K) : CongruenceSubgroup m2 where
toSubgroup :=
C1.toAmbientSubgroup.comap (coprimeFractionalIdeals m2).subtype β
rayGroup m2
rayGroup_le := le_sup_right
MathlibExt/NumberTheory/NumberField/RayClass/ChangeModulus.lean:61
Uses 9 Β· Used by 1
TheoremCriterion for an equivalent congruence subgroup at a divisor of the modulus#βfully proved
Let \(\mathfrak m_1\) and \(\mathfrak m_2\) be moduli of a number field \(K\) with \(\mathfrak m_2 \mid \mathfrak m_1\), and let \(C_1\) be a congruence subgroup for \(\mathfrak m_1\). Write \(I^{\mathfrak m_1}\) for the group of nonzero fractional ideals of \(K\) coprime to the finite part of \(\mathfrak m_1\) and \(P_{\mathfrak m_2}\) for the ray group of \(\mathfrak m_2\), and view all of these as subgroups of the group of nonzero fractional ideals of \(K\). Then there is a congruence subgroup \(C_2\) for \(\mathfrak m_2\) such that the pair \((\mathfrak m_1, C_1)\) is equivalent to the pair \((\mathfrak m_2, C_2)\) if and only if \(I^{\mathfrak m_1} \cap P_{\mathfrak m_2} \subseteq C_1\).
theorem exists_equivalent_iff_changeModulus {m1 : Modulus K}
(C1 : CongruenceSubgroup m1) {m2 : Modulus K} (hdiv : m2 β£ m1) :
(β C2 : CongruenceSubgroup m2,
CongruenceSubgroupPair.IsEquivalent
{ modulus := m1, subgroup := C1 }
{ modulus := m2, subgroup := C2 }) β
coprimeFractionalIdeals m1 β rayGroupAmbient m2 β€
C1.toAmbientSubgroup
@[ext] structure Modulus (K : Type*) [Field K] [NumberField K] where
finitePart : (Ideal (π K))β°
infinitePart : Finset (RealPlace K)
MathlibExt/NumberTheory/NumberField/RayClass/Modulus.lean:30
@[ext] structure CongruenceSubgroup (m : Modulus K) where
/-- Underlying subgroup of the coprime ideals. -/
toSubgroup : Subgroup (coprimeFractionalIdeals m)
/-- The ray group is contained in the subgroup. -/
rayGroup_le : rayGroup m β€ toSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceSubgroup.lean:26
def IsEquivalent (P Q : CongruenceSubgroupPair K) : Prop :=
coprimeFractionalIdeals P.modulus β Q.subgroup.toAmbientSubgroup =
coprimeFractionalIdeals Q.modulus β P.subgroup.toAmbientSubgroup
MathlibExt/NumberTheory/NumberField/RayClass/CongruenceEquivalence.lean:37
def coprimeFractionalIdeals (m : Modulus K) :
Subgroup (FractionalIdeal (π K)β° K)Λ£ where
carrier :=
{ u |
β v, finiteSupported m v β
FractionalIdeal.count K v (u : FractionalIdeal (π K)β° K) = 0 }
one_mem' := by
intro v _
rw [Units.val_one]
exact FractionalIdeal.count_one K v
mul_mem' := by
intro a b ha hb v hv
β―
MathlibExt/NumberTheory/NumberField/RayClass/RayGroup.lean:40
def rayGroupAmbient (m : Modulus K) : Subgroup ((FractionalIdeal (π K)β° K)Λ£) :=
(rayGroup m).map (coprimeFractionalIdeals m).subtype
MathlibExt/NumberTheory/NumberField/RayClass/ChangeModulus.lean:33
Sources
- ATLAS NumberTheoryI item N422, Lemma 22.5.
Loading dependency explorerβ¦
The dependency explorer needs JavaScript and its graph data.