The literal retained component selected by N is canonically R'-equivalent to the standard fraction ring of any containing domain localization.
The W-algebra structure on the component and its fraction-ring property are both generated internally by retainedCompletedChosenComponentLocalization_isFractionRing.
Source context 17 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
open scoped TensorProduct
namespace EtaleFundamentalGroups
universe uR uR' uS uK uL uK'
variable {R : Type uR} {R' : Type uR'} {S : Type uS}
variable [CommRing R] [IsDomain R]
variable [CommRing R'] [IsDomain R'] [Algebra R R']
variable [CommRing S] [IsDomain S] [Algebra R S] [Module.Finite R S]
variable {K' : Type uK'} [Field K'] [Algebra R' K']
variable [IsFractionRing R' K']
variable {K : Type uK} {L : Type uL}
variable [Field K] [Algebra R K] [IsFractionRing R K]
variable [Field L] [Algebra S L] [IsFractionRing S L]
variable [Algebra R L] [IsScalarTower R S L]
variable [Algebra K L] [IsScalarTower R K L]
variable [Algebra R K'] [IsScalarTower R R' K']
variable [Algebra K K'] [IsScalarTower R K K']def retainedCompletedComponentToChosenLocalFractionAlgEquiv
(N P : Ideal (R' ⊗[R] S)) [N.IsPrime]
[N.LiesOver (⊥ : Ideal R')] [P.IsPrime] (hNP : N ≤ P)
[IsDomain (Localization.AtPrime P)] :
let m := retainedCompletedGenericTensorIdeal
(R := R) (R' := R') (S := S) (K := K) (L := L)
(K' := K') N
letI : m.IsMaximal := retainedCompletedGenericTensorIdeal_isMaximal
(R := R) (R' := R') (S := S) (K := K) (L := L)
(K' := K') N
let Omega := GenericTensorFieldComponent m
letI : Algebra R' Omega :=
genericTensorFieldComponentLeftScalarAlgebra (R := R') m
Omega ≃ₐ[R'] FractionRing (Localization.AtPrime P) := by
classical
dsimp only
let T := R' ⊗[R] S
let m := retainedCompletedGenericTensorIdeal
(R := R) (R' := R') (S := S) (K := K) (L := L)
(K' := K') N
letI : m.IsMaximal := retainedCompletedGenericTensorIdeal_isMaximal
(R := R) (R' := R') (S := S) (K := K) (L := L)
(K' := K') N
let Omega := GenericTensorFieldComponent m
let r'OmegaAlgebra : Algebra R' Omega :=
genericTensorFieldComponentLeftScalarAlgebra (R := R') m
letI : Algebra R' Omega := r'OmegaAlgebra
letI : SMul R' Omega := r'OmegaAlgebra.toSMul
letI : IsScalarTower R' K' Omega :=
IsScalarTower.of_algebraMap_eq fun _ ↦ rfl
let W := Localization.AtPrime P
let j := retainedCompletedChosenComponentAlgHom
(R := R) (R' := R') (S := S) (K := K) (L := L)
(K' := K') N
letI : Algebra T Omega := j.toAlgebra
letI : IsScalarTower R' T Omega :=
IsScalarTower.of_algebraMap_eq fun x ↦ (j.commutes x).symm
letI : Algebra W Omega :=
retainedCompletedChosenComponentLocalizationAlgebra
(R := R) (R' := R') (S := S) (K := K) (L := L)
(K' := K') N P hNP
letI : IsScalarTower T W Omega :=
retainedCompletedChosenComponentLocalization_isScalarTower
(R := R) (R' := R') (S := S) (K := K) (L := L)
(K' := K') N P hNP
letI : IsFractionRing W Omega :=
retainedCompletedChosenComponentLocalization_isFractionRing
(R := R) (R' := R') (S := S) (K := K) (L := L)
(K' := K') N P hNP
letI : IsScalarTower R' T W :=
IsScalarTower.of_algebraMap_eq fun _ ↦ rfl
letI : IsScalarTower R' W Omega := by
apply IsScalarTower.of_algebraMap_eq
intro x
rw [IsScalarTower.algebraMap_apply R' T Omega,
IsScalarTower.algebraMap_apply R' T W,
IsScalarTower.algebraMap_apply T W Omega]
letI : IsScalarTower R' W (FractionRing W) :=
IsScalarTower.of_algebraMap_eq fun _ ↦ rfl
exact (FractionRing.algEquiv W Omega).symm.restrictScalars R'