Skip to content

Commit e7fcee2

Browse files
committed
feat(RingTheory): adds lemmas/instances related to integral maps to a field and residue fields (leanprover-community#36790)
This PR adds some lemmas and instances related to integral maps to a field and residue fields.
1 parent a12a22f commit e7fcee2

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff 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+
635643
end Algebra
636644

637645
theorem integralClosure_idem {R A : Type*} [CommRing R] [CommRing A] [Algebra R A] :

Mathlib/RingTheory/LocalRing/ResidueField/Instances.lean

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ module
77

88
public import Mathlib.RingTheory.LocalRing.ResidueField.Ideal
99
public 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

0 commit comments

Comments
 (0)