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.
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')
.
Equations
- Module.eqIdeal R m m' = { carrier := {r : R | r • m = r • m'}, add_mem' := ⋯, zero_mem' := ⋯, smul_mem' := ⋯ }
Instances For
@[simp]
theorem
Ideal.mul_unit_mem_iff_mem
{α : Type u}
[CommSemiring α]
(I : Ideal α)
{x y : α}
(hy : IsUnit y)
:
theorem
Ideal.mul_mem_right
{α : Type u}
{a : α}
(b : α)
[CommSemiring α]
(I : Ideal α)
(h : a ∈ I)
:
theorem
Ideal.mem_of_dvd
{α : Type u}
{a b : α}
[CommSemiring α]
(I : Ideal α)
(hab : a ∣ b)
(ha : a ∈ I)
:
b ∈ I
theorem
Ideal.pow_mem_of_mem
{α : Type u}
{a : α}
[CommSemiring α]
(I : Ideal α)
(ha : a ∈ I)
(n : ℕ)
(hn : 0 < n)
: