Ideals over a ring #
This file defines Ideal R
, the type of (left) ideals over a ring R
.
Note that over commutative rings, left ideals and two-sided ideals are equivalent.
Implementation notes #
Ideal R
is implemented using Submodule R R
, where •
is interpreted as *
.
TODO #
Support right ideals, and two-sided ideals over non-commutative rings.
@[reducible, inline]
A (left) ideal in a semiring R
is an additive submonoid s
such that
a * b ∈ s
whenever b ∈ s
. If R
is a ring, then s
is an additive subgroup.
A left ideal I : Ideal R
is two-sided if it is also a right ideal.
Instances
- Ideal.IsTwoSided.instHMul
- Ideal.IsTwoSided.instHPowNat
- Ideal.instIsTwoSided
- Ideal.instIsTwoSidedBot
- Ideal.instIsTwoSidedComap
- Ideal.instIsTwoSidedForallPi
- Ideal.instIsTwoSidedIInf
- Ideal.instIsTwoSidedMapRingHomOfRingHomSurjective
- Ideal.instIsTwoSidedTop
- Ideal.instIsTwoSided_1
- RingHom.instIsTwoSidedKer
- Submodule.instIsTwoSidedColon
- instIsTwoSidedAnnihilator
theorem
Ideal.mul_mem_right
{α : Type u_1}
{a : α}
(b : α)
[Semiring α]
(I : Ideal α)
[I.IsTwoSided]
(h : a ∈ I)
:
def
Module.eqIdeal
(R : Type u_1)
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
(m m' : M)
:
Ideal R
For two elements m
and m'
in an R
-module M
, the set of elements r : R
with
equal scalar product with m
and m'
is an ideal of R
. If M
is a group, this coincides
with the kernel of LinearMap.toSpanSingleton R M (m - m')
.
@[simp]
theorem
Ideal.mul_unit_mem_iff_mem
{α : Type u}
[CommSemiring α]
(I : Ideal α)
{x y : α}
(hy : IsUnit y)
:
theorem
Ideal.mem_of_dvd
{α : Type u}
{a b : α}
[CommSemiring α]
(I : Ideal α)
(hab : a ∣ b)
(ha : a ∈ I)
: