Pointwise instances on submonoid
s and add_submonoid
s #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file provides:
and the actions
which matches the action of mul_action_set
.
These are all available in the pointwise
locale.
Additionally, it provides various degrees of monoid structure:
add_submonoid.has_one
add_submonoid.has_mul
add_submonoid.mul_one_class
add_submonoid.semigroup
add_submonoid.monoid
which is available globally to match the monoid structure implied bysubmodule.idem_semiring
.
Implementation notes #
Most of the lemmas in this file are direct copies of lemmas from algebra/pointwise.lean
.
While the statements of these lemmas are defeq, we repeat them here due to them not being
syntactically equal. Before adding new lemmas here, consider if they would also apply to the action
on set
s.
Some lemmas about pointwise multiplication and submonoids. Ideally we put these in
group_theory.submonoid.basic
, but currently we cannot because that file is imported by this.
The additive submonoid with every element negated.
Equations
- submonoid.has_involutive_inv = function.injective.has_involutive_inv coe submonoid.has_involutive_inv._proof_1 submonoid.has_involutive_inv._proof_2
Equations
- add_submonoid.has_involutive_neg = function.injective.has_involutive_neg coe add_submonoid.has_involutive_neg._proof_1 add_submonoid.has_involutive_neg._proof_2
add_submonoid.has_neg
as an order isomorphism
Equations
submonoid.has_inv
as an order isomorphism.
Equations
The action on a submonoid corresponding to applying the action to every element.
This is available as an instance in the pointwise
locale.
Equations
- submonoid.pointwise_mul_action = {to_has_smul := {smul := λ (a : α) (S : submonoid M), submonoid.map (⇑(mul_distrib_mul_action.to_monoid_End α M) a) S}, one_smul := _, mul_smul := _}
The action on an additive submonoid corresponding to applying the action to every element.
This is available as an instance in the pointwise
locale.
Equations
- add_submonoid.pointwise_mul_action = {to_has_smul := {smul := λ (a : α) (S : add_submonoid A), add_submonoid.map (⇑(distrib_mul_action.to_add_monoid_End α A) a) S}, one_smul := _, mul_smul := _}
Elementwise monoid structure of additive submonoids #
These definitions are a cut-down versions of the ones around submodule.has_mul
, as that API is
usually more useful.
Equations
Multiplication of additive submonoids of a semiring R. The additive submonoid S * T
is the
smallest R-submodule of R
containing the elements s * t
for s ∈ S
and t ∈ T
.
Equations
- add_submonoid.has_mul = {mul := λ (M N : add_submonoid R), ⨆ (s : ↥M), add_submonoid.map (⇑add_monoid_hom.mul s.val) N}
add_submonoid.has_pointwise_neg
distributes over multiplication.
This is available as an instance in the pointwise
locale.
Equations
- add_submonoid.has_distrib_neg = {neg := has_neg.neg (has_involutive_neg.to_has_neg (add_submonoid R)), neg_neg := _, neg_mul := _, mul_neg := _}
Equations
- add_submonoid.mul_one_class = {one := 1, mul := has_mul.mul add_submonoid.has_mul, one_mul := _, mul_one := _}
Equations
Equations
- add_submonoid.monoid = {mul := has_mul.mul add_submonoid.has_mul, mul_assoc := _, one := 1, one_mul := _, mul_one := _, npow := npow_rec (mul_one_class.to_has_mul (add_submonoid R)), npow_zero' := _, npow_succ' := _}