More operations on WithOne
and WithZero
#
This file defines various bundled morphisms on WithOne
and WithZero
that were not available in Algebra/Group/WithOne/Defs
.
Main definitions #
Equations
- WithZero.involutiveNeg = InvolutiveNeg.mk ⋯
Equations
- WithOne.involutiveInv = InvolutiveInv.mk ⋯
WithZero.coe
as a bundled morphism
Equations
- WithZero.coeAddHom = { toFun := WithZero.coe, map_add' := ⋯ }
Instances For
@[simp]
@[simp]
WithOne.coe
as a bundled morphism
Equations
- WithOne.coeMulHom = { toFun := WithOne.coe, map_mul' := ⋯ }
Instances For
Lift an add semigroup homomorphism f
to a bundled add monoid homomorphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Lift a semigroup homomorphism f
to a bundled monoid homomorphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
WithZero.lift_coe
{α : Type u}
{β : Type v}
[Add α]
[AddZeroClass β]
(f : AddHom α β)
(x : α)
:
(WithZero.lift f) ↑x = f x
@[simp]
theorem
WithOne.lift_coe
{α : Type u}
{β : Type v}
[Mul α]
[MulOneClass β]
(f : α →ₙ* β)
(x : α)
:
(WithOne.lift f) ↑x = f x
theorem
WithZero.lift_zero
{α : Type u}
{β : Type v}
[Add α]
[AddZeroClass β]
(f : AddHom α β)
:
(WithZero.lift f) 0 = 0
theorem
WithOne.lift_one
{α : Type u}
{β : Type v}
[Mul α]
[MulOneClass β]
(f : α →ₙ* β)
:
(WithOne.lift f) 1 = 1
theorem
WithZero.lift_unique
{α : Type u}
{β : Type v}
[Add α]
[AddZeroClass β]
(f : WithZero α →+ β)
:
f = WithZero.lift ((↑f).comp WithZero.coeAddHom)
theorem
WithOne.lift_unique
{α : Type u}
{β : Type v}
[Mul α]
[MulOneClass β]
(f : WithOne α →* β)
:
f = WithOne.lift ((↑f).comp WithOne.coeMulHom)
@[simp]
theorem
WithZero.map_coe
{α : Type u}
{β : Type v}
[Add α]
[Add β]
(f : AddHom α β)
(a : α)
:
(WithZero.map f) ↑a = ↑(f a)
@[simp]
theorem
WithOne.map_coe
{α : Type u}
{β : Type v}
[Mul α]
[Mul β]
(f : α →ₙ* β)
(a : α)
:
(WithOne.map f) ↑a = ↑(f a)
@[simp]
theorem
WithZero.map_id
{α : Type u}
[Add α]
:
WithZero.map (AddHom.id α) = AddMonoidHom.id (WithZero α)
@[simp]
theorem
WithZero.map_map
{α : Type u}
{β : Type v}
{γ : Type w}
[Add α]
[Add β]
[Add γ]
(f : AddHom α β)
(g : AddHom β γ)
(x : WithZero α)
:
(WithZero.map g) ((WithZero.map f) x) = (WithZero.map (g.comp f)) x
theorem
WithOne.map_map
{α : Type u}
{β : Type v}
{γ : Type w}
[Mul α]
[Mul β]
[Mul γ]
(f : α →ₙ* β)
(g : β →ₙ* γ)
(x : WithOne α)
:
(WithOne.map g) ((WithOne.map f) x) = (WithOne.map (g.comp f)) x
@[simp]
theorem
WithZero.map_comp
{α : Type u}
{β : Type v}
{γ : Type w}
[Add α]
[Add β]
[Add γ]
(f : AddHom α β)
(g : AddHom β γ)
:
WithZero.map (g.comp f) = (WithZero.map g).comp (WithZero.map f)
@[simp]
theorem
WithOne.map_comp
{α : Type u}
{β : Type v}
{γ : Type w}
[Mul α]
[Mul β]
[Mul γ]
(f : α →ₙ* β)
(g : β →ₙ* γ)
:
WithOne.map (g.comp f) = (WithOne.map g).comp (WithOne.map f)
A version of Equiv.optionCongr
for WithZero
.
Equations
- e.withZeroCongr = { toFun := ⇑(WithZero.map e.toAddHom), invFun := ⇑(WithZero.map e.symm.toAddHom), left_inv := ⋯, right_inv := ⋯, map_add' := ⋯ }
Instances For
@[simp]
theorem
AddEquiv.withZeroCongr_apply
{α : Type u}
{β : Type v}
[Add α]
[Add β]
(e : α ≃+ β)
(a : WithZero α)
:
e.withZeroCongr a = (WithZero.map e.toAddHom) a
@[simp]
theorem
MulEquiv.withOneCongr_apply
{α : Type u}
{β : Type v}
[Mul α]
[Mul β]
(e : α ≃* β)
(a : WithOne α)
:
e.withOneCongr a = (WithOne.map e.toMulHom) a
A version of Equiv.optionCongr
for WithOne
.
Equations
- e.withOneCongr = { toFun := ⇑(WithOne.map e.toMulHom), invFun := ⇑(WithOne.map e.symm.toMulHom), left_inv := ⋯, right_inv := ⋯, map_mul' := ⋯ }
Instances For
@[simp]
theorem
AddEquiv.withZeroCongr_refl
{α : Type u}
[Add α]
:
(AddEquiv.refl α).withZeroCongr = AddEquiv.refl (WithZero α)
@[simp]
theorem
MulEquiv.withOneCongr_refl
{α : Type u}
[Mul α]
:
(MulEquiv.refl α).withOneCongr = MulEquiv.refl (WithOne α)