Source context 3 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
namespace EtaleFundamentalGroups
universe utheorem finiteTypeModel_isFractionRing
{A C K : Type u}
[CommRing A] [CommRing C] [IsDomain C] [Algebra A C]
[Algebra.EssFiniteType A C]
[Field K] [Algebra C K] [IsFractionRing C K] :
let T := Algebra.EssFiniteType.subalgebra A C
IsFractionRing T K := by
dsimp only
let T := Algebra.EssFiniteType.subalgebra A C
let M := Algebra.EssFiniteType.submonoid A C
let N := IsLocalization.localizationLocalizationSubmodule M
(nonZeroDivisors C)
have hN : N = nonZeroDivisors T := by
ext x
constructor
· intro hx
rw [mem_nonZeroDivisors_iff_ne_zero]
intro hx0
have hunit : IsUnit (algebraMap T K x) :=
IsLocalization.localization_localization_map_units
M (nonZeroDivisors C) K ⟨x, hx⟩
rw [hx0, map_zero] at hunit
exact not_isUnit_zero hunit
· intro hx
change x ∈ IsLocalization.localizationLocalizationSubmodule M
(nonZeroDivisors C)
rw [IsLocalization.mem_localizationLocalizationSubmodule]
have hxC : algebraMap T C x ∈ nonZeroDivisors C := by
rw [mem_nonZeroDivisors_iff_ne_zero, map_ne_zero_iff]
· exact (mem_nonZeroDivisors_iff_ne_zero.mp hx)
· exact Subtype.val_injective
exact ⟨⟨algebraMap T C x, hxC⟩, 1, by simp⟩
have hloc : IsLocalization N K :=
IsLocalization.localization_localization_isLocalization
M (nonZeroDivisors C) K
rw [hN] at hloc
exact hloc