Submonoids: membership criteria #
In this file we prove various facts about membership in a submonoid:
list_prod_mem,multiset_prod_mem,prod_mem: if each element of a collection belongs to a multiplicative submonoid, then so does their product;list_sum_mem,multiset_sum_mem,sum_mem: if each element of a collection belongs to an additive submonoid, then so does their sum;pow_mem,nsmul_mem: ifx ∈ SwhereSis a multiplicative (resp., additive) submonoid andnis a natural number, thenx^n(resp.,n • x) belongs toS;mem_supr_of_directed,coe_supr_of_directed,mem_Sup_of_directed_on,coe_Sup_of_directed_on: the supremum of a directed collection of submonoid is their union.sup_eq_range,mem_sup: supremum of two submonoidsS,Tof a commutative monoid is the set of products;closure_singleton_eq,mem_closure_singleton: the multiplicative (resp., additive) closure of{x}consists of powers (resp., natural multiples) ofx.
Tags #
submonoid, submonoids
Sum of a list of elements in an add_submonoid is in the add_submonoid.
Product of a multiset of elements in a submonoid of a comm_monoid is in the submonoid.
Sum of a multiset of elements in an add_submonoid of an add_comm_monoid is
in the add_submonoid.
Sum of elements in an add_submonoid of an add_comm_monoid indexed by a finset
is in the add_submonoid.
Product of elements of a submonoid of a comm_monoid indexed by a finset is in the
submonoid.
An induction principle for elements of ⨆ i, S i.
If C holds for 1 and all elements of S i for all i, and is preserved under multiplication,
then it holds for all elements of the supremum of S.
An induction principle for elements of ⨆ i, S i.
If C holds for 0 and all elements of S i for all i, and is preserved under addition,
then it holds for all elements of the supremum of S.
A dependent version of submonoid.supr_induction.
A dependent version of add_submonoid.supr_induction.
The submonoid generated by an element of a monoid equals the set of natural number powers of the element.
The submonoid generated by an element.
Equations
- submonoid.powers n = (⇑(powers_hom M) n).mrange.copy (set.range (pow n)) _
Exponentiation map from natural numbers to powers.
Equations
- submonoid.pow n m = ⇑((⇑(powers_hom M) n).mrange_restrict) (⇑multiplicative.of_add m)
Logarithms from powers to natural numbers.
Equations
- submonoid.log p = nat.find _
The exponentiation map is an isomorphism from the additive monoid on natural numbers to powers when it is injective. The inverse is given by the logarithms.
Equations
- submonoid.pow_log_equiv h = {to_fun := λ (m : multiplicative ℕ), submonoid.pow n (⇑multiplicative.to_add m), inv_fun := λ (m : ↥(submonoid.powers n)), ⇑multiplicative.of_add (submonoid.log m), left_inv := _, right_inv := _, map_mul' := _}
The add_submonoid generated by an element of an add_monoid equals the set of
natural number multiples of the element.
The additive submonoid generated by an element.
Equations
- add_submonoid.multiples x = (⇑(multiples_hom A) x).mrange.copy (set.range (λ (i : ℕ), i • x)) _
Lemmas about additive closures of submonoid.
The product of an element of the additive closure of a multiplicative submonoid M
and an element of M is contained in the additive closure of M.
The product of two elements of the additive closure of a submonoid M is an element of the
additive closure of M.
The product of an element of S and an element of the additive closure of a multiplicative
submonoid S is contained in the additive closure of S.