@@ -526,15 +526,14 @@ theorem equivQuotMaximalIdeal_symm_apply_mk (x : R) (s : p.primeCompl) :
526526@ [deprecated (since := "2025-11-13" )] alias _root_.equivQuotMaximalIdealOfIsLocalization :=
527527 equivQuotMaximalIdeal
528528
529- set_option backward.isDefEq.respectTransparency false in
530529/-- The isomorphism `R ⧸ p ^ n ≃+* Rₚ ⧸ maximalIdeal Rₚ ^ n`, where `Rₚ` satisfies
531530`IsLocalization.AtPrime Rₚ p`. -/
532531noncomputable
533532def equivQuotMaximalIdealPow (n : ℕ) : R ⧸ p ^ n ≃+* Rₚ ⧸ IsLocalRing.maximalIdeal Rₚ ^ n := by
534533 refine Subring.topEquiv.symm.trans <| -- R ⧸ p ^ n ≃ (⊤ : Subring (R ⧸ p ^ n))
535534 (RingEquiv.subringCongr ?_).trans <| -- ⊤ = (R ⧸ p ^ n ← Rₚ / ker).range
536535 (IsLocalization.lift fun (u : p.primeCompl) ↦ -- (R ⧸ p ^ n ← Rₚ) => R ⧸ p ^ n ← Rₚ / ker
537- Ideal.Quotient.notMem_of_isUnit_mk_pow _
536+ Ideal.Quotient.isUnit_mk_pow_of_notMem _
538537 (mem_primeCompl_iff.mp u.prop)).quotientKerEquivRange.symm.trans <|
539538 quotEquivOfEq ?_ -- ker = maximalIdeal ^ n
540539 · symm
@@ -563,6 +562,23 @@ theorem equivQuotMaximalIdealPow_apply_mk (n : ℕ) (x : R) :
563562 ext
564563 simp
565564
565+ /-- `IsLocalization.AtPrime.equivQuotMaximalIdealPow p Rₚ n` as an `R`-algebra isomorphism. -/
566+ noncomputable
567+ def equivQuotMaximalIdealPowₐ (n : ℕ) : (R ⧸ p ^ n) ≃ₐ[R] Rₚ ⧸ IsLocalRing.maximalIdeal Rₚ ^ n
568+ where
569+ __ := equivQuotMaximalIdealPow p Rₚ n
570+ commutes' r := by simp
571+
572+ @[simp]
573+ theorem equivQuotMaximalIdealPowₐ_toRingEquiv (n : ℕ) :
574+ (equivQuotMaximalIdealPowₐ p Rₚ n).toRingEquiv = equivQuotMaximalIdealPow p Rₚ n :=
575+ rfl
576+
577+ @[simp]
578+ theorem coe_equivQuotMaximalIdealPowₐ (n : ℕ) :
579+ ⇑(equivQuotMaximalIdealPowₐ p Rₚ n) = ⇑(equivQuotMaximalIdealPow p Rₚ n) :=
580+ rfl
581+
566582variable {Sₚ : Type *} [CommRing S] [Algebra R S] [CommRing Sₚ] [Algebra S Sₚ] [Algebra R Sₚ]
567583variable [Algebra Rₚ Sₚ] [IsLocalization (Algebra.algebraMapSubmonoid S p.primeCompl) Sₚ]
568584variable [IsScalarTower R S Sₚ]
0 commit comments