The range of a MonoidWithZeroHom #
Given a MonoidWithZeroHom f : A → B whose codomain B is a MonoidWithZero, we define the
type MonoidWithZeroHom.valueMonoid as the submonoid of Bˣ generated by the invertible elements
in the range of f. For example, if A = ℕ, f is the natural cast to B where B is
ℝ≥0, thenMonoidWithZero.valueMonoidare the positive natural numbers inℝ≥0;WithZero ℤ, thenMonoidWithZero.valueMonoid = {1}.
MonoidWithZeroHom.ValueMonoid₀ is the MonoidWithZero obtained by
adjoining 0 to the previous type.
Likewise, MonoidWithZeroHom.valueGroup is the subgroup of Bˣ generated by the invertible
elements in range f and MonoidWithZeroHom.ValueGroup₀ adds a 0 to the previous group.
When B is commutative, then both MonoidWithZeroHom.valueGroup f and
MonoidWithZeroHom.ValueGroup₀ f are also commutative and the former can be described more
explicitly (see MonoidWithZeroHom.mem_valueGroup_iff_of_comm and mem_valueGroup_iff_of_comm').
Main declarations #
valueMonoid fis the smallest submonoid ofBˣcontaining the range off;ValueMonoid₀ fis the smallest monoid with0containing the range off;valueGroup fis the smallest subgroup ofBˣcontaining the range off;ValueMonoid₀ fis the smallest group with0containing the range off;- When
Bis a group with zero, rather than merely a monoid with zero, the above definitions all coincide: seevalueMonoid_eq_valueGroupfor an equality as submonoids andvalueMonoid_eq_valueGroup'for an equality as subsets. - When
Bis a commutative group with zero,MonoidWithZeroHom.valueGroupcan be explicitly described as the elements that are ratios of terms inrange f, seeMonoidWithZeroHom.mem_valueGroup_iff_of_comm.
Implementation details #
MonoidWithZeroHom.valueMonoid is defined explicitly in terms of its carrier, by proving the
required properties; that it coincides with the submonoid generated by the closure is proven in
MonoidWithZeroHom.valueMonoid_eq_closure, but using the latter as definition yields to unwanted
unfolding.
For a morphism of monoids with zero f, this is a smallest submonoid of the invertible
elements in the codomain containing the range of f.
Equations
Instances For
For a morphism of monoids with zero f, this is the smallest subgroup of the invertible
elements in the codomain containing the range of f.
Equations
Instances For
For a morphism of monoids with zero f, this is the smallest submonoid with zero of the
codomain containing the range of f.
Equations
Instances For
Alias of MonoidWithZeroHom.ValueMonoid₀.
For a morphism of monoids with zero f, this is the smallest submonoid with zero of the
codomain containing the range of f.
Instances For
For a morphism of monoids with zero f, this is a smallest subgroup with zero of the
codomain containing the range of f.
Equations
Instances For
Alias of MonoidWithZeroHom.ValueGroup₀.
For a morphism of monoids with zero f, this is a smallest subgroup with zero of the
codomain containing the range of f.
Instances For
The inclusion of the subgroup with zero generated by the range of a monoid with zero
hom f : A \to B into the codomain B.
Equations
Instances For
This is the restriction of f as a function taking values in valueGroup₀ f.
Equations
Instances For
The map sending a pair of nonzero r s : A to the element (v r)⁻¹ * (v s)
of ValueGroup₀ v.
Equations
Instances For
The map sending a pair of nonzero r s : A to the element (v r)⁻¹ * (v s)
of ValueGroup₀ v.
Equations
- MonoidWithZeroHom.ValueGroup₀.mk f r s = if h : f r = 0 ∨ f s = 0 then 0 else ↑(MonoidWithZeroHom.valueGroup.mk f r s ⋯ ⋯)
Instances For
Equations
- One or more equations did not get rendered due to their size.