ULift instances for module and multiplicative actions #
This file defines instances for Module, MulAction and related structures on ULift types.
(Recall ULift α is just a "copy" of a type α in a higher universe.)
We also provide ULift.moduleEquiv : ULift M ≃ₗ[R] M.
@[instance_reducible]
Equations
- ULift.smulLeft = { smul := fun (s : ULift.{?u.1, ?u.3} R) (x : M) => s.down • x }
@[instance_reducible]
Equations
- ULift.vaddLeft = { vadd := fun (s : ULift.{?u.1, ?u.3} R) (x : M) => s.down +ᵥ x }
@[simp]
@[simp]
instance ULift.isScalarTower {R : Type u} {M : Type v} {N : Type w} [SMul R M] [SMul M N] [SMul R N] [IsScalarTower R M N] :
IsScalarTower (ULift.{u_1, u} R) M N
instance ULift.isScalarTower' {R : Type u} {M : Type v} {N : Type w} [SMul R M] [SMul M N] [SMul R N] [IsScalarTower R M N] :
IsScalarTower R (ULift.{u_1, v} M) N
instance ULift.isScalarTower'' {R : Type u} {M : Type v} {N : Type w} [SMul R M] [SMul M N] [SMul R N] [IsScalarTower R M N] :
IsScalarTower R M (ULift.{u_1, w} N)
instance ULift.instIsCentralScalar {R : Type u} {M : Type v} [SMul R M] [SMul Rᵐᵒᵖ M] [IsCentralScalar R M] :
@[instance_reducible]
instance ULift.mulAction {R : Type u} {M : Type v} [Monoid R] [MulAction R M] :
MulAction (ULift.{u_1, u} R) M
Equations
- ULift.mulAction = { toSMul := ULift.smulLeft, mul_smul := ⋯, one_smul := ⋯ }
@[instance_reducible]
instance ULift.addAction {R : Type u} {M : Type v} [AddMonoid R] [AddAction R M] :
AddAction (ULift.{u_1, u} R) M
Equations
- ULift.addAction = { toVAdd := ULift.vaddLeft, add_vadd := ⋯, zero_vadd := ⋯ }
@[instance_reducible]
instance ULift.mulAction' {R : Type u} {M : Type v} [Monoid R] [MulAction R M] :
MulAction R (ULift.{u_1, v} M)
Equations
- ULift.mulAction' = { toSMul := ULift.smul, mul_smul := ⋯, one_smul := ⋯ }
@[instance_reducible]
instance ULift.addAction' {R : Type u} {M : Type v} [AddMonoid R] [AddAction R M] :
AddAction R (ULift.{u_1, v} M)
Equations
- ULift.addAction' = { toVAdd := ULift.vadd, add_vadd := ⋯, zero_vadd := ⋯ }
@[instance_reducible]
instance ULift.smulZeroClass {R : Type u} {M : Type v} [Zero M] [SMulZeroClass R M] :
SMulZeroClass (ULift.{u_1, u} R) M
Equations
- ULift.smulZeroClass = { toSMul := ULift.smulLeft, smul_zero := ⋯ }
@[instance_reducible]
instance ULift.smulZeroClass' {R : Type u} {M : Type v} [Zero M] [SMulZeroClass R M] :
SMulZeroClass R (ULift.{u_1, v} M)
Equations
- ULift.smulZeroClass' = { toSMul := ULift.smul, smul_zero := ⋯ }
@[instance_reducible]
instance ULift.distribSMul {R : Type u} {M : Type v} [AddZeroClass M] [DistribSMul R M] :
DistribSMul (ULift.{u_1, u} R) M
Equations
- ULift.distribSMul = { toSMulZeroClass := ULift.smulZeroClass, smul_add := ⋯ }
@[instance_reducible]
instance ULift.distribSMul' {R : Type u} {M : Type v} [AddZeroClass M] [DistribSMul R M] :
DistribSMul R (ULift.{u_1, v} M)
Equations
- ULift.distribSMul' = { toSMulZeroClass := ULift.smulZeroClass', smul_add := ⋯ }
@[instance_reducible]
instance ULift.distribMulAction {R : Type u} {M : Type v} [Monoid R] [AddMonoid M] [DistribMulAction R M] :
Equations
- ULift.distribMulAction = { toMulAction := ULift.mulAction, smul_zero := ⋯, smul_add := ⋯ }
@[instance_reducible]
instance ULift.distribMulAction' {R : Type u} {M : Type v} [Monoid R] [AddMonoid M] [DistribMulAction R M] :
Equations
- ULift.distribMulAction' = { toMulAction := ULift.mulAction', smul_zero := ⋯, smul_add := ⋯ }
@[instance_reducible]
instance ULift.mulDistribMulAction {R : Type u} {M : Type v} [Monoid R] [Monoid M] [MulDistribMulAction R M] :
Equations
- ULift.mulDistribMulAction = { toMulAction := ULift.mulAction, smul_one := ⋯, smul_mul := ⋯ }
@[instance_reducible]
instance ULift.mulDistribMulAction' {R : Type u} {M : Type v} [Monoid R] [Monoid M] [MulDistribMulAction R M] :
Equations
- ULift.mulDistribMulAction' = { toMulAction := ULift.mulAction', smul_one := ⋯, smul_mul := ⋯ }
@[instance_reducible]
instance ULift.smulWithZero {R : Type u} {M : Type v} [Zero R] [Zero M] [SMulWithZero R M] :
SMulWithZero (ULift.{u_1, u} R) M
Equations
- ULift.smulWithZero = { toSMul := ULift.smulLeft, smul_zero := ⋯, zero_smul := ⋯ }
@[instance_reducible]
instance ULift.smulWithZero' {R : Type u} {M : Type v} [Zero R] [Zero M] [SMulWithZero R M] :
SMulWithZero R (ULift.{u_1, v} M)
Equations
- ULift.smulWithZero' = { toSMul := ULift.smul, smul_zero := ⋯, zero_smul := ⋯ }
@[instance_reducible]
instance ULift.mulActionWithZero {R : Type u} {M : Type v} [MonoidWithZero R] [Zero M] [MulActionWithZero R M] :
Equations
- ULift.mulActionWithZero = { toSMul := ULift.smulWithZero.toSMul, mul_smul := ⋯, one_smul := ⋯, smul_zero := ⋯, zero_smul := ⋯ }
@[instance_reducible]
instance ULift.mulActionWithZero' {R : Type u} {M : Type v} [MonoidWithZero R] [Zero M] [MulActionWithZero R M] :
Equations
- ULift.mulActionWithZero' = { toSMul := ULift.smulWithZero'.toSMul, mul_smul := ⋯, one_smul := ⋯, smul_zero := ⋯, zero_smul := ⋯ }
@[instance_reducible]
instance ULift.module {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] [Module R M] :
Module (ULift.{u_1, u} R) M
Equations
- ULift.module = { toSMul := ULift.smulWithZero.toSMul, mul_smul := ⋯, one_smul := ⋯, smul_zero := ⋯, smul_add := ⋯, add_smul := ⋯, zero_smul := ⋯ }
@[instance_reducible]
instance ULift.module' {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] [Module R M] :
Module R (ULift.{u_1, v} M)
Equations
- ULift.module' = { toSMul := ULift.smulWithZero'.toSMul, mul_smul := ⋯, one_smul := ⋯, smul_zero := ⋯, smul_add := ⋯, add_smul := ⋯, zero_smul := ⋯ }
The R-linear equivalence between ULift M and M.
This is a linear version of AddEquiv.ulift.
Equations
- ULift.moduleEquiv = { toFun := ULift.down, map_add' := ⋯, map_smul' := ⋯, invFun := ULift.up, left_inv := ⋯, right_inv := ⋯ }
Instances For
@[simp]
theorem ULift.moduleEquiv_symm_apply {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] [Module R M] (down : M) :
@[simp]
theorem ULift.moduleEquiv_apply {R : Type u} {M : Type v} [Semiring R] [AddCommMonoid M] [Module R M] (self : ULift.{w, v} M) :