Documentation

Mathlib.RingTheory.Ideal.Cotangent

The module I ⧸ I ^ 2 #

In this file, we provide special API support for the module I ⧸ I ^ 2. The official definition is a quotient module of I, but the alternative definition as an ideal of R ⧸ I ^ 2 is also given, and the two are R-equivalent as in Ideal.cotangentEquivIdeal.

Additional support is also given to the cotangent space m ⧸ m ^ 2 of a local ring.

def Ideal.Cotangent {R : Type u} [CommRing R] (I : Ideal R) :

I ⧸ I ^ 2 as a quotient of I.

Equations
instance Ideal.instAddCommGroupCotangent {R : Type u} [CommRing R] (I : Ideal R) :
AddCommGroup I.Cotangent
Equations
  • I.instAddCommGroupCotangent = id inferInstance
instance Ideal.cotangentModule {R : Type u} [CommRing R] (I : Ideal R) :
Module (R I) I.Cotangent
Equations
  • I.cotangentModule = id inferInstance
instance Ideal.instInhabitedCotangent {R : Type u} [CommRing R] (I : Ideal R) :
Inhabited I.Cotangent
Equations
  • I.instInhabitedCotangent = { default := 0 }
instance Ideal.Cotangent.isScalarTower {R : Type u} {S : Type v} {S' : Type w} [CommRing R] [CommSemiring S] [Algebra S R] [CommSemiring S'] [Algebra S' R] [Algebra S S'] [IsScalarTower S S' R] (I : Ideal R) :
IsScalarTower S S' I.Cotangent
Equations
  • =
instance Ideal.instIsNoetherianCotangentOfSubtypeMem {R : Type u} [CommRing R] (I : Ideal R) [IsNoetherian R I] :
IsNoetherian R I.Cotangent
Equations
  • =
def Ideal.toCotangent {R : Type u} [CommRing R] (I : Ideal R) :
I →ₗ[R] I.Cotangent

The quotient map from I to I ⧸ I ^ 2.

Equations
theorem Ideal.toCotangent_apply {R : Type u} [CommRing R] (I : Ideal R) (a✝ : I) :
I.toCotangent a✝ = Submodule.Quotient.mk a✝
theorem Ideal.mem_toCotangent_ker {R : Type u} [CommRing R] (I : Ideal R) {x : I} :
x LinearMap.ker I.toCotangent x I ^ 2
theorem Ideal.toCotangent_eq {R : Type u} [CommRing R] (I : Ideal R) {x y : I} :
I.toCotangent x = I.toCotangent y x - y I ^ 2
theorem Ideal.toCotangent_eq_zero {R : Type u} [CommRing R] (I : Ideal R) (x : I) :
I.toCotangent x = 0 x I ^ 2
theorem Ideal.toCotangent_surjective {R : Type u} [CommRing R] (I : Ideal R) :
Function.Surjective I.toCotangent
theorem Ideal.toCotangent_range {R : Type u} [CommRing R] (I : Ideal R) :
LinearMap.range I.toCotangent =
def Ideal.cotangentToQuotientSquare {R : Type u} [CommRing R] (I : Ideal R) :
I.Cotangent →ₗ[R] R I ^ 2

The inclusion map I ⧸ I ^ 2 to R ⧸ I ^ 2.

Equations
theorem Ideal.to_quotient_square_comp_toCotangent {R : Type u} [CommRing R] (I : Ideal R) :
I.cotangentToQuotientSquare ∘ₗ I.toCotangent = Submodule.mkQ (I ^ 2) ∘ₗ Submodule.subtype I
@[simp]
theorem Ideal.toCotangent_to_quotient_square {R : Type u} [CommRing R] (I : Ideal R) (x : I) :
I.cotangentToQuotientSquare (I.toCotangent x) = (Submodule.mkQ (I ^ 2)) x
theorem Ideal.Cotangent.smul_eq_zero_of_mem {R : Type u} [CommRing R] {I : Ideal R} {x : R} (hx : x I) (m : I.Cotangent) :
x m = 0
theorem Ideal.isTorsionBySet_cotangent {R : Type u} [CommRing R] (I : Ideal R) :
Module.IsTorsionBySet R I.Cotangent I
def Ideal.cotangentIdeal {R : Type u} [CommRing R] (I : Ideal R) :
Ideal (R I ^ 2)

I ⧸ I ^ 2 as an ideal of R ⧸ I ^ 2.

Equations
theorem Ideal.cotangentIdeal_square {R : Type u} [CommRing R] (I : Ideal R) :
I.cotangentIdeal ^ 2 =
theorem Ideal.to_quotient_square_range {R : Type u} [CommRing R] (I : Ideal R) :
LinearMap.range I.cotangentToQuotientSquare = Submodule.restrictScalars R I.cotangentIdeal
noncomputable def Ideal.cotangentEquivIdeal {R : Type u} [CommRing R] (I : Ideal R) :
I.Cotangent ≃ₗ[R] I.cotangentIdeal

The equivalence of the two definitions of I / I ^ 2, either as the quotient of I or the ideal of R / I ^ 2.

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem Ideal.cotangentEquivIdeal_apply {R : Type u} [CommRing R] (I : Ideal R) (x : I.Cotangent) :
(I.cotangentEquivIdeal x) = I.cotangentToQuotientSquare x
theorem Ideal.cotangentEquivIdeal_symm_apply {R : Type u} [CommRing R] (I : Ideal R) (x : R) (hx : x I) :
I.cotangentEquivIdeal.symm (Submodule.mkQ (I ^ 2)) x, = I.toCotangent x, hx
def AlgHom.kerSquareLift {R : Type u} [CommRing R] {A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] (f : A →ₐ[R] B) :
A RingHom.ker f.toRingHom ^ 2 →ₐ[R] B

The lift of f : A →ₐ[R] B to A ⧸ J ^ 2 →ₐ[R] B with J being the kernel of f.

Equations
theorem AlgHom.ker_kerSquareLift {R : Type u} [CommRing R] {A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] (f : A →ₐ[R] B) :
RingHom.ker f.kerSquareLift.toRingHom = (RingHom.ker f.toRingHom).cotangentIdeal
instance Ideal.Algebra.kerSquareLift {R : Type u} [CommRing R] {A : Type u_1} [CommRing A] [Algebra R A] :
Equations
  • Ideal.Algebra.kerSquareLift = (Algebra.ofId R A).kerSquareLift.toAlgebra
Equations
  • =
def Ideal.quotCotangent {R : Type u} [CommRing R] (I : Ideal R) :
(R I ^ 2) I.cotangentIdeal ≃+* R I

The quotient ring of I ⧸ I ^ 2 is R ⧸ I.

Equations
def Ideal.mapCotangent {R : Type u} [CommRing R] {A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] (I₁ : Ideal A) (I₂ : Ideal B) (f : A →ₐ[R] B) (h : I₁ Ideal.comap f I₂) :
I₁.Cotangent →ₗ[R] I₂.Cotangent

The map I/I² → J/J² if I ≤ f⁻¹(J).

Equations
@[simp]
theorem Ideal.mapCotangent_toCotangent {R : Type u} [CommRing R] {A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] (I₁ : Ideal A) (I₂ : Ideal B) (f : A →ₐ[R] B) (h : I₁ Ideal.comap f I₂) (x : I₁) :
(I₁.mapCotangent I₂ f h) (I₁.toCotangent x) = I₂.toCotangent f x,
@[reducible, inline]

The A ⧸ I-vector space I ⧸ I ^ 2.

Equations
@[deprecated IsLocalRing.CotangentSpace]

Alias of IsLocalRing.CotangentSpace.


The A ⧸ I-vector space I ⧸ I ^ 2.

Equations
@[deprecated IsLocalRing.CotangentSpace.map_eq_top_iff]

Alias of IsLocalRing.CotangentSpace.map_eq_top_iff.

@[deprecated IsLocalRing.CotangentSpace.span_image_eq_top_iff]

Alias of IsLocalRing.CotangentSpace.span_image_eq_top_iff.