Operations on two-sided ideals #
This file defines operations on two-sided ideals of a ring R
.
Main definitions and results #
TwoSidedIdeal.span
: the span ofs ⊆ R
is the smallest two-sided ideal containing the set.TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure_nonunital
: in an associative but non-unital ring, an elementx
is in the two-sided ideal spanned bys
if and only ifx
is in the closure ofs ∪ {y * a | y ∈ s, a ∈ R} ∪ {a * y | y ∈ s, a ∈ R} ∪ {a * y * b | y ∈ s, a, b ∈ R}
as an additive subgroup.TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure
: in a unital and associative ring, an elementx
is in the two-sided ideal spanned bys
if and only ifx
is in the closure of{a*y*b | a, b ∈ R, y ∈ s}
as an additive subgroup.TwoSidedIdeal.comap
: pullback of a two-sided ideal; defined as the preimage of a two-sided ideal.TwoSidedIdeal.map
: pushforward of a two-sided ideal; defined as the span of the image of a two-sided ideal.TwoSidedIdeal.ker
: the kernel of a ring homomorphism as a two-sided ideal.TwoSidedIdeal.gc
:fromIdeal
andasIdeal
form a Galois connection wherefromIdeal : Ideal R → TwoSidedIdeal R
is defined as the smallest two-sided ideal containing an ideal andasIdeal : TwoSidedIdeal R → Ideal R
the inclusion map.
The smallest two-sided ideal containing a set.
Equations
- TwoSidedIdeal.span s = { ringCon := ringConGen fun (a b : R) => a - b ∈ s }
Instances For
Pushout of a two-sided ideal. Defined as the span of the image of a two-sided ideal under a ring homomorphism.
Equations
- TwoSidedIdeal.map f I = TwoSidedIdeal.span (⇑f '' ↑I)
Instances For
Preimage of a two-sided ideal, as a two-sided ideal.
Equations
- TwoSidedIdeal.comap f I = { ringCon := I.ringCon.comap f }
Instances For
If s : Set R
is absorbing under multiplication, then its TwoSidedIdeal.span
coincides with
its AddSubgroup.closure
, as sets.
Equations
- I.leftModule = Function.Injective.module R I.coeAddMonoidHom ⋯ ⋯
Equations
- I.rightModule = Function.Injective.module Rᵐᵒᵖ I.coeAddMonoidHom ⋯ ⋯
Equations
- ⋯ = ⋯
For any RingCon R
, when we view it as an ideal in Rᵒᵖ
, subtype
is the injective Rᵐᵒᵖ
-linear
map I → Rᵐᵒᵖ
.
Equations
- I.subtypeMop = { toFun := fun (x : ↥I) => MulOpposite.op ↑x, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Given an ideal I
, span I
is the smallest two-sided ideal containing I
.
Equations
- TwoSidedIdeal.fromIdeal = { toFun := fun (I : Ideal R) => TwoSidedIdeal.span ↑I, monotone' := ⋯ }
Instances For
Every two-sided ideal is also a left ideal.
Equations
- TwoSidedIdeal.asIdeal = { toFun := fun (I : TwoSidedIdeal R) => { carrier := ↑I, add_mem' := ⋯, zero_mem' := ⋯, smul_mem' := ⋯ }, monotone' := ⋯ }
Instances For
Every two-sided ideal is also a right ideal.
Equations
- TwoSidedIdeal.asIdealOpposite = { toFun := fun (I : TwoSidedIdeal R) => TwoSidedIdeal.asIdeal { ringCon := I.ringCon.op }, monotone' := ⋯ }
Instances For
When the ring is commutative, two-sided ideals are exactly the same as left ideals.
Equations
- TwoSidedIdeal.orderIsoIdeal = { toFun := ⇑TwoSidedIdeal.asIdeal, invFun := ⇑TwoSidedIdeal.fromIdeal, left_inv := ⋯, right_inv := ⋯, map_rel_iff' := ⋯ }
Instances For
Bundle an Ideal
that is already two-sided as a TwoSidedIdeal
.
Equations
- I.toTwoSided mul_mem_right = TwoSidedIdeal.mk' ↑I ⋯ ⋯ ⋯ ⋯ ⋯