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}
[Semiring R]
[AddCommMonoid M]
[Module R M]
(N : Submodule R M)
(S : Set M)
:
Ideal R
N.colon P is the ideal of all elements r : R such that r โข P โ N.
We treat it as an infix in lemma names.
Instances For
theorem
Submodule.mem_colon
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{N : Submodule R M}
{S : Set M}
{r : R}
:
r โ N.colon S โ โ s โ S, r โข s โ N
@[simp]
theorem
Submodule.mem_colon_singleton
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{N : Submodule R M}
{x : M}
{r : R}
:
r โ N.colon {x} โ r โข x โ N
@[instance 100]
instance
Submodule.instIsTwoSidedColonCoe
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{N : Submodule R M}
(P : Submodule R M)
:
(N.colon โP).IsTwoSided
@[simp]
@[deprecated Submodule.colon_univ (since := "2026-01-11")]
Alias of Submodule.colon_univ.
@[simp]
theorem
Submodule.bot_colon
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{N : Submodule R M}
:
โฅ.colon โN = N.annihilator
theorem
Submodule.iInf_colon_iUnion
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
(ฮนโ : Sort u_3)
(f : ฮนโ โ Submodule R M)
(ฮนโ : Sort u_4)
(g : ฮนโ โ Set M)
:
@[deprecated Submodule.iInf_colon_iUnion (since := "2026-01-11")]
theorem
Submodule.iInf_colon_iSup
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
(ฮนโ : Sort u_3)
(f : ฮนโ โ Submodule R M)
(ฮนโ : Sort u_4)
(g : ฮนโ โ Set M)
:
Alias of Submodule.iInf_colon_iUnion.
theorem
Submodule.colon_inf_eq_left_of_subset
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{Nโ Nโ : Submodule R M}
{S : Set M}
(h : S โ โNโ)
:
If S โ Nโ, then intersecting with Nโ does not change the colon ideal.
@[simp]
theorem
Submodule.colon_eq_top_iff_subset
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{N : Submodule R M}
(S : Set M)
:
@[simp]
@[simp]
@[simp]
theorem
Submodule.top_colon
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{S : Set M}
:
@[simp]
@[simp]
@[simp]
theorem
Submodule.colon_empty
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{N : Submodule R M}
:
theorem
Submodule.colon_singleton_zero
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{N : Submodule R M}
:
theorem
Submodule.colon_bot
{R : Type u_1}
{M : Type u_2}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{N : Submodule R M}
:
@[deprecated Submodule.mem_colon (since := "2026-01-15")]
theorem
Submodule.mem_colon'
{R : Type u_1}
{M : Type u_2}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
{N : Submodule R M}
{S : Set M}
{r : R}
:
r โ N.colon S โ S โค โ(comap (r โข LinearMap.id) N)
theorem
Submodule.mem_colon_iff_le
{R : Type u_1}
{M : Type u_2}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
{N N' : Submodule R M}
{r : R}
:
theorem
Submodule.bot_colon'
{R : Type u_1}
{M : Type u_2}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
{S : Set M}
:
โฅ.colon S = (span R S).annihilator
A variant for arbitrary sets in commutative semirings
@[simp]
theorem
Submodule.colon_span
{R : Type u_1}
{M : Type u_2}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
{N : Submodule R M}
{S : Set M}
:
@[simp]
theorem
Ideal.colon_span
{R : Type u_1}
[CommSemiring R]
{I : Ideal R}
{S : Set R}
:
Submodule.colon I โ(span S) = Submodule.colon I S
theorem
Submodule.mem_colon_span_singleton
{R : Type u_1}
{M : Type u_2}
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
{N : Submodule R M}
{x : M}
{r : R}
:
theorem
Ideal.mem_colon_span_singleton
{R : Type u_1}
[CommSemiring R]
{I : Ideal R}
{x r : R}
:
r โ Submodule.colon I โ(span {x}) โ r * x โ I
@[simp]
theorem
Submodule.annihilator_map_mkQ_eq_colon
{R : Type u_1}
{M : Type u_2}
[Ring R]
[AddCommGroup M]
[Module R M]
{N P : Submodule R M}
:
(map N.mkQ P).annihilator = N.colon โP
theorem
Submodule.annihilator_quotient
{R : Type u_1}
{M : Type u_2}
[Ring R]
[AddCommGroup M]
[Module R M]
{N : Submodule R M}
:
Module.annihilator R (M โงธ N) = N.colon Set.univ
theorem
Ideal.annihilator_quotient
{R : Type u_1}
[Ring R]
{I : Ideal R}
[I.IsTwoSided]
:
Module.annihilator R (R โงธ I) = I