File: Mathlib/RingTheory/MvPolynomial/Localization.lean

full_name: MvPolynomial.isLocalization
code: /--
If `S` is the localization of `R` at a submonoid `M`, then `MvPolynomial σ S`
is the localization of `MvPolynomial σ R` at `M.map MvPolynomial.C`.
-/
instance isLocalization : IsLocalization (M.map <| C (σ := σ))
    (MvPolynomial σ S) 
goal: IsLocalization (Submonoid.map MvPolynomial.C M) (MvPolynomial σ S)

full_name: MvPolynomial.isLocalization_C_mk'
code: lemma isLocalization_C_mk' (a : R) (m : M) :
    C (IsLocalization.mk' S a m) = IsLocalization.mk' (MvPolynomial σ S) (C (σ := σ) a)
      ⟨C m, Submonoid.mem_map_of_mem C m.property⟩ 
goal: MvPolynomial.C (IsLocalization.mk' S a m) =
  IsLocalization.mk' (MvPolynomial σ S) (MvPolynomial.C a) ⟨MvPolynomial.C ↑m, ⋯⟩

full_name: _private.Mathlib.RingTheory.MvPolynomial.Localization.0.IsLocalization.Away.auxHom
code: /-- The canonical algebra map from `MvPolynomial Unit R` quotiented by
`C r * X () - 1` to the localization of `R` away from `r`. -/
private noncomputable
def auxHom : (MvPolynomial Unit R) ⧸ (Ideal.span { C r * X () - 1 }) →ₐ[R] S 
goal: MvPolynomial Unit R ⧸ Ideal.span {MvPolynomial.C r * MvPolynomial.X () - 1} →ₐ[R] S

full_name: _private.Mathlib.RingTheory.MvPolynomial.Localization.0.IsLocalization.Away.auxHom_mk
code: @[simp]
private lemma auxHom_mk (p : MvPolynomial Unit R) :
    auxHom S r p = aeval (S₁ := S) (fun _ ↦ invSelf r) p 
goal: (IsLocalization.Away.auxHom S r) ((Ideal.Quotient.mk (Ideal.span {MvPolynomial.C r * MvPolynomial.X () - 1})) p) =
  (MvPolynomial.aeval fun x => IsLocalization.Away.invSelf r) p

full_name: _private.Mathlib.RingTheory.MvPolynomial.Localization.0.IsLocalization.Away.auxInv
code: private noncomputable
def auxInv : S →+* (MvPolynomial Unit R) ⧸ Ideal.span { C r * X () - 1 } 
goal: S →+* MvPolynomial Unit R ⧸ Ideal.span {MvPolynomial.C r * MvPolynomial.X () - 1}

full_name: _private.Mathlib.RingTheory.MvPolynomial.Localization.0.IsLocalization.Away.auxHom_auxInv
code: private lemma auxHom_auxInv : (auxHom S r).toRingHom.comp (auxInv S r) = RingHom.id S 
goal: (IsLocalization.Away.auxHom S r).comp (IsLocalization.Away.auxInv S r) = RingHom.id S

full_name: _private.Mathlib.RingTheory.MvPolynomial.Localization.0.IsLocalization.Away.auxInv_auxHom
code: private lemma auxInv_auxHom : (auxInv S r).comp (auxHom (S := S) r).toRingHom = RingHom.id _ 
goal: (IsLocalization.Away.auxInv S r).comp (IsLocalization.Away.auxHom S r).toRingHom =
  RingHom.id (MvPolynomial Unit R ⧸ Ideal.span {MvPolynomial.C r * MvPolynomial.X () - 1})

full_name: IsLocalization.Away.mvPolynomialQuotientEquiv
code: /-- The canonical algebra isomorphism from `MvPolynomial Unit R` quotiented by
`C r * X () - 1` to the localization of `R` away from `r`. -/
noncomputable def mvPolynomialQuotientEquiv :
    ((MvPolynomial Unit R) ⧸ Ideal.span { C r * X () - 1 }) ≃ₐ[R] S 
goal: (MvPolynomial Unit R ⧸ Ideal.span {MvPolynomial.C r * MvPolynomial.X () - 1}) ≃ₐ[R] S

full_name: IsLocalization.Away.mvPolynomialQuotientEquiv_apply
code: @[simp]
lemma mvPolynomialQuotientEquiv_apply (p : MvPolynomial Unit R) :
    mvPolynomialQuotientEquiv S r (Ideal.Quotient.mk _ p) = aeval (S₁ := S) (fun _ ↦ invSelf r) p 
goal: (IsLocalization.Away.mvPolynomialQuotientEquiv S r)
    ((Ideal.Quotient.mk (Ideal.span {MvPolynomial.C r * MvPolynomial.X () - 1})) p) =
  (MvPolynomial.aeval fun x => IsLocalization.Away.invSelf r) p