mathlib documentation

algebra.module.submodule_pointwise

Pointwise instances on submodules #

This file provides:

and the actions

which matches the action of mul_action_set.

These actions are available in the pointwise locale.

Implementation notes #

Most of the lemmas in this file are direct copies of lemmas from group_theory/submonoid/pointwise.lean.

@[protected, instance]
def submodule.has_pointwise_neg {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_group M] [module R M] :

The submodule with every element negated. Note if R is a ring and not just a semiring, this is a no-op, as shown by submodule.neg_eq_self.

Recall that When R is the semiring corresponding to the nonnegative elements of R', submodule R' M is the type of cones of M. This instance reflects such cones about 0.

This is available as an instance in the pointwise locale.

Equations
@[simp]
theorem submodule.coe_set_neg {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_group M] [module R M] (S : submodule R M) :
@[simp]
theorem submodule.neg_to_add_submonoid {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_group M] [module R M] (S : submodule R M) :
@[simp]
theorem submodule.mem_neg {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_group M] [module R M] {g : M} {S : submodule R M} :
g -S -g S
@[protected, instance]
def submodule.has_involutive_pointwise_neg {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_group M] [module R M] :

submodule.has_pointwise_neg is involutive.

This is available as an instance in the pointwise locale.

Equations
@[simp]
theorem submodule.neg_le_neg {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_group M] [module R M] (S T : submodule R M) :
-S -T S T
theorem submodule.neg_le {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_group M] [module R M] (S T : submodule R M) :
-S T S -T
theorem submodule.closure_neg {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_group M] [module R M] (s : set M) :
@[simp]
theorem submodule.neg_inf {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_group M] [module R M] (S T : submodule R M) :
-(S T) = -S -T
@[simp]
theorem submodule.neg_sup {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_group M] [module R M] (S T : submodule R M) :
-(S T) = -S -T
@[simp]
theorem submodule.neg_bot {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_group M] [module R M] :
@[simp]
theorem submodule.neg_top {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_group M] [module R M] :
@[simp]
theorem submodule.neg_infi {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_group M] [module R M] {ι : Sort u_1} (S : ι → submodule R M) :
(-⨅ (i : ι), S i) = ⨅ (i : ι), -S i
@[simp]
theorem submodule.neg_supr {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_group M] [module R M] {ι : Sort u_1} (S : ι → submodule R M) :
(-⨆ (i : ι), S i) = ⨆ (i : ι), -S i
@[simp]
theorem submodule.neg_eq_self {R : Type u_2} {M : Type u_3} [ring R] [add_comm_group M] [module R M] (p : submodule R M) :
-p = p
@[protected, instance]
def submodule.pointwise_add_comm_monoid {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_monoid M] [module R M] :
Equations
@[simp]
theorem submodule.add_eq_sup {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_monoid M] [module R M] (p q : submodule R M) :
p + q = p q
@[simp]
theorem submodule.zero_eq_bot {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_monoid M] [module R M] :
0 =
@[protected, instance]
def submodule.pointwise_distrib_mul_action {α : Type u_1} {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_monoid M] [module R M] [monoid α] [distrib_mul_action α M] [smul_comm_class α R M] :

The action on a submodule corresponding to applying the action to every element.

This is available as an instance in the pointwise locale.

Equations
@[simp]
theorem submodule.coe_pointwise_smul {α : Type u_1} {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_monoid M] [module R M] [monoid α] [distrib_mul_action α M] [smul_comm_class α R M] (a : α) (S : submodule R M) :
(a S) = a S
@[simp]
theorem submodule.pointwise_smul_to_add_submonoid {α : Type u_1} {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_monoid M] [module R M] [monoid α] [distrib_mul_action α M] [smul_comm_class α R M] (a : α) (S : submodule R M) :
@[simp]
theorem submodule.pointwise_smul_to_add_subgroup {α : Type u_1} [monoid α] {R : Type u_2} {M : Type u_3} [ring R] [add_comm_group M] [distrib_mul_action α M] [module R M] [smul_comm_class α R M] (a : α) (S : submodule R M) :
theorem submodule.smul_mem_pointwise_smul {α : Type u_1} {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_monoid M] [module R M] [monoid α] [distrib_mul_action α M] [smul_comm_class α R M] (m : M) (a : α) (S : submodule R M) :
m Sa m a S
@[protected, instance]
def submodule.pointwise_central_scalar {α : Type u_1} {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_monoid M] [module R M] [monoid α] [distrib_mul_action α M] [smul_comm_class α R M] [distrib_mul_action αᵐᵒᵖ M] [smul_comm_class αᵐᵒᵖ R M] [is_central_scalar α M] :
@[simp]
theorem submodule.smul_le_self_of_tower {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_monoid M] [module R M] {α : Type u_1} [semiring α] [module α R] [module α M] [smul_comm_class α R M] [is_scalar_tower α R M] (a : α) (S : submodule R M) :
a S S
@[protected, instance]
def submodule.pointwise_mul_action_with_zero {α : Type u_1} {R : Type u_2} {M : Type u_3} [semiring R] [add_comm_monoid M] [module R M] [semiring α] [module α M] [smul_comm_class α R M] :

The action on a submodule corresponding to applying the action to every element.

This is available as an instance in the pointwise locale.

This is a stronger version of submodule.pointwise_distrib_mul_action. Note that add_smul does not hold so this cannot be stated as a module.

Equations