theorem
MonoidHom.mrangeRestrict_eq_rangeFactorization
{M : Type u_1}
[MulOneClass M]
{N : Type u_4}
[MulOneClass N]
(f : M →* N)
:
theorem
AddMonoidHom.mrangeRestrict_eq_rangeFactorization
{M : Type u_1}
[AddZeroClass M]
{N : Type u_4}
[AddZeroClass N]
(f : M →+ N)
:
def
MulEquiv.ofLeftInverse''
{M : Type u_1}
{N : Type u_2}
[MulOneClass M]
[MulOneClass N]
(f : M →* N)
(g : ↥(MonoidHom.mrange f) → M)
(h : Function.LeftInverse g ⇑f.mrangeRestrict)
:
A monoid homomorphism f : M →* N with a left-inverse g : N → M defines a multiplicative
equivalence between M and f.mrange.
This is a bidirectional version of MonoidHom.mrange_restrict.
Equations
- MulEquiv.ofLeftInverse'' f g h = { toFun := ⇑f.mrangeRestrict, invFun := g, left_inv := h, right_inv := ⋯, map_mul' := ⋯ }
Instances For
def
AddEquiv.ofLeftInverse''
{M : Type u_1}
{N : Type u_2}
[AddZeroClass M]
[AddZeroClass N]
(f : M →+ N)
(g : ↥(AddMonoidHom.mrange f) → M)
(h : Function.LeftInverse g ⇑f.mrangeRestrict)
:
An additive monoid homomorphism f : M →+ N with a left-inverse g : N → M defines an
additive equivalence between M and f.mrange. This is a bidirectional version of
AddMonoidHom.mrange_restrict.
Equations
- AddEquiv.ofLeftInverse'' f g h = { toFun := ⇑f.mrangeRestrict, invFun := g, left_inv := h, right_inv := ⋯, map_add' := ⋯ }
Instances For
@[simp]
theorem
AddEquiv.ofLeftInverse''_apply
{M : Type u_1}
{N : Type u_2}
[AddZeroClass M]
[AddZeroClass N]
(f : M →+ N)
(g : ↥(AddMonoidHom.mrange f) → M)
(h : Function.LeftInverse g ⇑f.mrangeRestrict)
(a : M)
:
@[simp]
theorem
MulEquiv.ofLeftInverse''_symm_apply
{M : Type u_1}
{N : Type u_2}
[MulOneClass M]
[MulOneClass N]
(f : M →* N)
(g : ↥(MonoidHom.mrange f) → M)
(h : Function.LeftInverse g ⇑f.mrangeRestrict)
(a✝ : ↥(MonoidHom.mrange f))
:
@[simp]
theorem
AddEquiv.ofLeftInverse''_symm_apply
{M : Type u_1}
{N : Type u_2}
[AddZeroClass M]
[AddZeroClass N]
(f : M →+ N)
(g : ↥(AddMonoidHom.mrange f) → M)
(h : Function.LeftInverse g ⇑f.mrangeRestrict)
(a✝ : ↥(AddMonoidHom.mrange f))
:
@[simp]
theorem
MulEquiv.ofLeftInverse''_apply
{M : Type u_1}
{N : Type u_2}
[MulOneClass M]
[MulOneClass N]
(f : M →* N)
(g : ↥(MonoidHom.mrange f) → M)
(h : Function.LeftInverse g ⇑f.mrangeRestrict)
(a : M)
:
@[simp]
theorem
Function.LeftInverse.of_subsingleton
{α : Sort u_4}
{β : Sort u_5}
[Subsingleton β]
(g : α → β)
(f : β → α)
:
LeftInverse g f
@[simp]
theorem
Function.RightInverse.of_subsingleton
{α : Sort u_4}
[Subsingleton α]
{β : Sort u_5}
(g : α → β)
(f : β → α)
:
RightInverse g f
@[simp]
theorem
Function.LeftInverse.of_empty
{α : Sort u_4}
[IsEmpty α]
{β : Sort u_5}
(g : α → β)
(f : β → α)
:
LeftInverse g f
@[simp]
theorem
Function.RightInverse.of_empty
{α : Sort u_4}
{β : Sort u_5}
[IsEmpty β]
(g : α → β)
(f : β → α)
:
RightInverse g f