Ideals generated by a set of elements #
This file defines Ideal.span s
as the ideal generated by the subset s
of the ring.
TODO #
Support right ideals, and two-sided ideals over non-commutative rings.
A ring is a principal ideal ring if all (left) ideals are principal.
- principal : ∀ (S : Ideal R), Submodule.IsPrincipal S
Instances
theorem
isPrincipalIdealRing_iff
(R : Type u)
[Semiring R]
:
IsPrincipalIdealRing R ↔ ∀ (S : Ideal R), Submodule.IsPrincipal S
@[simp]
theorem
Ideal.submodule_span_eq
{α : Type u}
[Semiring α]
{s : Set α}
:
Submodule.span α s = Ideal.span s
theorem
Ideal.span_union
{α : Type u}
[Semiring α]
(s t : Set α)
:
Ideal.span (s ∪ t) = Ideal.span s ⊔ Ideal.span t
theorem
Ideal.span_iUnion
{α : Type u}
[Semiring α]
{ι : Sort u_1}
(s : ι → Set α)
:
Ideal.span (⋃ (i : ι), s i) = ⨆ (i : ι), Ideal.span (s i)
theorem
Ideal.span_le
{α : Type u}
[Semiring α]
{s : Set α}
{I : Ideal α}
:
Ideal.span s ≤ I ↔ s ⊆ ↑I
theorem
Ideal.span_mono
{α : Type u}
[Semiring α]
{s t : Set α}
:
s ⊆ t → Ideal.span s ≤ Ideal.span t
theorem
Ideal.mem_span_insert
{α : Type u}
[Semiring α]
{s : Set α}
{x y : α}
:
x ∈ Ideal.span (insert y s) ↔ ∃ (a : α), ∃ z ∈ Ideal.span s, x = a * y + z
theorem
Ideal.mem_span_singleton'
{α : Type u}
[Semiring α]
{x y : α}
:
x ∈ Ideal.span {y} ↔ ∃ (a : α), a * y = x
theorem
Ideal.span_singleton_le_iff_mem
{α : Type u}
[Semiring α]
(I : Ideal α)
{x : α}
:
Ideal.span {x} ≤ I ↔ x ∈ I
theorem
Ideal.span_singleton_mul_left_unit
{α : Type u}
[Semiring α]
{a : α}
(h2 : IsUnit a)
(x : α)
:
Ideal.span {a * x} = Ideal.span {x}
theorem
Ideal.span_insert
{α : Type u}
[Semiring α]
(x : α)
(s : Set α)
:
Ideal.span (insert x s) = Ideal.span {x} ⊔ Ideal.span s
@[simp]
theorem
Ideal.span_singleton_ne_top
{α : Type u_1}
[CommSemiring α]
{x : α}
(hx : ¬IsUnit x)
:
Ideal.span {x} ≠ ⊤
theorem
Ideal.span_eq_top_iff_finite
{α : Type u}
[Semiring α]
(s : Set α)
:
Ideal.span s = ⊤ ↔ ∃ (s' : Finset α), ↑s' ⊆ s ∧ Ideal.span ↑s' = ⊤
The ideal generated by an arbitrary binary relation.
Equations
- Ideal.ofRel r = Submodule.span α {x : α | ∃ (a : α) (b : α), r a b ∧ x + b = a}
Instances For
theorem
Ideal.span_pair_comm
{α : Type u}
[Semiring α]
{x y : α}
:
Ideal.span {x, y} = Ideal.span {y, x}
@[simp]
theorem
Ideal.span_pair_add_mul_left
{R : Type u}
[CommRing R]
{x y : R}
(z : R)
:
Ideal.span {x + y * z, y} = Ideal.span {x, y}
@[simp]
theorem
Ideal.span_pair_add_mul_right
{R : Type u}
[CommRing R]
{x y : R}
(z : R)
:
Ideal.span {x, y + x * z} = Ideal.span {x, y}
theorem
Ideal.mem_span_singleton
{α : Type u}
[CommSemiring α]
{x y : α}
:
x ∈ Ideal.span {y} ↔ y ∣ x
theorem
Ideal.span_singleton_le_span_singleton
{α : Type u}
[CommSemiring α]
{x y : α}
:
Ideal.span {x} ≤ Ideal.span {y} ↔ y ∣ x
theorem
Ideal.span_singleton_eq_span_singleton
{α : Type u}
[CommRing α]
[IsDomain α]
{x y : α}
:
Ideal.span {x} = Ideal.span {y} ↔ Associated x y
theorem
Ideal.span_singleton_mul_right_unit
{α : Type u}
[CommSemiring α]
{a : α}
(h2 : IsUnit a)
(x : α)
:
Ideal.span {x * a} = Ideal.span {x}
@[simp]
theorem
Ideal.span_singleton_eq_top
{α : Type u}
[CommSemiring α]
{x : α}
:
Ideal.span {x} = ⊤ ↔ IsUnit x
theorem
Ideal.factors_decreasing
{α : Type u}
[CommSemiring α]
[IsDomain α]
(b₁ b₂ : α)
(h₁ : b₁ ≠ 0)
(h₂ : ¬IsUnit b₂)
:
Ideal.span {b₁ * b₂} < Ideal.span {b₁}
theorem
Ideal.mem_span_insert'
{α : Type u}
[Ring α]
{s : Set α}
{x y : α}
:
x ∈ Ideal.span (insert y s) ↔ ∃ (a : α), x + a * y ∈ Ideal.span s
@[simp]