Under the canonical residue-field isomorphisms, the residue map of an affine scheme morphism is the native map of prime-ideal residue fields.
Source context 4 commands
Surrounding namespaces, section variables, and local commands at this declaration.
@[expose] public noncomputable section
open CategoryTheory
universe u
namespace AlgebraicGeometry.Scheme.Spectheorem residueFieldIso_inv_residueFieldMap
{R S : CommRingCat.{u}} (f : R ⟶ S) (x : Spec S) :
letI : x.asIdeal.IsPrime := x.isPrime
letI : (Spec.map f x).asIdeal.IsPrime := (Spec.map f x).isPrime
(residueFieldIso R (Spec.map f x)).inv ≫
(Spec.map f).residueFieldMap x ≫ (residueFieldIso S x).hom =
CommRingCat.ofHom (Ideal.ResidueField.map
(Spec.map f x).asIdeal x.asIdeal f.hom rfl) := by
let : x.asIdeal.IsPrime := x.isPrime
let : (Spec.map f x).asIdeal.IsPrime := (Spec.map f x).isPrime
have heval :
CommRingCat.ofHom (algebraMap R (Spec.map f x).asIdeal.ResidueField) ≫
(residueFieldIso R (Spec.map f x)).inv ≫
(Spec.map f).residueFieldMap x ≫ (residueFieldIso S x).hom =
f ≫ CommRingCat.ofHom (algebraMap S x.asIdeal.ResidueField) := by
rw [algebraMap_residueFieldIso_inv_assoc]
change (Scheme.ΓSpecIso R).inv ≫ (Spec R).Γevaluation (Spec.map f x) ≫
(Spec.map f).residueFieldMap x ≫ (residueFieldIso S x).hom = _
rw [Scheme.Γevaluation_naturality_assoc, ← Scheme.ΓSpecIso_inv_naturality_assoc]
change f ≫ (Scheme.ΓSpecIso S).inv ≫ (Spec S).presheaf.germ ⊤ x trivial ≫
(Spec S).residue x ≫ (residueFieldIso S x).hom = _
rw [← algebraMap_residueFieldIso_inv_assoc, Iso.inv_hom_id, Category.comp_id]
apply CommRingCat.hom_ext
apply Ideal.ResidueField.ringHom_ext
apply RingHom.ext
intro r
have h := congrArg (fun k : R ⟶ CommRingCat.of x.asIdeal.ResidueField ↦ k r) heval
change (residueFieldIso S x).hom
((Spec.map f).residueFieldMap x
((residueFieldIso R (Spec.map f x)).inv
(algebraMap R (Spec.map f x).asIdeal.ResidueField r))) =
Ideal.ResidueField.map (Spec.map f x).asIdeal x.asIdeal f.hom rfl
(algebraMap R (Spec.map f x).asIdeal.ResidueField r)
exact h.trans
(Ideal.ResidueField.map_algebraMap (Spec.map f x).asIdeal x.asIdeal f.hom rfl r).symm