Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump to v4.16.0 rc2 #313

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion FLT/AutomorphicForm/QuaternionAlgebra/Defs.lean
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ noncomputable abbrev incl₁ : Dˣ →* Dfx F D :=
Units.map Algebra.TensorProduct.includeLeftRingHom.toMonoidHom

noncomputable abbrev incl₂ : (FiniteAdeleRing (𝓞 F) F)ˣ →* Dfx F D :=
Units.map Algebra.TensorProduct.rightAlgebra.toMonoidHom
Units.map Algebra.TensorProduct.rightAlgebra.algebraMap.toMonoidHom

/-!
This definition is made in mathlib-generality but is *not* the definition of an automorphic
Expand Down
32 changes: 22 additions & 10 deletions FLT/DedekindDomain/FiniteAdeleRing/BaseChange.lean
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
import Mathlib.Algebra.Algebra.Subalgebra.Pi
import Mathlib.Algebra.Group.Int.TypeTags
import Mathlib.Algebra.Lie.OfAssociative
import Mathlib.Algebra.Order.Group.Int
import Mathlib.FieldTheory.Separable
import Mathlib.NumberTheory.RamificationInertia.Basic
import Mathlib.Order.CompletePartialOrder
import Mathlib.RingTheory.DedekindDomain.Dvr
import Mathlib.RingTheory.DedekindDomain.FiniteAdeleRing
import Mathlib.RingTheory.DedekindDomain.IntegralClosure
import Mathlib.Topology.Algebra.Algebra
import Mathlib.RingTheory.Henselian
import Mathlib.Topology.Algebra.Module.ModuleTopology
import FLT.Mathlib.Algebra.Algebra.Subalgebra.Pi
import Mathlib.Topology.Separation.CompletelyRegular
import FLT.Mathlib.Algebra.Order.Hom.Monoid

import Mathlib.RingTheory.DedekindDomain.IntegralClosure -- for example

/-!

# Base change of adele rings.
Expand Down Expand Up @@ -194,13 +201,18 @@ noncomputable def adicCompletionComapRingHom
-- So we need to be careful making L_w into a K-algebra
-- https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/beef.20up.20smul.20on.20completion.20to.20algebra.20instance/near/484166527
-- Hopefully resolved in https://github.com/leanprover-community/mathlib4/pull/19466
variable (w : HeightOneSpectrum B) in
noncomputable instance : SMul K (w.adicCompletion L) := inferInstanceAs <|
SMul K (@UniformSpace.Completion L w.adicValued.toUniformSpace)

