Documentation

LeanPool.Ado.RingTheory.Ideal.Operations

Complements on ideal multiplication and the ideal action #

This file collects general facts about the multiplication of ideals and about the action I • N of an ideal on a module, complementing Mathlib/RingTheory/Ideal/Operations.lean.

Main results #

If S and T additively generate the ideals I and J, then their pairwise products additively generate I * J.

theorem Ideal.eq_one_of_mul_eq_one {R : Type u_2} [Semiring R] {I J : Ideal R} [I.IsTwoSided] (h : I * J = 1) :
I = 1

If a two-sided ideal times a left ideal is the unit ideal, then the first ideal is the unit ideal.

theorem Ideal.smul_top_eq_top_of_pi {R : Type u_2} [Semiring R] {ι : Type u_3} {M : ι → Type u_4} [(i : ι) → AddCommMonoid (M i)] [(i : ι) → Module R (M i)] (I : Ideal R) (h : I • ⊤ = ⊤) (i : ι) :

Expanding a product expands every factor: if I • ⊤ = ⊤ in ∀ i, M i then I • ⊤ = ⊤ in each M i. Thus properness of I • ⊤ in one factor implies properness in the product.

theorem Ideal.span_insert_eq_top_of_subset {R : Type u_1} [Semiring R] {a : R} {S S' : Set R} (hsub : S ⊆ insert a S') (hspan : span (insert a S) = ⊤) :
span (insert a S') = ⊤

Replacing one generating set by another: if every element of S is either a itself or an element of S', then S' together with a generates the unit ideal as soon as S together with a does. Note that S' need not be contained in S, and may be larger: the hypothesis constrains only where the elements of S are found. Both spans contain a, so only the rest of S has to be accounted for.

theorem Ideal.isTwoSided_span_of_subset_center {A : Type u_2} [Semiring A] {s : Set A} (hs : s ⊆ Set.center A) :

A left ideal spanned by central elements is two-sided.

theorem LinearMap.apply_mem_of_mem_smul_top {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : M →ₗ[R] R) {I : Ideal R} [I.IsTwoSided] {x : M} (hx : x ∈ I • ⊤) :
f x ∈ I

A linear functional f : M → R carries I • M into the ideal I: the ideal action on R itself is multiplication, and f is linear over it.

@[instance 100]
instance Ideal.isTwoSided_sup {R : Type u} [Semiring R] (I J : Ideal R) [I.IsTwoSided] [J.IsTwoSided] :
(I ⊔ J).IsTwoSided

A supremum of two two-sided ideals is two-sided.

theorem Ideal.sup_pow_le_sup_pow_right {R : Type u} [Semiring R] (I J : Ideal R) [I.IsTwoSided] (n : ℕ) :
(I ⊔ J) ^ n ≤ I ⊔ J ^ n

The n-th power of the supremum of a two-sided ideal and a left ideal is contained in the first ideal plus the n-th power of the second.

theorem Subalgebra.toSubmodule_sup_pow_restrictScalars_eq_top {R : Type u_1} {S : Type u_2} [CommSemiring R] [Semiring S] [Algebra R S] {T : Subalgebra R S} {I : Ideal S} {π : S} (hπ : Ideal.span {π} = I) (hπT : π ∈ T) (h : toSubmodule T ⊔ Submodule.restrictScalars R I = ⊤) (n : ℕ) :

If every element of S is a sum of an element of a subalgebra T and an element of a principal left ideal I, and T contains a generator of I, then the same holds with I replaced by any power.