mathlib documentation

ring_theory.​algebra_operations

ring_theory.​algebra_operations

@[instance]
def submodule.​has_one {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] :

Equations
theorem submodule.​one_eq_map_top {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] :

theorem submodule.​one_eq_span {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] :

theorem submodule.​one_le {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] {P : submodule R A} :
1 P 1 P

@[instance]
def submodule.​has_mul {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] :

Equations
theorem submodule.​mul_mem_mul {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] {M N : submodule R A} {m n : A} :
m Mn Nm * n M * N

theorem submodule.​mul_le {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] {M N P : submodule R A} :
M * N P ∀ (m : A), m M∀ (n : A), n Nm * n P

theorem submodule.​mul_induction_on {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] {M N : submodule R A} {C : A → Prop} {r : A} :
r M * N(∀ (m : A), m M∀ (n : A), n NC (m * n))C 0(∀ (x y : A), C xC yC (x + y))(∀ (r : R) (x : A), C xC (r x))C r

theorem submodule.​span_mul_span (R : Type u) [comm_semiring R] {A : Type v} [semiring A] [algebra R A] (S T : set A) :

theorem submodule.​mul_assoc {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] (M N P : submodule R A) :
M * N * P = M * (N * P)

@[simp]
theorem submodule.​mul_bot {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] (M : submodule R A) :

@[simp]
theorem submodule.​bot_mul {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] (M : submodule R A) :

@[simp]
theorem submodule.​one_mul {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] (M : submodule R A) :
1 * M = M

@[simp]
theorem submodule.​mul_one {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] (M : submodule R A) :
M * 1 = M

theorem submodule.​mul_le_mul {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] {M N P Q : submodule R A} :
M PN QM * N P * Q

theorem submodule.​mul_le_mul_left {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] {M N P : submodule R A} :
M NM * P N * P

theorem submodule.​mul_le_mul_right {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] {M N P : submodule R A} :
N PM * N M * P

theorem submodule.​mul_sup {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] (M N P : submodule R A) :
M * (N P) = M * N M * P

theorem submodule.​sup_mul {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] (M N P : submodule R A) :
(M N) * P = M * P N * P

theorem submodule.​mul_subset_mul {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] (M N : submodule R A) :
M * N (M * N)

theorem submodule.​map_mul {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] (M N : submodule R A) {A' : Type u_1} [semiring A'] [algebra R A'] (f : A →ₐ[R] A') :

theorem submodule.​pow_subset_pow {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] (M : submodule R A) {n : } :
M ^ n (M ^ n)

def submodule.​span.​ring_hom {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] :

span is a semiring homomorphism (recall multiplication is pointwise multiplication of subsets on either side).

Equations
theorem submodule.​mul_mem_mul_rev {R : Type u} [comm_semiring R] {A : Type v} [comm_semiring A] [algebra R A] {M N : submodule R A} {m n : A} :
m Mn Nn * m M * N

theorem submodule.​mul_comm {R : Type u} [comm_semiring R] {A : Type v} [comm_semiring A] [algebra R A] (M N : submodule R A) :
M * N = N * M

@[instance]
def submodule.​semimodule_set (R : Type u) [comm_semiring R] (A : Type v) [comm_semiring A] [algebra R A] :

Equations
theorem submodule.​smul_def {R : Type u} [comm_semiring R] {A : Type v} [comm_semiring A] [algebra R A] {s : set.set_semiring A} {P : submodule R A} :
s P = submodule.span R s * P

theorem submodule.​smul_le_smul {R : Type u} [comm_semiring R] {A : Type v} [comm_semiring A] [algebra R A] {s t : set.set_semiring A} {M N : submodule R A} :
s.down t.downM Ns M t N

theorem submodule.​smul_singleton {R : Type u} [comm_semiring R] {A : Type v} [comm_semiring A] [algebra R A] (a : A) (M : submodule R A) :

@[instance]
def submodule.​has_div {R : Type u} [comm_semiring R] {A : Type v} [comm_semiring A] [algebra R A] :

The elements of I / J are the x such that x • J ⊆ I.

In fact, we define x ∈ I / J to be ∀ y ∈ J, x * y ∈ I (see mem_div_iff_forall_mul_mem), which is equivalent to x • J ⊆ I (see mem_div_iff_smul_subset), but nicer to use in proofs.

This is the general form of the ideal quotient, traditionally written $I : J$.

Equations
theorem submodule.​mem_div_iff_forall_mul_mem {R : Type u} [comm_semiring R] {A : Type v} [comm_semiring A] [algebra R A] {x : A} {I J : submodule R A} :
x I / J ∀ (y : A), y Jx * y I

theorem submodule.​mem_div_iff_smul_subset {R : Type u} [comm_semiring R] {A : Type v} [comm_semiring A] [algebra R A] {x : A} {I J : submodule R A} :
x I / J x J I

theorem submodule.​le_div_iff {R : Type u} [comm_semiring R] {A : Type v} [comm_semiring A] [algebra R A] {I J K : submodule R A} :
I J / K ∀ (x : A), x I∀ (z : A), z Kx * z J