Transfer algebraic structures across Equivs or AddEquivs #
This continues the pattern set in Mathlib/Algebra/Group/TransferInstance.lean.
@[reducible, inline]
abbrev
Equiv.smulZeroClass
(M : Type u_1)
{A : Type u_3}
{B : Type u_4}
(e : A ≃ B)
[Zero A]
[Zero B]
[SMulZeroClass M B]
(map_zero : e 0 = 0)
:
SMulZeroClass M A
Transfer SMulZeroClass across an Equiv
Equations
- Equiv.smulZeroClass M e map_zero = { toSMul := Equiv.smul M e, smul_zero := ⋯ }
Instances For
@[reducible, inline]
abbrev
Equiv.smulWithZero
(M₀ : Type u_2)
{A : Type u_3}
{B : Type u_4}
(e : A ≃ B)
[Zero M₀]
[Zero A]
[Zero B]
[SMulWithZero M₀ B]
(map_zero : e 0 = 0)
:
SMulWithZero M₀ A
Transfer SMulWithZero across an Equiv
Equations
- Equiv.smulWithZero M₀ e map_zero = { toSMulZeroClass := Equiv.smulZeroClass M₀ e map_zero, zero_smul := ⋯ }
Instances For
@[reducible, inline]
abbrev
Equiv.mulActionWithZero
(M₀ : Type u_2)
{A : Type u_3}
{B : Type u_4}
(e : A ≃ B)
[MonoidWithZero M₀]
[Zero A]
[Zero B]
[MulActionWithZero M₀ B]
(map_zero : e 0 = 0)
:
MulActionWithZero M₀ A
Transfer MulActionWithZero across an Equiv
Equations
- Equiv.mulActionWithZero M₀ e map_zero = { toSMul := (Equiv.smulWithZero M₀ e map_zero).toSMul, mul_smul := ⋯, one_smul := ⋯, smul_zero := ⋯, zero_smul := ⋯ }
Instances For
@[reducible, inline]
abbrev
AddEquiv.distribSMul
(M : Type u_1)
{A : Type u_3}
{B : Type u_4}
[AddZeroClass A]
[AddZeroClass B]
[DistribSMul M B]
(e : A ≃+ B)
:
DistribSMul M A
Transfer DistribSMul across an AddEquiv
Equations
- AddEquiv.distribSMul M e = { toSMulZeroClass := Equiv.smulZeroClass M e.toEquiv ⋯, smul_add := ⋯ }
Instances For
@[reducible, inline]
abbrev
AddEquiv.distribMulAction
(M : Type u_1)
{A : Type u_3}
{B : Type u_4}
[Monoid M]
[AddMonoid A]
[AddMonoid B]
[DistribMulAction M B]
(e : A ≃+ B)
:
DistribMulAction M A
Transfer DistribMulAction across an AddEquiv
Equations
- AddEquiv.distribMulAction M e = { toSMul := (AddEquiv.distribSMul M e).toSMul, mul_smul := ⋯, one_smul := ⋯, smul_zero := ⋯, smul_add := ⋯ }
Instances For
@[deprecated AddEquiv.distribSMul (since := "2026-07-30")]
def
Equiv.distribSMul
(M : Type u_1)
{A : Type u_3}
{B : Type u_4}
[AddZeroClass A]
[AddZeroClass B]
[DistribSMul M B]
(e : A ≃+ B)
:
DistribSMul M A
Alias of AddEquiv.distribSMul.
Transfer DistribSMul across an AddEquiv
Equations
Instances For
@[deprecated AddEquiv.distribMulAction (since := "2026-07-30")]
def
Equiv.distribMulAction
(M : Type u_1)
{A : Type u_3}
{B : Type u_4}
[Monoid M]
[AddMonoid A]
[AddMonoid B]
[DistribMulAction M B]
(e : A ≃+ B)
:
DistribMulAction M A
Alias of AddEquiv.distribMulAction.
Transfer DistribMulAction across an AddEquiv