forked from ImperialCollegeLondon/FLT
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Issue ImperialCollegeLondon#259: Proof that A_K/K is compact, assumin…
…g that A_Q/Q is compact
- Loading branch information
Showing
8 changed files
with
249 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
import Mathlib.LinearAlgebra.TensorProduct.Pi | ||
|
||
theorem TensorProduct.piScalarRight_symm_apply (R S N ι : Type*) [CommSemiring R] | ||
[CommSemiring S] [Algebra R S] [AddCommMonoid N] [Module R N] [Module S N] | ||
[IsScalarTower R S N] [Fintype ι] [DecidableEq ι] (x : ι → N) : | ||
(TensorProduct.piScalarRight R S N ι).symm x = (LinearMap.lsum S (fun _ => N) S (fun i => { | ||
toFun := fun n => n ⊗ₜ[R] Pi.single i (1 : R) | ||
map_add' := fun _ _ => by simp [add_tmul] | ||
map_smul' := fun _ _ => rfl | ||
}) x) := rfl |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
import Mathlib.RingTheory.TensorProduct.Pi | ||
import FLT.ForMathlib.LinearAlgebra.TensorProduct.Pi | ||
|
||
theorem Algebra.TensorProduct.piScalarRight_symm_apply_of_algebraMap (R S N ι : Type*) | ||
[CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring N] [Algebra R N] [Algebra S N] | ||
[IsScalarTower R S N] [Fintype ι] [DecidableEq ι] (x : ι → R) : | ||
(TensorProduct.piScalarRight R S N ι).symm (fun i => algebraMap _ _ (x i)) = | ||
1 ⊗ₜ[R] (∑ i, Pi.single i (x i)) := by | ||
simp only [_root_.TensorProduct.piScalarRight_symm_apply, LinearMap.lsum_apply, | ||
LinearMap.coeFn_sum, LinearMap.coe_comp, LinearMap.coe_mk, AddHom.coe_mk, LinearMap.coe_proj, | ||
Finset.sum_apply, Function.comp_apply, Function.eval, Algebra.algebraMap_eq_smul_one, | ||
TensorProduct.smul_tmul, ← TensorProduct.tmul_sum, ← Pi.single_smul, smul_eq_mul, mul_one] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
import Mathlib.Topology.Algebra.ContinuousMonoidHom | ||
import Mathlib.Topology.Algebra.Module.Equiv | ||
import FLT.ForMathlib.Topology.Algebra.Module.Equiv | ||
import FLT.ForMathlib.Topology.Algebra.Module.Quotient | ||
|
||
def ContinuousAddEquiv.toIntContinuousLinearEquiv {M M₂ : Type*} [AddCommGroup M] | ||
[TopologicalSpace M] [AddCommGroup M₂] [TopologicalSpace M₂] (e : M ≃ₜ+ M₂) : | ||
M ≃L[ℤ] M₂ where | ||
__ := e.toIntLinearEquiv | ||
continuous_toFun := e.continuous | ||
continuous_invFun := e.continuous_invFun | ||
|
||
def ContinuousAddEquiv.quotientPi {ι : Type*} {G : ι → Type*} [(i : ι) → AddCommGroup (G i)] | ||
[(i : ι) → TopologicalSpace (G i)] | ||
[(i : ι) → TopologicalAddGroup (G i)] | ||
[Fintype ι] (p : (i : ι) → AddSubgroup (G i)) [DecidableEq ι] : | ||
((i : ι) → G i) ⧸ AddSubgroup.pi (_root_.Set.univ) p ≃ₜ+ ((i : ι) → G i ⧸ p i) := | ||
(Submodule.quotientPiContinuousLinearEquiv | ||
(fun (i : ι) => AddSubgroup.toIntSubmodule (p i))).toContinuousAddEquiv |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
import Mathlib.Topology.Algebra.Group.Quotient | ||
import Mathlib.Topology.Algebra.ContinuousMonoidHom | ||
import FLT.ForMathlib.Topology.Algebra.ContinuousMonoidHom | ||
import FLT.ForMathlib.Topology.Algebra.Module.Quotient | ||
import FLT.ForMathlib.Topology.Algebra.Module.Equiv | ||
|
||
def QuotientAddGroup.continuousAddEquiv (G H : Type*) [AddCommGroup G] [AddCommGroup H] [TopologicalSpace G] | ||
[TopologicalSpace H] (G' : AddSubgroup G) (H' : AddSubgroup H) [G'.Normal] [H'.Normal] | ||
(e : G ≃ₜ+ H) (h : AddSubgroup.map e G' = H') : | ||
G ⧸ G' ≃ₜ+ H ⧸ H' := | ||
(Submodule.Quotient.continuousLinearEquiv _ _ (AddSubgroup.toIntSubmodule G') | ||
(AddSubgroup.toIntSubmodule H') e.toIntContinuousLinearEquiv | ||
(congrArg AddSubgroup.toIntSubmodule h)).toContinuousAddEquiv |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
import Mathlib.Topology.Algebra.Module.Equiv | ||
import Mathlib.Topology.Algebra.ContinuousMonoidHom | ||
|
||
def ContinuousLinearEquiv.toContinuousAddEquiv | ||
{R₁ R₂ : Type*} [Semiring R₁] [Semiring R₂] {σ₁₂ : R₁ →+* R₂} {σ₂₁ : R₂ →+* R₁} | ||
[RingHomInvPair σ₁₂ σ₂₁] [RingHomInvPair σ₂₁ σ₁₂] {M₁ M₂ : Type*} [TopologicalSpace M₁] | ||
[AddCommMonoid M₁] [TopologicalSpace M₂] [AddCommMonoid M₂] [Module R₁ M₁] [Module R₂ M₂] | ||
(e : M₁ ≃SL[σ₁₂] M₂) : | ||
M₁ ≃ₜ+ M₂ where | ||
__ := e.toLinearEquiv.toAddEquiv | ||
continuous_invFun := e.symm.continuous |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
import Mathlib.LinearAlgebra.Quotient.Pi | ||
import Mathlib.Topology.Algebra.Module.Equiv | ||
|
||
def Submodule.Quotient.continuousLinearEquiv {R : Type*} [Ring R] (G H : Type*) [AddCommGroup G] | ||
[Module R G] [AddCommGroup H] [Module R H] [TopologicalSpace G] [TopologicalSpace H] | ||
(G' : Submodule R G) (H' : Submodule R H) (e : G ≃L[R] H) (h : Submodule.map e G' = H') : | ||
(G ⧸ G') ≃L[R] (H ⧸ H') where | ||
toLinearEquiv := Submodule.Quotient.equiv G' H' e h | ||
continuous_toFun := by | ||
apply continuous_quot_lift | ||
simp only [LinearMap.toAddMonoidHom_coe, LinearMap.coe_comp] | ||
exact Continuous.comp continuous_quot_mk e.continuous | ||
continuous_invFun := by | ||
apply continuous_quot_lift | ||
simp only [LinearMap.toAddMonoidHom_coe, LinearMap.coe_comp] | ||
exact Continuous.comp continuous_quot_mk e.continuous_invFun | ||
|
||
def Submodule.quotientPiContinuousLinearEquiv {R ι : Type*} [CommRing R] {G : ι → Type*} | ||
[(i : ι) → AddCommGroup (G i)] [(i : ι) → Module R (G i)] [(i : ι) → TopologicalSpace (G i)] | ||
[(i : ι) → TopologicalAddGroup (G i)] [Fintype ι] [DecidableEq ι] | ||
(p : (i : ι) → Submodule R (G i)) : | ||
(((i : ι) → G i) ⧸ Submodule.pi Set.univ p) ≃L[R] ((i : ι) → G i ⧸ p i) where | ||
toLinearEquiv := Submodule.quotientPi p | ||
continuous_toFun := by | ||
apply Continuous.quotient_lift | ||
exact continuous_pi (fun i => Continuous.comp continuous_quot_mk (continuous_apply _)) | ||
continuous_invFun := by | ||
rw [show (quotientPi p).invFun = fun a => (quotientPi p).invFun a from rfl] | ||
simp only [LinearEquiv.invFun_eq_symm, quotientPi_symm_apply, Submodule.piQuotientLift, | ||
LinearMap.lsum_apply, LinearMap.coeFn_sum, LinearMap.coe_comp, LinearMap.coe_proj, | ||
Finset.sum_apply, Function.comp_apply, Function.eval] | ||
refine continuous_finset_sum _ (fun i _ => ?_) | ||
apply Continuous.comp ?_ (continuous_apply _) | ||
apply Continuous.quotient_lift <| Continuous.comp (continuous_quot_mk) (continuous_single _) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters