The colon ideal #
This file defines Submodule.colon N P
as the ideal of all elements r : R
such that r • P ⊆ N
.
The normal notation for this would be N : P
which has already been taken by type theory.
def
Submodule.colon
{R : Type u_1}
{M : Type u_2}
[CommRing R]
[AddCommGroup M]
[Module R M]
(N : Submodule R M)
(P : Submodule R M)
:
Ideal R
N.colon P
is the ideal of all elements r : R
such that r • P ⊆ N
.
Equations
- Submodule.colon N P = Submodule.annihilator (Submodule.map (Submodule.mkQ N) P)
Instances For
theorem
Submodule.mem_colon
{R : Type u_1}
{M : Type u_2}
[CommRing R]
[AddCommGroup M]
[Module R M]
{N : Submodule R M}
{P : Submodule R M}
{r : R}
:
r ∈ Submodule.colon N P ↔ ∀ p ∈ P, r • p ∈ N
theorem
Submodule.mem_colon'
{R : Type u_1}
{M : Type u_2}
[CommRing R]
[AddCommGroup M]
[Module R M]
{N : Submodule R M}
{P : Submodule R M}
{r : R}
:
r ∈ Submodule.colon N P ↔ P ≤ Submodule.comap (r • LinearMap.id) N
@[simp]
@[simp]
theorem
Submodule.colon_bot
{R : Type u_1}
{M : Type u_2}
[CommRing R]
[AddCommGroup M]
[Module R M]
{N : Submodule R M}
:
theorem
Submodule.colon_mono
{R : Type u_1}
{M : Type u_2}
[CommRing R]
[AddCommGroup M]
[Module R M]
{N₁ : Submodule R M}
{N₂ : Submodule R M}
{P₁ : Submodule R M}
{P₂ : Submodule R M}
(hn : N₁ ≤ N₂)
(hp : P₁ ≤ P₂)
:
Submodule.colon N₁ P₂ ≤ Submodule.colon N₂ P₁
theorem
Submodule.iInf_colon_iSup
{R : Type u_1}
{M : Type u_2}
[CommRing R]
[AddCommGroup M]
[Module R M]
(ι₁ : Sort u_6)
(f : ι₁ → Submodule R M)
(ι₂ : Sort u_7)
(g : ι₂ → Submodule R M)
:
Submodule.colon (⨅ (i : ι₁), f i) (⨆ (j : ι₂), g j) = ⨅ (i : ι₁), ⨅ (j : ι₂), Submodule.colon (f i) (g j)
@[simp]
theorem
Submodule.mem_colon_singleton
{R : Type u_1}
{M : Type u_2}
[CommRing R]
[AddCommGroup M]
[Module R M]
{N : Submodule R M}
{x : M}
{r : R}
:
r ∈ Submodule.colon N (Submodule.span R {x}) ↔ r • x ∈ N
@[simp]
theorem
Ideal.mem_colon_singleton
{R : Type u_1}
[CommRing R]
{I : Ideal R}
{x : R}
{r : R}
:
r ∈ Submodule.colon I (Ideal.span {x}) ↔ r * x ∈ I
theorem
Submodule.annihilator_quotient
{R : Type u_1}
{M : Type u_2}
[CommRing R]
[AddCommGroup M]
[Module R M]
{N : Submodule R M}
:
Module.annihilator R (M ⧸ N) = Submodule.colon N ⊤
theorem
Ideal.annihilator_quotient
{R : Type u_1}
[CommRing R]
{I : Ideal R}
:
Module.annihilator R (R ⧸ I) = I