variable (w : HeightOneSpectrum B) in
noncomputable instance : Algebra K (adicCompletion L w) where
toFun k := algebraMap L (adicCompletion L w) (algebraMap K L k)
map_one' := by simp only [map_one]
map_mul' k₁ k₂ := by simp only [map_mul]
map_zero' := by simp only [map_zero]
map_add' k₁ k₂ := by simp only [map_add]
algebraMap :=
{ toFun k := algebraMap L (adicCompletion L w) (algebraMap K L k)
map_one' := by simp only [map_one]
map_mul' k₁ k₂ := by simp only [map_mul]
map_zero' := by simp only [map_zero]
map_add' k₁ k₂ := by simp only [map_add] }
commutes' k lhat := mul_comm _ _
smul_def' k lhat := by
simp only [RingHom.coe_mk, MonoidHom.coe_mk, OneHom.coe_mk]
Expand Down Expand Up @@ -253,8 +265,8 @@ lemma v_adicCompletionComapAlgHom
· exact Valued.continuous_valuation.pow _
· exact Valued.continuous_valuation.comp (adicCompletionComapAlgHom ..).cont
intro a
simp only [Valued.valuedCompletion_apply, adicCompletionComapAlgHom_coe]
show v.valuation a ^ _ = (w.valuation _)
simp_rw [adicCompletionComapAlgHom_coe, adicCompletion, Valued.valuedCompletion_apply,
adicValued_apply]
subst hvw
rw [← valuation_comap A K L B w a]

Expand Down
1 change: 0 additions & 1 deletion FLT/DivisionAlgebra/Finiteness.lean
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import Mathlib.NumberTheory.NumberField.Basic
import Mathlib.RingTheory.DedekindDomain.FiniteAdeleRing
import Mathlib.Algebra.Group.Subgroup.Pointwise
import FLT.Mathlib.Topology.Algebra.Module.ModuleTopology
import FLT.NumberField.IsTotallyReal
import FLT.NumberField.AdeleRing
import Mathlib.GroupTheory.DoubleCoset

Expand Down
4 changes: 0 additions & 4 deletions FLT/FLT_files.lean
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ import FLT.Hard.Results
import FLT.HIMExperiments.flatness
import FLT.Junk.Algebra
import FLT.Junk.Algebra2
import FLT.Mathlib.Algebra.Algebra.Subalgebra.Pi
import FLT.Mathlib.Algebra.BigOperators.Finprod
import FLT.Mathlib.Algebra.Group.Subgroup.Defs
import FLT.Mathlib.Algebra.Module.LinearMap.Defs
import FLT.Mathlib.Algebra.Order.Hom.Monoid
Expand All @@ -32,7 +30,6 @@ import FLT.MathlibExperiments.Coalgebra.TensorProduct
import FLT.MathlibExperiments.HopfAlgebra.Basic
import FLT.MathlibExperiments.IsCentralSimple
import FLT.MathlibExperiments.IsFrobenius
import FLT.Mathlib.GroupTheory.Complement
import FLT.Mathlib.GroupTheory.Index
import FLT.Mathlib.LinearAlgebra.Determinant
import FLT.Mathlib.LinearAlgebra.Span.Defs
Expand All @@ -47,5 +44,4 @@ import FLT.Mathlib.Topology.Constructions
import FLT.Mathlib.Topology.Homeomorph
import FLT.NumberField.AdeleRing
import FLT.NumberField.InfiniteAdeleRing
import FLT.NumberField.IsTotallyReal
import FLT.TateCurve.TateCurve
2 changes: 1 addition & 1 deletion FLT/GlobalLanglandsConjectures/GLnDefs.lean
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ variable (n : ℕ)
variable (G : Type) [TopologicalSpace G] [Group G]
(E : Type) [NormedAddCommGroup E] [NormedSpace ℝ E]
[ChartedSpace E G]
[LieGroup 𝓘(ℝ, E) G]
[LieGroup 𝓘(ℝ, E) G]

def action :
LeftInvariantDerivation 𝓘(ℝ, E) G →ₗ⁅ℝ⁆ (Module.End ℝ C^∞⟮𝓘(ℝ, E), G; ℝ⟯) where
Expand Down
2 changes: 1 addition & 1 deletion FLT/GlobalLanglandsConjectures/GLzero.lean
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ def ofComplex (c : ℂ) : AutomorphicFormForGLnOverQ 0 ρ := {
rw [annihilator]
simp
exact {
out := by sorry
fg_top := by sorry
}
has_finite_level := by
let U : Subgroup (GL (Fin 0) (DedekindDomain.FiniteAdeleRing ℤ ℚ)) := {
Expand Down
2 changes: 1 addition & 1 deletion FLT/HIMExperiments/flatness.lean
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ theorem flat_iff_torsion_eq_bot [IsPrincipalIdealRing R] [IsDomain R] :
-- now assume R is a PID and M is a torsionfree R-module
· intro htors
-- we need to show that if I is an ideal of R then the natural map I ⊗ M → M is injective
constructor
rw [iff_lift_lsmul_comp_subtype_injective]
rintro I -
-- If I = 0 this is obvious because I ⊗ M is a subsingleton (i.e. has ≤1 element)
obtain (rfl | h) := eq_or_ne I ⊥
Expand Down
9 changes: 0 additions & 9 deletions FLT/Mathlib/Algebra/Algebra/Subalgebra/Pi.lean

This file was deleted.

20 changes: 0 additions & 20 deletions FLT/Mathlib/Algebra/BigOperators/Finprod.lean

This file was deleted.

5 changes: 3 additions & 2 deletions FLT/Mathlib/Algebra/Module/LinearMap/Defs.lean
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Mathlib.Algebra.BigOperators.Finprod
import Mathlib.Algebra.Module.LinearMap.Defs
import Mathlib.Data.Fintype.Option
import FLT.Mathlib.Algebra.BigOperators.Finprod

theorem LinearMap.finsum_apply {R : Type*} [Semiring R] {A B : Type*} [AddCommMonoid A] [Module R A]
[AddCommMonoid B] [Module R B] {ι : Type*} [Finite ι] (φ : ∀ _ : ι, A →ₗ[R] B) (a : A) :
Expand All @@ -12,4 +12,5 @@ theorem LinearMap.finsum_apply {R : Type*} [Semiring R] {A B : Type*} [AddCommMo
· exact (finsum_comp_equiv e).symm
· simp [finsum_of_isEmpty]
· case h_option X _ hX =>
simp [finsum_option, hX]
rw [finsum_option (Set.toFinite _), finsum_option (Set.toFinite _)]
simp [hX]
54 changes: 0 additions & 54 deletions FLT/Mathlib/GroupTheory/Complement.lean

This file was deleted.

8 changes: 4 additions & 4 deletions FLT/Mathlib/MeasureTheory/Group/Action.lean
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import Mathlib.GroupTheory.Complement
import Mathlib.MeasureTheory.Group.Action
import Mathlib.MeasureTheory.Group.Pointwise
import Mathlib.Topology.Algebra.InfiniteSum.ENNReal
import FLT.Mathlib.Algebra.Group.Subgroup.Defs
import FLT.Mathlib.GroupTheory.Complement
import FLT.Mathlib.GroupTheory.Index

/-!
Expand Down Expand Up @@ -45,12 +45,12 @@ instance (μ : Measure G) [μ.IsMulRightInvariant] :
@[to_additive index_mul_addHaar_addSubgroup]
lemma index_mul_haar_subgroup [H.FiniteIndex] (hH : MeasurableSet (H : Set G)) (μ : Measure G)
[μ.IsMulLeftInvariant] : H.index * μ H = μ univ := by
obtain ⟨s, hs, -⟩ := H.exists_left_transversal 1
have hs' : Finite s := finite_of_mem_leftTransversals hs
obtain ⟨s, hs, -⟩ := H.exists_isComplement_left 1
have hs' : Finite s := hs.finite_left_iff.mpr inferInstance
calc
H.index * μ H = ∑' a : s, μ (a.val • H) := by
simp [measure_smul]
rw [← Set.Finite.cast_ncard_eq hs', ← Nat.card_coe_set_eq, card_left_transversal hs]
rw [← Set.Finite.cast_ncard_eq hs', ← Nat.card_coe_set_eq, hs.card_left]
norm_cast
_ = μ univ := by
rw [← measure_iUnion _ fun _ ↦ hH.const_smul _]
Expand Down
37 changes: 0 additions & 37 deletions FLT/Mathlib/RingTheory/DedekindDomain/AdicValuation.lean

This file was deleted.

2 changes: 1 addition & 1 deletion FLT/Mathlib/Topology/Algebra/Module/ModuleTopology.lean
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ theorem Module.continuous_bilinear_of_pi_finite (ι : Type*) [Finite ι]
-- Is there a missing delaborator? No ∑ᶠ notation
change (∑ᶠ (i : ι), Pi.single i (f i)) j = f j
-- last tactic has no effect
rw [finsum_apply]
rw [finsum_apply (Set.toFinite _)]
convert finsum_eq_single (fun i ↦ Pi.single i (f i) j) j
(by simp (config := {contextual := true})) using 1
simp
Expand Down
29 changes: 15 additions & 14 deletions FLT/NumberField/AdeleRing.lean
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
import Mathlib
import FLT.Mathlib.NumberTheory.NumberField.Basic
import FLT.Mathlib.RingTheory.DedekindDomain.AdicValuation

universe u

open NumberField

section LocallyCompact

-- see https://github.com/smmercuri/adele-ring_locally-compact
-- for a proof of this

variable (K : Type*) [Field K] [NumberField K]

instance NumberField.AdeleRing.locallyCompactSpace : LocallyCompactSpace (AdeleRing K) :=
instance NumberField.AdeleRing.locallyCompactSpace : LocallyCompactSpace (AdeleRing (𝓞 K) K) :=
sorry -- issue #253

end LocallyCompact
Expand All @@ -22,10 +23,10 @@ end BaseChange

section Discrete

open NumberField DedekindDomain
open DedekindDomain

theorem Rat.AdeleRing.zero_discrete : ∃ U : Set (AdeleRing ℚ),
IsOpen U ∧ (algebraMap ℚ (AdeleRing ℚ)) ⁻¹' U = {0} := by
theorem Rat.AdeleRing.zero_discrete : ∃ U : Set (AdeleRing (𝓞 ℚ) ℚ),
IsOpen U ∧ (algebraMap ℚ (AdeleRing (𝓞 ℚ) ℚ)) ⁻¹' U = {0} := by
use {f | ∀ v, f v ∈ (Metric.ball 0 1)} ×ˢ
{f | ∀ v , f v ∈ IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers ℚ v}
refine ⟨?_, ?_⟩
Expand All @@ -36,7 +37,7 @@ theorem Rat.AdeleRing.zero_discrete : ∃ U : Set (AdeleRing ℚ),
· intro x hx
rw [Set.mem_preimage] at hx
simp only [Set.mem_singleton_iff]
have : (algebraMap ℚ (AdeleRing ℚ)) x =
have : (algebraMap ℚ (AdeleRing (𝓞 ℚ) ℚ)) x =
(algebraMap ℚ (InfiniteAdeleRing ℚ) x, algebraMap ℚ (FiniteAdeleRing (𝓞 ℚ) ℚ) x)
· rfl
rw [this] at hx
Expand All @@ -52,7 +53,7 @@ theorem Rat.AdeleRing.zero_discrete : ∃ U : Set (AdeleRing ℚ),
simp at h1
have intx: ∃ (y:ℤ), y = x
· obtain ⟨z, hz⟩ := IsDedekindDomain.HeightOneSpectrum.mem_integers_of_valuation_le_one
(𝓞 ℚ) ℚ x <| fun v ↦ by
ℚ x <| fun v ↦ by
specialize h2 v
letI : UniformSpace ℚ := v.adicValued.toUniformSpace
rw [IsDedekindDomain.HeightOneSpectrum.mem_adicCompletionIntegers] at h2
Expand Down Expand Up @@ -88,11 +89,11 @@ theorem Rat.AdeleRing.zero_discrete : ∃ U : Set (AdeleRing ℚ),
-- Maybe this discreteness isn't even stated in the best way?
-- I'm ambivalent about how it's stated
open Pointwise in
theorem Rat.AdeleRing.discrete : ∀ q : ℚ, ∃ U : Set (AdeleRing ℚ),
IsOpen U ∧ (algebraMap ℚ (AdeleRing ℚ)) ⁻¹' U = {q} := by
theorem Rat.AdeleRing.discrete : ∀ q : ℚ, ∃ U : Set (AdeleRing (𝓞 ℚ) ℚ),
IsOpen U ∧ (algebraMap ℚ (AdeleRing (𝓞 ℚ) ℚ)) ⁻¹' U = {q} := by
obtain ⟨V, hV, hV0⟩ := zero_discrete
intro q
set ι := algebraMap ℚ (AdeleRing ℚ) with hι
set ι := algebraMap ℚ (AdeleRing (𝓞 ℚ) ℚ) with hι
set qₐ := ι q with hqₐ
set f := Homeomorph.subLeft qₐ with hf
use f ⁻¹' V, f.isOpen_preimage.mpr hV
Expand All @@ -104,8 +105,8 @@ theorem Rat.AdeleRing.discrete : ∀ q : ℚ, ∃ U : Set (AdeleRing ℚ),

variable (K : Type*) [Field K] [NumberField K]

theorem NumberField.AdeleRing.discrete : ∀ k : K, ∃ U : Set (AdeleRing K),
IsOpen U ∧ (algebraMap K (AdeleRing K)) ⁻¹' U = {k} := sorry -- issue #257
theorem NumberField.AdeleRing.discrete : ∀ k : K, ∃ U : Set (AdeleRing (𝓞 K) K),
IsOpen U ∧ (algebraMap K (AdeleRing (𝓞 K) K)) ⁻¹' U = {k} := sorry -- issue #257

end Discrete

Expand All @@ -114,13 +115,13 @@ section Compact
open NumberField

theorem Rat.AdeleRing.cocompact :
CompactSpace (AdeleRing ⧸ AddMonoidHom.range (algebraMap ℚ (AdeleRing ℚ)).toAddMonoidHom) :=
CompactSpace (AdeleRing (𝓞 ℚ) ℚ ⧸ AddMonoidHom.range (algebraMap ℚ (AdeleRing (𝓞 ℚ) ℚ)).toAddMonoidHom) :=
sorry -- issue #258

variable (K : Type*) [Field K] [NumberField K]

theorem NumberField.AdeleRing.cocompact :
CompactSpace (AdeleRing K ⧸ AddMonoidHom.range (algebraMap K (AdeleRing K)).toAddMonoidHom) :=
CompactSpace (AdeleRing (𝓞 K) K ⧸ AddMonoidHom.range (algebraMap K (AdeleRing (𝓞 K) K)).toAddMonoidHom) :=
sorry -- issue #259

end Compact
Loading
Loading