File tree Expand file tree Collapse file tree
IntegralClosure/IsIntegralClosure Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -632,6 +632,14 @@ theorem Algebra.IsIntegral.isField_iff_isField [IsDomain S]
632632 (hRS : Function.Injective (algebraMap R S)) : IsField R ↔ IsField S :=
633633 ⟨isField_of_isIntegral_of_isField', isField_of_isIntegral_of_isField hRS⟩
634634
635+ variable (R)
636+ theorem Algebra.ker_algebraMap_isMaximal_of_isIntegral (k : Type *) [Field k] [Algebra R k]
637+ [Algebra.IsIntegral R k] : (RingHom.ker (algebraMap R k)).IsMaximal := by
638+ have := Ideal.bot_isMaximal (K := k)
639+ rw [RingHom.ker, Ideal.Quotient.maximal_ideal_iff_isField_quotient]
640+ exact isField_of_isIntegral_of_isField Ideal.algebraMap_quotient_injective
641+ (Ideal.Quotient.field _).toIsField
642+
635643end Algebra
636644
637645theorem integralClosure_idem {R A : Type *} [CommRing R] [CommRing A] [Algebra R A] :
Original file line number Diff line number Diff line change 77
88public import Mathlib.RingTheory.LocalRing.ResidueField.Ideal
99public import Mathlib.FieldTheory.Separable
10+ public import Mathlib.RingTheory.IntegralClosure.IsIntegralClosure.Basic
11+
12+ import Mathlib.RingTheory.Finiteness.Quotient
1013
1114/-! # Instances on residue fields -/
1215
@@ -66,3 +69,22 @@ instance [p.IsPrime] [q.IsPrime] [Algebra.IsIntegral A B] :
6669 obtain ⟨x, rfl⟩ := Ideal.Quotient.mk_surjective x
6770 simp [RingHom.algebraMap_toAlgebra, ← IsScalarTower.algebraMap_apply]
6871 refine .extendScalars (Ideal.injective_algebraMap_quotient_residueField p)
72+
73+ namespace IsLocalRing
74+
75+ variable {R k : Type *} [CommRing R] [IsLocalRing R] [Field k] [Algebra R k]
76+
77+ instance ResidueField.algebraOfIsIntegral [Algebra.IsIntegral R k] : Algebra (ResidueField R) k :=
78+ (Ideal.Quotient.lift (maximalIdeal R) (algebraMap R k)
79+ (by simp [← eq_maximalIdeal (Algebra.ker_algebraMap_isMaximal_of_isIntegral R k)])).toAlgebra
80+
81+ instance ResidueField.isScalarTowerOfIsIntegral [Algebra.IsIntegral R k] :
82+ IsScalarTower R (ResidueField R) k :=
83+ .of_algebraMap_eq fun _ ↦ rfl
84+
85+ instance [Module.Finite R k] : Module.Finite (ResidueField R) k := .of_equiv_equiv
86+ (Ideal.quotEquivOfEq (show Ideal.comap (algebraMap R k) ⊥ = maximalIdeal R by
87+ rw [← eq_maximalIdeal (Algebra.ker_algebraMap_isMaximal_of_isIntegral R k), RingHom.ker]))
88+ (RingEquiv.quotientBot k) (by ext; rfl)
89+
90+ end IsLocalRing
You can’t perform that action at this time.
0 commit comments