Definitions of group actions #
This file defines a hierarchy of group action type-classes on top of the previously defined
notation classes SMul
and its additive version VAdd
:
MulAction M α
and its additive versionAddAction G P
are typeclasses used for actions of multiplicative and additive monoids and groups; they extend notation classesSMul
andVAdd
that are defined inAlgebra.Group.Defs
;DistribMulAction M A
is a typeclass for an action of a multiplicative monoid on an additive monoid such thata • (b + c) = a • b + a • c
anda • 0 = 0
.
The hierarchy is extended further by Module
, defined elsewhere.
Also provided are typeclasses for faithful and transitive actions, and typeclasses regarding the interaction of different group actions,
SMulCommClass M N α
and its additive versionVAddCommClass M N α
;IsScalarTower M N α
and its additive versionVAddAssocClass M N α
;IsCentralScalar M α
and its additive versionIsCentralVAdd M N α
.
Notation #
Implementation details #
This file should avoid depending on other parts of GroupTheory
, to avoid import cycles.
More sophisticated lemmas belong in GroupTheory.GroupAction
.
Tags #
group action
Faithful actions #
Typeclass for faithful actions.
Two elements
g₁
andg₂
are equal whenever they act in the same way on all points.
Instances
- AddLeftCancelMonoid.toFaithfulVAdd_opposite
- AddRightCancelMonoid.faithfulVAdd
- AddUnits.instFaithfulVAddAddUnitsInstVAddAddUnits
- DomAddAct.instFaithfulVAddDomAddActForAllInstVAddDomAddActForAll
- Pi.faithfulVAdd
- Prod.faithfulVAddLeft
- Prod.faithfulVAddRight
- Submodule.instFaithfulVAddSubtypeMemSubmoduleInstMembershipSetLikeInstVAddSubtypeMemSubmoduleInstMembershipSetLike
Typeclass for faithful actions.
Two elements
m₁
andm₂
are equal whenever they act in the same way on all points.
Instances
- AddAut.apply_faithfulSMul
- AddMonoid.End.applyFaithfulSMul
- AddMonoidAlgebra.faithfulSMul
- AlgEquiv.apply_faithfulSMul
- CancelMonoidWithZero.faithfulSMul
- CancelMonoidWithZero.toFaithfulSMul_opposite
- ContinuousLinearMap.applyFaithfulSMul
- DomMulAct.instFaithfulSMulDomMulActForAllInstSMulDomMulActForAll
- Equiv.Perm.applyFaithfulSMul
- Finsupp.faithfulSMul
- Function.End.apply_FaithfulSMul
- LeftCancelMonoid.toFaithfulSMul_opposite
- LinearEquiv.apply_faithfulSMul
- LinearMap.apply_faithfulSMul
- MonoidAlgebra.faithfulSMul
- MulAut.apply_faithfulSMul
- MvPolynomial.faithfulSMul
- Pi.faithfulSMul
- Polynomial.faithfulSMul
- Prod.faithfulSMulLeft
- Prod.faithfulSMulRight
- RightCancelMonoid.faithfulSMul
- RingAut.apply_faithfulSMul
- RingHom.applyFaithfulSMul
- Subalgebra.instFaithfulSMulSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebraInstSMulSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebra
- Subgroup.instFaithfulSMulSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupSmulToMulOneClassToMonoidToDivInvMonoidToSMulToSubmonoid
- Submonoid.faithfulSMul
- Subring.instFaithfulSMulSubtypeMemSubringInstMembershipInstSetLikeSubringInstSMulSubtypeMemSubringInstMembershipInstSetLikeSubring
- Subsemiring.faithfulSMul
- Units.instFaithfulSMulUnitsInstSMulUnits
See also AddMonoid.toAddAction
Equations
- Add.toVAdd α = { vadd := fun (x x_1 : α) => x + x_1 }
See also Monoid.toMulAction
and MulZeroClass.toSMulWithZero
.
Equations
- Mul.toSMul α = { smul := fun (x x_1 : α) => x * x_1 }
Type class for additive monoid actions.
- vadd : G → P → P
Zero is a neutral element for
+ᵥ
Associativity of
+
and+ᵥ
Instances
- AddAction.addLeftCosetsCompSubtypeVal
- AddAction.functionEnd
- AddAction.instAddActionElemOrbit
- AddAction.quotient
- AddCon.addAction
- AddMonoid.toAddAction
- AddMonoid.toOppositeAddAction
- AddOpposite.addAction
- AddSubgroup.instAddAction
- AddSubmonoid.addAction
- AddUnits.instAddAction
- Additive.addAction
- DomAddAct.instAddActionDomAddActForAllInstAddMonoidDomAddActAddMonoid
- LinearPMap.instAddAction
- OrderDual.instAddAction
- OrderDual.instAddAction'
- Pi.addAction
- Pi.addAction'
- Prod.addAction
- Submodule.instAddActionSubtypeMemSubmoduleInstMembershipSetLikeToAddMonoidToAddMonoidToAddSubmonoid
- ULift.addAction
- ULift.addAction'
- UniformSpace.Completion.instAddActionCompletion
Typeclass for multiplicative actions by monoids. This generalizes group actions.
- smul : α → β → β
One is the neutral element for
•
Associativity of
•
and*
Instances
- AffineMap.mulAction
- Complex.mulAction
- Con.mulAction
- ConjAct.mulAction₀
- ContinuousLinearMap.mulAction
- ContinuousMultilinearMap.instMulActionContinuousMultilinearMap
- DomMulAct.instMulActionDomMulActAddMonoidHomToAddZeroClassInstMonoidDomMulActMonoid
- DomMulAct.instMulActionDomMulActForAllInstMonoidDomMulActMonoid
- DomMulAct.instMulActionDomMulActMonoidHomToMulOneClassInstMonoidDomMulActMonoid
- ENNReal.instMulActionNNRealToMonoidToMonoidWithZeroInstNNRealSemiring
- Equiv.Perm.applyMulAction
- Equiv.instMulActionShrink
- Function.End.applyMulAction
- LinearPMap.instMulAction
- Localization.instMulActionLocalization
- Matrix.mulAction
- MeasureTheory.Measure.instMulAction
- MeasureTheory.OuterMeasure.instMulAction
- Monoid.toMulAction
- Monoid.toOppositeMulAction
- MulAction.instMulActionElemOrbit
- MulAction.mulLeftCosetsCompSubtypeVal
- MulAction.quotient
- MulOpposite.mulAction
- Multiplicative.mulAction
- NNReal.instMulActionNNRealToMonoidToMonoidWithZeroInstNNRealSemiring
- OrderDual.instMulAction
- OrderDual.instMulAction'
- PUnit.mulAction
- Pi.mulAction
- Pi.mulAction'
- Prod.mulAction
- Seminorm.instMulAction
- SubMulAction.SMulMemClass.toMulAction
- SubMulAction.mulAction
- SubMulAction.mulAction'
- Subalgebra.instMulActionSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebraToMonoidToMonoidToMonoidWithZeroToSubmonoidToNonAssocSemiringToSubsemiring
- Subgroup.instMulAction
- Submodule.Quotient.mulAction
- Submodule.Quotient.mulAction'
- Submonoid.mulAction
- Subring.instMulActionSubtypeMemSubringInstMembershipInstSetLikeSubringToMonoidToMonoidToMonoidWithZeroToSemiringToSubmonoidToNonAssocSemiringToSubsemiring
- Subsemiring.mulAction
- ULift.mulAction
- ULift.mulAction'
- UniformSpace.Completion.instMulActionCompletion
- Units.instMulAction
- Units.mulAction'
- instMulActionRayToMonoidToDivInvMonoid
- instMulActionRayVectorToZeroToAddMonoidToMonoidToDivInvMonoid
- instMulActionUniformFun
- instMulActionUniformOnFun
- selfAdjoint.instMulActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupSelfAdjoint
(Pre)transitive action #
M
acts pretransitively on α
if for any x y
there is g
such that g • x = y
(or g +ᵥ x = y
for an additive action). A transitive action should furthermore have α
nonempty.
In this section we define typeclasses MulAction.IsPretransitive
and
AddAction.IsPretransitive
and provide MulAction.exists_smul_eq
/AddAction.exists_vadd_eq
,
MulAction.surjective_smul
/AddAction.surjective_vadd
as public interface to access this
property. We do not provide typeclasses *Action.IsTransitive
; users should assume
[MulAction.IsPretransitive M α] [Nonempty α]
instead.
M
acts pretransitively on α
if for any x y
there is g
such that g +ᵥ x = y
.
A transitive action should furthermore have α
nonempty.
There is
g
such thatg +ᵥ x = y
.
M
acts pretransitively on α
if for any x y
there is g
such that g • x = y
.
A transitive action should furthermore have α
nonempty.
There is
g
such thatg • x = y
.
The regular action of a group on itself is transitive.
Equations
- ⋯ = ⋯
The regular action of a group on itself is transitive.
Equations
- ⋯ = ⋯
Scalar tower and commuting actions #
A typeclass mixin saying that two additive actions on the same space commute.
+ᵥ
is left commutative
Instances
- AddOpposite.vaddCommClass
- AddSemigroup.opposite_vaddCommClass
- AddSemigroup.opposite_vaddCommClass'
- AddSubgroup.vaddCommClass_left
- AddSubgroup.vaddCommClass_right
- AddSubmonoid.vaddCommClass_left
- AddSubmonoid.vaddCommClass_right
- Additive.vaddCommClass
- DomAddAct.instVAddCommClassDomAddActDomAddActForAllInstVAddDomAddActForAllInstVAddDomAddActForAll
- DomAddAct.instVAddCommClassDomAddActForAllInstVAddDomAddActForAllInstVAdd
- DomAddAct.instVAddCommClassDomAddActForAllInstVAddInstVAddDomAddActForAll
- Filter.vaddCommClass
- Filter.vaddCommClass_filter
- Filter.vaddCommClass_filter'
- Filter.vaddCommClass_filter''
- Finset.vaddCommClass
- Finset.vaddCommClass_finset
- Finset.vaddCommClass_finset'
- Finset.vaddCommClass_finset''
- Function.vaddCommClass
- OrderDual.instVAddCommClass
- OrderDual.instVAddCommClass'
- OrderDual.instVAddCommClass''
- PUnit.instVAddCommClassPUnitVaddVadd
- Pi.vaddCommClass
- Pi.vaddCommClass'
- Pi.vaddCommClass''
- Prod.vaddCommClass
- Prod.vaddCommClassBoth
- Set.vaddCommClass
- Set.vaddCommClass_set
- Set.vaddCommClass_set'
- Set.vaddCommClass_set''
- Submodule.vaddCommClass
- UniformSpace.Completion.instVAddCommClassCompletionInstVAddCompletionInstVAddCompletion
- VAddCommClass.op_left
- VAddCommClass.op_right
- VAddCommClass.opposite_mid
- vaddCommClass_self
A typeclass mixin saying that two multiplicative actions on the same space commute.
•
is left commutative
Instances
- AddGroup.int_smulCommClass
- AddGroup.int_smulCommClass'
- AddMonoid.End.smulCommClass
- AddMonoid.nat_smulCommClass
- AddMonoid.nat_smulCommClass'
- AddMonoidAlgebra.smulCommClass
- AddMonoidAlgebra.smulCommClass_self
- AddMonoidAlgebra.smulCommClass_symm_self
- AddMonoidHom.smulCommClass
- AdjoinRoot.instSMulCommClassAdjoinRootInstSMulAdjoinRootInstSMulAdjoinRoot
- AlgEquiv.apply_smulCommClass
- AlgEquiv.apply_smulCommClass'
- Algebra.TensorProduct.sMulCommClass_right
- Algebra.to_smulCommClass
- BilinForm.instSMulCommClassBilinFormInstSMulBilinFormInstSMulBilinForm
- Complex.instSMulCommClassComplexInstSMulRealComplexInstSMulRealComplex
- ConjAct.smulCommClass
- ConjAct.smulCommClass'
- ConjAct.smulCommClass₀
- ConjAct.smulCommClass₀'
- ConjAct.unitsSMulCommClass
- ConjAct.unitsSMulCommClass'
- ContinuousLinearMap.applySMulCommClass
- ContinuousLinearMap.applySMulCommClass'
- ContinuousLinearMap.smulCommClass
- ContinuousMultilinearMap.instSMulCommClassContinuousMultilinearMapInstSMulContinuousMultilinearMapInstSMulContinuousMultilinearMap
- DFinsupp.smulCommClass
- DirectSum.instSMulCommClassDirectSumToSMulToZeroToAddMonoidInstAddCommMonoidDirectSumToSMulZeroClassToZeroToMonoidWithZeroToSMulWithZeroToMulActionWithZeroInstModuleDirectSumInstAddCommMonoidDirectSumToSMulToSMulZeroClassToZeroToMonoidWithZeroToSMulWithZeroToMulActionWithZeroInstModuleDirectSumInstAddCommMonoidDirectSum
- DomMulAct.instSMulCommClassDomMulActAddMonoidHomToAddZeroClassInstSMulDomMulActAddMonoidHomToAddZeroClassToSMulInstZeroAddMonoidHomSmulZeroClass
- DomMulAct.instSMulCommClassDomMulActDomMulActAddMonoidHomToAddZeroClassInstSMulDomMulActAddMonoidHomToAddZeroClassInstSMulDomMulActAddMonoidHomToAddZeroClass
- DomMulAct.instSMulCommClassDomMulActDomMulActForAllInstSMulDomMulActForAllInstSMulDomMulActForAll
- DomMulAct.instSMulCommClassDomMulActDomMulActMonoidHomToMulOneClassInstSMulDomMulActMonoidHomToMulOneClassInstSMulDomMulActMonoidHomToMulOneClass
- DomMulAct.instSMulCommClassDomMulActForAllInstSMulDomMulActForAllInstSMul
- DomMulAct.instSMulCommClassDomMulActForAllInstSMulInstSMulDomMulActForAll
- ENNReal.smulCommClass_left
- ENNReal.smulCommClass_right
- Filter.smulCommClass
- Filter.smulCommClass_filter
- Filter.smulCommClass_filter'
- Filter.smulCommClass_filter''
- Finset.smulCommClass
- Finset.smulCommClass_finset
- Finset.smulCommClass_finset'
- Finset.smulCommClass_finset''
- Finsupp.smulCommClass
- FixedPoints.instSMulCommClassSubtypeMemSubfieldToDivisionRingInstMembershipInstSetLikeSubfieldSubfieldToSMulToZeroToCommMonoidWithZeroToCommGroupWithZeroToSemifieldToSMulZeroClassToAddZeroClassToAddMonoidToAddMonoidWithOneToAddGroupWithOneToRingToDistribSMulToDistribMulActionToSemiringInstSMulSubtypeMemSubringInstMembershipInstSetLikeSubringToSMulToCommSemiringToSemiringToDivisionSemiringIdToSubring
- FixedPoints.smulCommClass'
- FreeAlgebra.instSMulCommClassFreeAlgebraInstSMulInstSMul
- Function.smulCommClass
- HahnSeries.instSMulCommClassHahnSeriesToZeroInstSMulHahnSeriesToZeroInstSMulHahnSeriesToZero
- Ideal.Quotient.smulCommClass
- Ideal.Quotient.smulCommClass'
- IsScalarTower.to_smulCommClass
- IsScalarTower.to_smulCommClass'
- LinearEquiv.apply_smulCommClass
- LinearEquiv.apply_smulCommClass'
- LinearMap.apply_smulCommClass
- LinearMap.apply_smulCommClass'
- LinearMap.instSMulCommClassDomMulActDomMulActLinearMapInstSMulDomMulActLinearMapInstSMulDomMulActLinearMap
- LinearMap.instSMulCommClassLinearMapInstSMulLinearMapInstSMulLinearMap
- LinearPMap.instSMulCommClass
- Localization.instSMulCommClassLocalizationInstSMulLocalizationInstSMulLocalization
- Localization.smulCommClass_right
- Matrix.Semiring.smulCommClass
- Matrix.smulCommClass
- MeasureTheory.Measure.instSMulCommClass
- MeasureTheory.OuterMeasure.instSMulCommClass
- Module.End.smulCommClass
- Module.End.smulCommClass'
- MonoidAlgebra.smulCommClass
- MonoidAlgebra.smulCommClass_self
- MonoidAlgebra.smulCommClass_symm_self
- MulOpposite.smulCommClass
- Multiplicative.smulCommClass
- MvPolynomial.smulCommClass
- MvPolynomial.smulCommClass_right
- NNReal.smulCommClass_left
- NNReal.smulCommClass_right
- NonUnitalNonAssocRing.int_smulCommClass
- NonUnitalNonAssocSemiring.nat_smulCommClass
- NonUnitalSubalgebra.instSMulCommClass
- NonUnitalSubalgebra.instSMulCommClass'
- NormedAddGroupHom.smulCommClass
- OrderDual.instSMulCommClass
- OrderDual.instSMulCommClass'
- OrderDual.instSMulCommClass''
- PUnit.instSMulCommClassPUnitSmulSmul
- Pi.smulCommClass
- Pi.smulCommClass'
- Pi.smulCommClass''
- Polynomial.smulCommClass
- Prod.smulCommClass
- Prod.smulCommClassBoth
- RingCon.smulCommClass
- RingCon.smulCommClass'
- SMulCommClass.complexToReal
- SMulCommClass.op_left
- SMulCommClass.op_right
- SMulCommClass.opposite_mid
- SMulCommClass.rat
- SMulCommClass.rat'
- Semigroup.opposite_smulCommClass
- Semigroup.opposite_smulCommClass'
- Set.smulCommClass
- Set.smulCommClass_set
- Set.smulCommClass_set'
- Set.smulCommClass_set''
- SetLike.instSMulCommClass
- Subalgebra.smulCommClass_left
- Subalgebra.smulCommClass_right
- Subgroup.center.smulCommClass_left
- Subgroup.center.smulCommClass_right
- Subgroup.smulCommClass_left
- Subgroup.smulCommClass_right
- Submodule.Quotient.smulCommClass
- Submodule.instSMulCommClassSubtypeMemSubmoduleToSemiringInstMembershipSetLikeTorsion'InstSMulSubtypeMemSubmoduleToSemiringInstMembershipSetLikeTorsion'SmulToSMulIdToSMulToZeroToAddMonoidToSMulZeroClassToZeroToCommMonoidWithZeroToSMulWithZeroToMonoidWithZeroToMulActionWithZeroLeftToMonoidToMulAction
- Submonoid.center.smulCommClass_left
- Submonoid.center.smulCommClass_right
- Submonoid.smulCommClass_left
- Submonoid.smulCommClass_right
- Subring.center.smulCommClass_left
- Subring.center.smulCommClass_right
- Subring.smulCommClass_left
- Subring.smulCommClass_right
- Subsemiring.center.smulCommClass_left
- Subsemiring.center.smulCommClass_right
- Subsemiring.smulCommClass_left
- Subsemiring.smulCommClass_right
- TensorProduct.smulCommClass_left
- UniformSpace.Completion.instSMulCommClassCompletionInstSMulCompletionInstSMulCompletion
- Units.smulCommClass'
- Units.smulCommClass_left
- Units.smulCommClass_right
- WithLp.instSMulCommClass
- instSMulCommClassUniformFunInstSMulUniformFunInstSMulUniformFun
- instSMulCommClassUniformOnFunInstSMulUniformOnFunInstSMulUniformOnFun
- smulCommClass_self
Commutativity of additive actions is a symmetric relation. This lemma can't be an instance because this would cause a loop in the instance search graph.
Commutativity of actions is a symmetric relation. This lemma can't be an instance because this would cause a loop in the instance search graph.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
An instance of VAddAssocClass M N α
states that the additive action of M
on α
is
determined by the additive actions of M
on N
and N
on α
.
Associativity of
+ᵥ
Instances
- AddOpposite.isScalarTower
- AddSemigroup.isScalarTower
- Filter.vaddAssocClass
- Filter.vaddAssocClass'
- Filter.vaddAssocClass''
- Finset.vaddAssocClass
- Finset.vaddAssocClass'
- Finset.vaddAssocClass''
- OrderDual.instVAddAssocClass
- OrderDual.instVAddAssocClass'
- OrderDual.instVAddAssocClass''
- PUnit.instIsScalarTowerPUnitVaddVadd
- Pi.vaddAssocClass
- Pi.vaddAssocClass'
- Pi.vaddAssocClass''
- Prod.vaddAssocClass
- Set.vaddAssocClass
- Set.vaddAssocClass'
- Set.vaddAssocClass''
- UniformSpace.Completion.instVAddAssocClass
- VAddAssocClass.left
- VAddAssocClass.op_left
- VAddAssocClass.op_right
- VAddAssocClass.opposite_mid
An instance of IsScalarTower M N α
states that the multiplicative
action of M
on α
is determined by the multiplicative actions of M
on N
and N
on α
.
Associativity of
•
Instances
- AddCommGroup.intIsScalarTower
- AddCommMonoid.nat_isScalarTower
- AddGroupSeminorm.isScalarTower
- AddMonoid.End.isScalarTower
- AddMonoidAlgebra.isScalarTower
- AddMonoidAlgebra.isScalarTower_self
- AddMonoidHom.isScalarTower
- AdjoinRoot.instIsScalarTowerAdjoinRootInstSMulAdjoinRootInstSMulAdjoinRoot
- AdjoinRoot.isScalarTower_right
- Algebra.TensorProduct.isScalarTower_right
- Algebra.TensorProduct.right_isScalarTower
- AlgebraicClosure.Step.scalar_tower
- AlgebraicClosure.instIsScalarTowerAlgebraicClosureToSMulToSemiringInstSMulAlgebraicClosureToDistribSMulToMonoidToMonoidWithZeroToAddMonoidToAddMonoidWithOneToAddGroupWithOneToRingToDivisionRingToDistribMulActionToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocCommSemiringToNonUnitalNonAssocCommRingToNonUnitalCommRingToCommRingToEuclideanDomainToModuleToSemiringToDivisionSemiringToSemifieldRightInstSMulAlgebraicClosureToDistribSMulToMonoidToMonoidWithZeroToSemiringToDistribMulActionToModuleRight
- BilinForm.instIsScalarTowerBilinFormInstSMulBilinFormInstSMulBilinForm
- CauSeq.instIsScalarTowerCauSeqInstSMulCauSeqToSMulInstMulCauSeq
- Complex.instIsScalarTowerComplexInstSMulRealComplexInstSMulRealComplex
- ContinuousLinearMap.isScalarTower
- ContinuousMultilinearMap.instIsScalarTowerContinuousMultilinearMapInstSMulContinuousMultilinearMapInstSMulContinuousMultilinearMap
- CyclotomicRing.instIsScalarTowerCyclotomicRingCyclotomicFieldToSMulToCommSemiringToSemiringToCommSemiringInstCommRingCyclotomicRingAlgebraBaseToSMulToSemiringToDivisionSemiringToSemifieldInstFieldCyclotomicFieldInstAlgebraCyclotomicRingCyclotomicFieldToCommSemiringInstCommRingCyclotomicRingToSemiringToDivisionSemiringToSemifieldInstFieldCyclotomicFieldAlgebra'
- DFinsupp.isScalarTower
- DirectSum.instIsScalarTowerDirectSumToSMulToZeroToAddMonoidInstAddCommMonoidDirectSumToSMulZeroClassToZeroToMonoidWithZeroToSMulWithZeroToMulActionWithZeroInstModuleDirectSumInstAddCommMonoidDirectSumToSMulToSMulZeroClassToZeroToMonoidWithZeroToSMulWithZeroToMulActionWithZeroInstModuleDirectSumInstAddCommMonoidDirectSum
- ENNReal.instIsScalarTowerNNRealToSMulToMonoidToMonoidWithZeroInstNNRealSemiringInstMulActionNNRealToMonoidToMonoidWithZeroInstNNRealSemiringToSMulInstMulActionNNRealToMonoidToMonoidWithZeroInstNNRealSemiring
- Filter.isScalarTower
- Filter.isScalarTower'
- Filter.isScalarTower''
- Finset.isScalarTower
- Finset.isScalarTower'
- Finset.isScalarTower''
- Finsupp.isScalarTower
- FractionRing.isScalarTower_liftAlgebra
- FreeAlgebra.instIsScalarTowerFreeAlgebraInstSMulInstSMul
- GroupSeminorm.instIsScalarTowerGroupSeminormInstSMulGroupSeminormInstSMulGroupSeminorm
- HahnSeries.instIsScalarTowerHahnSeriesToZeroInstSMulHahnSeriesToZeroInstSMulHahnSeriesToZero
- Ideal.Quotient.isScalarTower
- Ideal.Quotient.isScalarTower_right
- Ideal.Quotient.tower_quotient_map_quotient
- IntermediateField.fixedField.isScalarTower
- IntermediateField.instIsScalarTowerSubtypeMemIntermediateFieldInstMembershipInstSetLikeIntermediateFieldSubtypeMemIntermediateFieldToFieldToAlgebraToCommSemiringToSemifieldToCommSemiringToSemifieldToSemiringToDivisionSemiringToSemifieldToSubalgebraInstMembershipInstSetLikeIntermediateFieldToSMulToSemiringToSemiringToDivisionSemiringAlgebraInstSMulSubtypeMemIntermediateFieldInstMembershipInstSetLikeIntermediateFieldSubtypeMemIntermediateFieldToFieldToAlgebraToCommSemiringToSemifieldToCommSemiringToSemifieldToSemiringToDivisionSemiringToSemifieldToSubalgebraInstMembershipInstSetLikeIntermediateFieldToSMulToSemiringToSubalgebraAlgebra'IsScalarTower_mid
- IntermediateField.isScalarTower
- IntermediateField.isScalarTower_bot
- IntermediateField.isScalarTower_mid
- IntermediateField.isScalarTower_mid'
- IntermediateField.isScalarTower_over_bot
- IsScalarTower.complexToReal
- IsScalarTower.left
- IsScalarTower.of_algHom
- IsScalarTower.op_left
- IsScalarTower.op_right
- IsScalarTower.opposite_mid
- IsScalarTower.rat
- IsScalarTower.right
- IsScalarTower.subalgebra
- IsScalarTower.subalgebra'
- IsScalarTower.subsemiring
- LaurentPolynomial.instIsScalarTowerPolynomialLaurentPolynomialToSMulZeroToSMulZeroClassToSMulWithZeroToMulZeroClassToNonUnitalNonAssocSemiringToNonAssocSemiringSemiringToZeroToMonoidWithZeroSemiringIntInstAddMonoidIntToSMulWithZeroToMulActionWithZeroAddCommMonoidInstModulePolynomialLaurentPolynomialSemiringAddCommMonoidInt
- LinearMap.apply_isScalarTower
- LinearMap.instIsScalarTowerLinearMapInstSMulLinearMapInstSMulLinearMap
- LinearPMap.instIsScalarTower
- Localization.instIsScalarTowerLocalizationInstSMulLocalizationInstSMulLocalization
- Localization.isScalarTower_right
- LocalizedModule.instIsScalarTowerLocalizedModuleToSMulToSemiringInstSMulLocalizedModuleToSMulInstZeroLocalizedModuleToSMulZeroClassToZeroToCommMonoidWithZeroToSMulWithZeroToMonoidWithZeroToSemiringToMulActionWithZeroInstAddCommMonoidLocalizedModuleIsModule'
- Matrix.Semiring.isScalarTower
- Matrix.isScalarTower
- MeasureTheory.Measure.instIsScalarTower
- MeasureTheory.OuterMeasure.instIsScalarTower
- Module.AEval.instIsScalarTowerOrigPolynomial
- Module.End.isScalarTower
- Module.IsTorsionBySet.isScalarTower
- MonoidAlgebra.isScalarTower
- MonoidAlgebra.isScalarTower_self
- MulOpposite.isScalarTower
- MvPolynomial.isScalarTower
- MvPolynomial.isScalarTower_right
- MvPowerSeries.instIsScalarTowerMvPowerSeriesToSMulInstZeroMvPowerSeriesToZeroToAddMonoidToSMulZeroClassToZeroToMonoidWithZeroToSMulWithZeroToMulActionWithZeroInstAddCommMonoidMvPowerSeriesInstModuleMvPowerSeriesInstAddCommMonoidMvPowerSeriesToSMulToSMulZeroClassToZeroToMonoidWithZeroToSMulWithZeroToMulActionWithZeroInstModuleMvPowerSeriesInstAddCommMonoidMvPowerSeries
- NNReal.instIsScalarTowerNNRealToSMulToMonoidToMonoidWithZeroInstNNRealSemiringInstMulActionNNRealToMonoidToMonoidWithZeroInstNNRealSemiringToSMulInstMulActionNNRealToMonoidToMonoidWithZeroInstNNRealSemiring
- NonUnitalNonAssocRing.int_isScalarTower
- NonUnitalNonAssocSemiring.nat_isScalarTower
- NonUnitalSubalgebra.instIsScalarTower'
- NonUnitalSubalgebra.instIsScalarTowerSubtypeMemNonUnitalSubalgebraInstMembershipInstSetLikeNonUnitalSubalgebraToSMulZeroToAddZeroClassToAddMonoidToAddCommMonoidToAddSubmonoidToNonUnitalSubsemiringToSMulZeroClassToZeroToCommMonoidWithZeroToSMulWithZeroToMonoidWithZeroToSemiringToMulActionWithZeroToAddCommMonoidInstModuleToSMulToSMulZeroClassToSMulWithZeroToMulZeroClassToNonUnitalNonAssocSemiring
- NonarchAddGroupSeminorm.instIsScalarTowerNonarchAddGroupSeminormInstSMulNonarchAddGroupSeminormInstSMulNonarchAddGroupSeminorm
- NormedAddGroupHom.isScalarTower
- OrderDual.instIsScalarTower
- OrderDual.instIsScalarTower'
- OrderDual.instIsScalarTower''
- PUnit.instIsScalarTowerPUnitSmulSmul
- Pi.isScalarTower
- Pi.isScalarTower'
- Pi.isScalarTower''
- Polynomial.SplittingField.isScalarTower
- Polynomial.SplittingFieldAux.scalar_tower'
- Polynomial.isScalarTower
- Polynomial.isScalarTower_right
- PolynomialModule.instIsScalarTowerPolynomialModuleToSMulToSemiringToCommSemiringToSMulToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoidToDivisionAddCommMonoidInstAddCommGroupPolynomialModuleToSMulZeroClassToZeroToCommMonoidWithZeroToSMulWithZeroToMonoidWithZeroToMulActionWithZeroToAddCommMonoidInstModulePolynomialModuleToSemiringToAddCommMonoidInstAddCommGroupPolynomialModuleToSMulToSMulZeroClassToZeroToCommMonoidWithZeroToSMulWithZeroToMonoidWithZeroToSemiringToMulActionWithZeroInstModulePolynomialModuleToSemiringToAddCommMonoidInstAddCommGroupPolynomialModule
- PolynomialModule.isScalarTower'
- PowerSeries.instIsScalarTowerPowerSeriesToSMulInstZeroPowerSeriesToZeroToAddMonoidToSMulZeroClassToZeroToMonoidWithZeroToSMulWithZeroToMulActionWithZeroInstAddCommMonoidPowerSeriesInstModulePowerSeriesInstAddCommMonoidPowerSeriesToSMulToSMulZeroClassToZeroToMonoidWithZeroToSMulWithZeroToMulActionWithZeroInstModulePowerSeriesInstAddCommMonoidPowerSeries
- Prod.isScalarTower
- Prod.isScalarTowerBoth
- Rat.isScalarTower_right
- RatFunc.instIsScalarTowerPolynomialToSemiringToCommSemiringRatFuncToSMulZeroToSMulZeroClassToAddZeroClassToAddMonoidToAddMonoidWithOneToAddGroupWithOneRingToRingToDistribSMulInstSMulRatFuncInstSMulLocalizationToCommMonoidCommRingNonZeroDivisorsToMonoidWithZeroToSMulCommSemiringSemiringIdRightInstSMulRatFuncInstSMulLocalization
- RatFunc.instIsScalarTowerPolynomialToSemiringToDivisionSemiringToSemifieldRatFuncToCommRingLaurentSeriesToZeroToCommMonoidWithZeroToCommGroupWithZeroInstSMulRatFuncInstSMulLocalizationToSemiringToCommSemiringToCommMonoidCommRingNonZeroDivisorsToMonoidWithZeroToSMulCommSemiringToCommSemiringSemiringIdRightInstFieldIsDomainInstSemiringHahnSeriesToPartialOrderToOrderedAddCommMonoidToZeroToMonoidWithZeroIntToOrderedCancelAddCommMonoidToStrictOrderedSemiringToLinearOrderedSemiringToLinearOrderedCommSemiringLinearOrderedCommRingInstAlgebraRatFuncToCommRingLaurentSeriesToZeroToCommMonoidWithZeroToCommGroupWithZeroToSemifieldToCommSemiringInstFieldIsDomainInstSemiringHahnSeriesToPartialOrderToOrderedAddCommMonoidToZeroToMonoidWithZeroIntToOrderedCancelAddCommMonoidToStrictOrderedSemiringToLinearOrderedSemiringToLinearOrderedCommSemiringLinearOrderedCommRingToSemiringToDivisionSemiringPowerSeriesAlgebraAlgebraPolynomial
- Real.isScalarTower
- RestrictScalars.isScalarTower
- RingCon.isScalarTower_right
- Semigroup.isScalarTower
- Seminorm.instIsScalarTowerSeminormInstSMulInstSMul
- Set.isScalarTower
- Set.isScalarTower'
- Set.isScalarTower''
- SetLike.instIsScalarTower
- SubMulAction.isScalarTower
- SubMulAction.isScalarTower'
- Subalgebra.instIsScalarTowerSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebraToSMulZeroToZeroToMonoidWithZeroToZeroMemClassToAddZeroClassToAddMonoidToAddMonoidWithOneToAddCommMonoidWithOneToNonAssocSemiringToAddSubmonoidClassSubsemiringClassToSMulZeroClassToZeroToCommMonoidWithZeroToSMulWithZeroToMonoidWithZeroToSemiringToMulActionWithZeroToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToSubsemiringInstModuleSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebraToSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToNonAssocSemiringToSubsemiringToSMulToSMulZeroClassToZeroToMonoidWithZeroToSMulWithZeroToMulActionWithZeroModule'
- Subalgebra.isScalarTower_left
- Subalgebra.isScalarTower_mid
- Subgroup.instIsScalarTowerSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupSmulToMulOneClassToMonoidToDivInvMonoidToSMulToSubmonoidSmulToSMul
- Submodule.Quotient.isScalarTower
- Submodule.instIsScalarTowerQuotientIdealToSemiringToCommSemiringInstHasQuotientIdealToSemiringToCommSemiringSubtypeMemSubmoduleToAddCommMonoidInstMembershipSetLikeTorsionBySetCoeSetLikeToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleInstSMul'ToRingToAddCommGroupToSMulZeroToSMulZeroClassInstZeroQuotientSubmoduleToSemiringToAddCommMonoidHasQuotientToSMulWithZeroToMonoidWithZeroCommRingToMulActionWithZeroAddCommMonoidInstModuleQuotientIdealToSemiringToCommSemiringInstHasQuotientIdealToSemiringToCommSemiringSubtypeMemSubmoduleToAddCommMonoidInstMembershipSetLikeTorsionBySetCoeSetLikeToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleCommRingAddCommMonoidSmul
- Submodule.instIsScalarTowerQuotientSubmoduleToSemiringToCommSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonUnitalNonAssocCommSemiringToNonUnitalNonAssocCommRingToNonUnitalCommRingToModuleInstHasQuotientIdealToSemiringToCommSemiringSpanSingletonSetInstSingletonSetSubtypeMemSubmoduleToAddCommMonoidInstMembershipSetLikeTorsionByInstSMul'ToRingToAddCommGroupToSMulZeroToSMulZeroClassInstZeroQuotientSubmoduleToSemiringToAddCommMonoidHasQuotientToSMulWithZeroToMonoidWithZeroCommRingToMulActionWithZeroAddCommMonoidInstModuleQuotientTorsionBySmul
- Submodule.isScalarTower
- Submodule.isScalarTower'
- Submodule.restrictScalars.isScalarTower
- Submonoid.isScalarTower
- Subring.instIsScalarTowerSubtypeMemSubringInstMembershipInstSetLikeSubringInstSMulSubtypeMemSubringInstMembershipInstSetLikeSubringInstSMulSubtypeMemSubringInstMembershipInstSetLikeSubring
- Subsemiring.isScalarTower
- TensorProduct.isScalarTower
- TensorProduct.isScalarTower_left
- TensorProduct.isScalarTower_right
- ULift.isScalarTower
- ULift.isScalarTower'
- ULift.isScalarTower''
- UniformSpace.Completion.instIsScalarTower
- Units.instIsScalarTowerUnitsInstSMulUnitsInstSMulUnits
- Units.isScalarTower'
- Units.isScalarTower'_left
- WithLp.instIsScalarTower
- instIsScalarTowerCyclotomicFieldToSMulToCommSemiringToSemiringToDivisionSemiringToSemifieldToSMulToCommSemiringInstFieldCyclotomicFieldAlgebra'ToCommRingToEuclideanDomainIdToCommSemiringAlgebra'
- instIsScalarTowerUniformFunInstSMulUniformFunInstSMulUniformFun
- instIsScalarTowerUniformOnFunInstSMulUniformOnFunInstSMulUniformOnFun
- normalClosure.instIsScalarTowerSubtypeMemIntermediateFieldInstMembershipInstSetLikeIntermediateFieldNormalClosureToSMulToCommSemiringToSemifieldToSemiringToCommSemiringToSemifieldToSemiringToDivisionSemiringToSemifieldToSubalgebraAlgebraInstSMulSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebraToSMulToCommSemiringId
- normalClosure.instIsScalarTowerSubtypeMemIntermediateFieldInstMembershipInstSetLikeIntermediateFieldNormalClosureToSMulToCommSemiringToSemifieldToSemiringToDivisionSemiringToSemifieldToSMulToCommSemiringToSemiringToSemiringToDivisionSemiringToSemifieldToSubalgebraAlgebraToSMulAlgebra
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
A typeclass indicating that the right (aka AddOpposite
) and left actions by M
on α
are
equal, that is that M
acts centrally on α
. This can be thought of as a version of commutativity
for +ᵥ
.
- op_vadd_eq_vadd : ∀ (m : M) (a : α), AddOpposite.op m +ᵥ a = m +ᵥ a
The right and left actions of
M
onα
are equal.
A typeclass indicating that the right (aka MulOpposite
) and left actions by M
on α
are
equal, that is that M
acts centrally on α
. This can be thought of as a version of commutativity
for •
.
- op_smul_eq_smul : ∀ (m : M) (a : α), MulOpposite.op m • a = m • a
The right and left actions of
M
onα
are equal.
Instances
- AddMonoid.End.isCentralScalar
- AddMonoidAlgebra.isCentralScalar
- AddMonoidHom.isCentralScalar
- AddSubgroup.pointwise_isCentralScalar
- AffineMap.isCentralScalar
- AlternatingMap.isCentralScalar
- BilinForm.instIsCentralScalarBilinFormInstSMulBilinFormMulOppositeMonoidOp_leftToSMulToZeroToCommMonoidWithZeroToSMulZeroClassToAddZeroClassToAddMonoidToAddMonoidWithOneToAddCommMonoidWithOneToNonAssocSemiringToSemiringToDistribSMulToSMulId
- CommSemigroup.isCentralScalar
- Complex.instIsCentralScalarComplexInstSMulRealComplexMulOpposite
- ContinuousLinearMap.isCentralScalar
- ContinuousMultilinearMap.instIsCentralScalarContinuousMultilinearMapInstSMulContinuousMultilinearMapMulOppositeMonoidOpToSMulToZeroToAddMonoidToSMulZeroClassToAddZeroClassToDistribSMulOp_rightToSMulToSMulZeroClassToZeroToMonoidWithZeroToSMulWithZeroToMulActionWithZero
- DFinsupp.isCentralScalar
- DirectSum.instIsCentralScalarDirectSumToSMulToZeroToAddMonoidInstAddCommMonoidDirectSumToSMulZeroClassToZeroToMonoidWithZeroToSMulWithZeroToMulActionWithZeroInstModuleDirectSumInstAddCommMonoidDirectSumMulOppositeZeroInstMonoidWithZeroInstSemiring
- Filter.isCentralScalar
- Finset.isCentralScalar
- Finsupp.isCentralScalar
- LinearMap.instIsCentralScalarLinearMapInstSMulLinearMapMulOppositeMonoid
- Localization.instIsCentralScalarLocalizationInstSMulLocalizationMulOpposite
- Matrix.isCentralScalar
- MeasureTheory.Measure.instIsCentralScalar
- MeasureTheory.OuterMeasure.instIsCentralScalar
- MonoidAlgebra.isCentralScalar
- MulOpposite.isCentralScalar
- MvPolynomial.isCentralScalar
- NormedAddGroupHom.isCentralScalar
- PUnit.instIsCentralScalarPUnitSmulMulOpposite
- Pi.isCentralScalar
- Polynomial.isCentralScalar
- Prod.isCentralScalar
- RestrictScalars.isCentralScalar
- Set.isCentralScalar
- SubMulAction.isCentralScalar
- Subgroup.pointwise_isCentralScalar
- Submodule.Quotient.isCentralScalar
- Submodule.isCentralScalar
- Submodule.pointwiseCentralScalar
- TensorProduct.instIsCentralScalarTensorProductLeftHasSMulToMonoidToMonoidWithZeroToDistribMulActionMulOppositeMonoidInstSemiringOp_rightToSMulToZeroToAddMonoidToSMulZeroClassToZeroToCommMonoidWithZeroToSMulWithZeroToMonoidWithZeroToSemiringToMulActionWithZeroToSMulToSMulZeroClassToZeroToSMulWithZeroToMulActionWithZeroToSMulZeroClassToAddZeroClassToDistribSMul
- ULift.instIsCentralScalarULiftSmulMulOpposite
- UniformSpace.Completion.instIsCentralScalarCompletionInstSMulCompletionMulOpposite
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Auxiliary definition for VAdd.comp
, AddAction.compHom
, etc.
Equations
- VAdd.comp.vadd g n a = g n +ᵥ a
Auxiliary definition for SMul.comp
, MulAction.compHom
,
DistribMulAction.compHom
, Module.compHom
, etc.
Equations
- SMul.comp.smul g n a = g n • a
An action of M
on α
and a function N → M
induces an action of N
on α
.
See note [reducible non-instances]. Since this is reducible, we make sure to go via
SMul.comp.smul
to prevent typeclass inference unfolding too far.
Equations
- SMul.comp α g = { smul := SMul.comp.smul g }
Given a tower of additive actions M → α → β
, if we use SMul.comp
to pull back both of
M
's actions by a map g : N → M
, then we obtain a new tower of scalar actions N → α → β
.
This cannot be an instance because it can cause infinite loops whenever the SMul
arguments
are still metavariables.
Given a tower of scalar actions M → α → β
, if we use SMul.comp
to pull back both of M
's actions by a map g : N → M
, then we obtain a new
tower of scalar actions N → α → β
.
This cannot be an instance because it can cause infinite loops whenever the SMul
arguments
are still metavariables.
This cannot be an instance because it can cause infinite loops whenever the VAdd
arguments
are still metavariables.
This cannot be an instance because it can cause infinite loops whenever the SMul
arguments
are still metavariables.
This cannot be an instance because it can cause infinite loops whenever the VAdd
arguments
are still metavariables.
This cannot be an instance because it can cause infinite loops whenever the SMul
arguments
are still metavariables.
Note that the SMulCommClass α β β
typeclass argument is usually satisfied by Algebra α β
.
Note that the IsScalarTower α β β
typeclass argument is usually satisfied by Algebra α β
.
Note that the IsScalarTower α β β
typeclass argument is usually satisfied by Algebra α β
.
Pullback an additive action along an injective map respecting +ᵥ
.
Equations
- Function.Injective.addAction f hf smul = AddAction.mk ⋯ ⋯
Pullback a multiplicative action along an injective map respecting •
.
See note [reducible non-instances].
Equations
- Function.Injective.mulAction f hf smul = MulAction.mk ⋯ ⋯
Pushforward an additive action along a surjective map respecting +ᵥ
.
Equations
- Function.Surjective.addAction f hf smul = AddAction.mk ⋯ ⋯
Pushforward a multiplicative action along a surjective map respecting •
.
See note [reducible non-instances].
Equations
- Function.Surjective.mulAction f hf smul = MulAction.mk ⋯ ⋯
Push forward the action of R
on M
along a compatible surjective map f : R →+ S
.
Equations
- Function.Surjective.addActionLeft f hf hsmul = AddAction.mk ⋯ ⋯
Push forward the action of R
on M
along a compatible surjective map f : R →* S
.
See also Function.Surjective.distribMulActionLeft
and Function.Surjective.moduleLeft
.
Equations
- Function.Surjective.mulActionLeft f hf hsmul = MulAction.mk ⋯ ⋯
The regular action of a monoid on itself by left addition.
This is promoted to an AddTorsor
by addGroup_is_addTorsor
.
Equations
The regular action of a monoid on itself by left multiplication.
This is promoted to a module by Semiring.toModule
.
Equations
- Monoid.toMulAction M = MulAction.mk ⋯ ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Note that the IsScalarTower M α α
and SMulCommClass M α α
typeclass arguments are
usually satisfied by Algebra M α
.
Embedding of α
into functions M → α
induced by an additive action of M
on α
.
Equations
- AddAction.toFun M α = { toFun := fun (y : α) (x : M) => x +ᵥ y, inj' := ⋯ }
Embedding of α
into functions M → α
induced by a multiplicative action of M
on α
.
Equations
- MulAction.toFun M α = { toFun := fun (y : α) (x : M) => x • y, inj' := ⋯ }
An additive action of M
on α
and an additive monoid homomorphism N → M
induce
an additive action of N
on α
.
See note [reducible non-instances].
Equations
- AddAction.compHom α g = AddAction.mk ⋯ ⋯
A multiplicative action of M
on α
and a monoid homomorphism N → M
induce
a multiplicative action of N
on α
.
See note [reducible non-instances].
Equations
- MulAction.compHom α g = MulAction.mk ⋯ ⋯
If an action is transitive, then composing this action with a surjective homomorphism gives again a transitive action.
If the additive action of M
on N
is compatible with addition on N
, then
fun x => x +ᵥ 0
is an additive monoid homomorphism from M
to N
.
If the multiplicative action of M
on N
is compatible with multiplication on N
, then
fun x => x • 1
is a monoid homomorphism from M
to N
.
Equations
- addMonoidHomEquivAddActionIsScalarTower.match_1 M N motive x h_1 = Subtype.casesOn x fun (val : AddAction M N) (property : VAddAssocClass M N N) => h_1 val property
A monoid homomorphism between two additive monoids M and N can be equivalently specified by an additive action of M on N that is compatible with the addition on N.
Equations
- One or more equations did not get rendered due to their size.
Equations
- ⋯ = ⋯
A monoid homomorphism between two monoids M and N can be equivalently specified by a multiplicative action of M on N that is compatible with the multiplication on N.
Equations
- One or more equations did not get rendered due to their size.
Typeclass for scalar multiplication that preserves 0
on the right.
- smul : M → A → A
Multiplying
0
by a scalar gives0
Instances
- AddMonoidAlgebra.smulZeroClass
- AddMonoidHom.smulZeroClass
- DomMulAct.instSMulZeroClassDomMulActForAllInstZero
- Finsupp.smulZeroClass
- HahnModule.instSMulZeroClass
- MonoidAlgebra.smulZeroClass
- MvPolynomial.smulZeroClass
- Pi.smulZeroClass
- Pi.smulZeroClass'
- Polynomial.smulZeroClass
- Prod.smulZeroClass
- Submodule.Quotient.smulZeroClass
- Submodule.Quotient.smulZeroClass'
- ULift.smulZeroClass
- ULift.smulZeroClass'
- Units.instSMulZeroClass
Pullback a zero-preserving scalar multiplication along an injective zero-preserving map. See note [reducible non-instances].
Equations
- Function.Injective.smulZeroClass f hf smul = SMulZeroClass.mk ⋯
Pushforward a zero-preserving scalar multiplication along a zero-preserving map. See note [reducible non-instances].
Equations
- ZeroHom.smulZeroClass f smul = SMulZeroClass.mk ⋯
Push forward the multiplication of R
on M
along a compatible surjective map f : R → S
.
See also Function.Surjective.distribMulActionLeft
.
Equations
- Function.Surjective.smulZeroClassLeft f hf hsmul = SMulZeroClass.mk ⋯
Compose a SMulZeroClass
with a function, with scalar multiplication f r' • m
.
See note [reducible non-instances].
Equations
Each element of the scalars defines a zero-preserving map.
Equations
- SMulZeroClass.toZeroHom A x = { toFun := fun (x_1 : A) => x • x_1, map_zero' := ⋯ }
Typeclass for scalar multiplication that preserves 0
and +
on the right.
This is exactly DistribMulAction
without the MulAction
part.
- smul : M → A → A
Scalar multiplication distributes across addition
Instances
- AddMonoid.End.instDistribSMul
- AddMonoidAlgebra.distribSMul
- AddMonoidHom.instDistribSMul
- AdjoinRoot.instDistribSMulAdjoinRootToAddZeroClassToAddMonoidToAddMonoidWithOneToAddGroupWithOneToRingInstCommRing
- Complex.distribSMul
- DistribMulAction.toDistribSMul
- DomMulAct.instDistribSMulDomMulActForAllAddZeroClass
- Finsupp.distribSMul
- MonoidAlgebra.distribSMul
- NonUnitalNonAssocSemiring.toDistribSMul
- Pi.distribSMul
- Pi.distribSMul'
- Polynomial.distribSMul
- Prod.distribSMul
- Rat.distribSMul
- Submodule.Quotient.distribSMul
- Submodule.Quotient.distribSMul'
- ULift.distribSMul
- ULift.distribSMul'
- Units.instDistribSMulUnits
Equations
- AddMonoidHom.smulZeroClass = SMulZeroClass.mk ⋯
Pullback a distributive scalar multiplication along an injective additive monoid homomorphism. See note [reducible non-instances].
Equations
- Function.Injective.distribSMul f hf smul = let __src := Function.Injective.smulZeroClass (↑f) hf smul; DistribSMul.mk ⋯
Pushforward a distributive scalar multiplication along a surjective additive monoid homomorphism. See note [reducible non-instances].
Equations
- Function.Surjective.distribSMul f hf smul = let __src := ZeroHom.smulZeroClass (↑f) smul; DistribSMul.mk ⋯
Push forward the multiplication of R
on M
along a compatible surjective map f : R → S
.
See also Function.Surjective.distribMulActionLeft
.
Equations
- Function.Surjective.distribSMulLeft f hf hsmul = let __src := Function.Surjective.smulZeroClassLeft f hf hsmul; DistribSMul.mk ⋯
Compose a DistribSMul
with a function, with scalar multiplication f r' • m
.
See note [reducible non-instances].
Equations
- DistribSMul.compFun A f = let __src := SMulZeroClass.compFun A f; DistribSMul.mk ⋯
Each element of the scalars defines an additive monoid homomorphism.
Equations
- DistribSMul.toAddMonoidHom A x = let __src := SMulZeroClass.toZeroHom A x; { toZeroHom := { toFun := (fun (x : M) (x_1 : A) => x • x_1) x, map_zero' := ⋯ }, map_add' := ⋯ }
Typeclass for multiplicative actions on additive structures. This generalizes group modules.
- smul : M → A → A
Multiplying
0
by a scalar gives0
Scalar multiplication distributes across addition
Instances
- AddAut.applyDistribMulAction
- AddMonoid.End.applyDistribMulAction
- AddMonoid.End.instDistribMulAction
- AddMonoidAlgebra.distribMulAction
- AddMonoidHom.instDistribMulAction
- AdjoinRoot.instDistribMulActionAdjoinRootToAddMonoidToAddMonoidWithOneToAddGroupWithOneToRingInstCommRing
- AffineMap.distribMulAction
- AlternatingMap.distribMulAction
- BilinForm.instDistribMulActionBilinFormToAddMonoidInstAddCommMonoidBilinForm
- Complex.instDistribMulActionComplexToMonoidToMonoidWithZeroToAddMonoidToAddMonoidWithOneAddGroupWithOne
- ConjAct.distribMulAction₀
- ContinuousLinearMap.distribMulAction
- ContinuousMultilinearMap.instDistribMulActionContinuousMultilinearMapToAddMonoidAddCommMonoid
- DFinsupp.distribMulAction
- DFinsupp.distribMulAction₂
- DomMulAct.instDistribMulActionDomMulActAddMonoidHomToAddZeroClassToAddZeroClassToAddMonoidInstMonoidDomMulActMonoidToAddMonoidAddCommMonoid
- DomMulAct.instDistribMulActionDomMulActForAllInstMonoidDomMulActMonoidAddMonoid
- ENNReal.instDistribMulActionNNRealToMonoidToMonoidWithZeroInstNNRealSemiring
- Equiv.instDistribMulActionShrinkInstAddMonoidShrinkToAddMonoid
- Finsupp.distribMulAction
- HahnSeries.instDistribMulActionHahnSeriesToZeroInstAddMonoidHahnSeriesToZero
- LinearEquiv.applyDistribMulAction
- LinearMap.instDistribMulActionDomMulActLinearMapInstMonoidDomMulActMonoidToAddMonoidAddCommMonoid
- LinearMap.instDistribMulActionLinearMapToAddMonoidAddCommMonoid
- Localization.instDistribMulActionLocalizationToCommMonoidToAddMonoidToAddMonoidWithOneToAddCommMonoidWithOneToNonAssocSemiringToSemiringInstCommSemiringLocalizationToCommMonoid
- Matrix.distribMulAction
- MeasureTheory.Measure.instDistribMulAction
- MeasureTheory.OuterMeasure.instDistribMulAction
- MonoidAlgebra.distribMulAction
- MulOpposite.distribMulAction
- MultilinearMap.instDistribMulActionMultilinearMapToAddMonoidAddCommMonoid
- MvPolynomial.distribuMulAction
- NNReal.instDistribMulActionNNRealToMonoidToMonoidWithZeroInstNNRealSemiring
- NormedAddGroupHom.distribMulAction
- OrderDual.instDistribMulAction
- OrderDual.instDistribMulAction'
- PUnit.distribMulAction
- Pi.distribMulAction
- Pi.distribMulAction'
- Polynomial.distribMulAction
- Prod.distribMulAction
- RingCon.instDistribMulActionQuotientToAddToDistribToNonUnitalNonAssocSemiringToMulToAddMonoidToAddMonoidWithOneToAddCommMonoidWithOneInstNonAssocSemiringQuotientToAddToDistribToNonUnitalNonAssocSemiringToMul
- Seminorm.instDistribMulAction
- Subalgebra.instDistribMulActionSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebraToMonoidToMonoidToMonoidWithZeroToSubmonoidToNonAssocSemiringToSubsemiring
- Subgroup.instDistribMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid
- Submodule.Quotient.distribMulAction
- Submodule.Quotient.distribMulAction'
- Submodule.instDistribMulActionSubtypeMemSubmoduleToSemiringInstMembershipSetLikeTorsion'ToMonoidToAddMonoidToAddMonoidToAddSubmonoid
- Submonoid.distribMulAction
- Subring.instDistribMulActionSubtypeMemSubringInstMembershipInstSetLikeSubringToMonoidToMonoidToMonoidWithZeroToSemiringToSubmonoidToNonAssocSemiringToSubsemiring
- Subsemiring.distribMulAction
- TensorProduct.instDistribMulActionTensorProductToMonoidToMonoidWithZeroToSemiringAddMonoid
- TensorProduct.leftDistribMulAction
- ULift.distribMulAction
- ULift.distribMulAction'
- UniformSpace.Completion.instDistribMulActionCompletionInstAddMonoidCompletion
- Units.instDistribMulAction
- instDistribMulActionUniformFunInstAddMonoidUniformFun
- instDistribMulActionUniformOnFunInstAddMonoidUniformOnFun
- selfAdjoint.instDistribMulActionSubtypeMemAddSubgroupInstMembershipInstSetLikeAddSubgroupSelfAdjointToAddMonoidToAddMonoidToSubNegMonoidToAddSubmonoid
- skewAdjoint.instDistribMulActionSubtypeMemAddSubgroupToAddGroupInstMembershipInstSetLikeAddSubgroupSkewAdjointToAddMonoidToAddMonoidToSubNegMonoidToAddSubmonoid
Equations
- DistribMulAction.toDistribSMul = let __src := inst; DistribSMul.mk ⋯
Since Lean 3 does not have definitional eta for structures, we have to make sure
that the definition of DistribMulAction.toDistribSMul
was done correctly,
and the two paths from DistribMulAction
to SMul
are indeed definitionally equal.
Pullback a distributive multiplicative action along an injective additive monoid homomorphism. See note [reducible non-instances].
Equations
- Function.Injective.distribMulAction f hf smul = let __src := Function.Injective.distribSMul f hf smul; let __src_1 := Function.Injective.mulAction (⇑f) hf smul; DistribMulAction.mk ⋯ ⋯
Pushforward a distributive multiplicative action along a surjective additive monoid homomorphism. See note [reducible non-instances].
Equations
- Function.Surjective.distribMulAction f hf smul = let __src := Function.Surjective.distribSMul f hf smul; let __src_1 := Function.Surjective.mulAction (⇑f) hf smul; DistribMulAction.mk ⋯ ⋯
Push forward the action of R
on M
along a compatible surjective map f : R →* S
.
See also Function.Surjective.mulActionLeft
and Function.Surjective.moduleLeft
.
Equations
- One or more equations did not get rendered due to their size.
Compose a DistribMulAction
with a MonoidHom
, with action f r' • m
.
See note [reducible non-instances].
Equations
- DistribMulAction.compHom A f = let __src := DistribSMul.compFun A ⇑f; let __src_1 := MulAction.compHom A f; DistribMulAction.mk ⋯ ⋯
Each element of the monoid defines an additive monoid homomorphism.
Equations
Each element of the monoid defines an additive monoid homomorphism.
Equations
- DistribMulAction.toAddMonoidEnd M A = { toOneHom := { toFun := DistribMulAction.toAddMonoidHom A, map_one' := ⋯ }, map_mul' := ⋯ }
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Typeclass for multiplicative actions on multiplicative structures. This generalizes conjugation actions.
- smul : M → A → A
Distributivity of
•
across*
Multiplying
1
by a scalar gives1
Instances
- AlgEquiv.instMulDistribMulActionAlgEquivUnitsToMonoidToMonoidWithZeroToMonoidToDivInvMonoidAutInstMonoid
- Algebra.instMulDistribMulActionAlgHomUnitsToMonoidToMonoidWithZeroEndInstMonoid
- Con.mulDistribMulAction
- ConjAct.Subgroup.conjMulDistribMulAction
- ConjAct.instMulDistribMulActionConjActToMonoidInstDivInvMonoidConjActToDivInvMonoid
- ConjAct.unitsMulDistribMulAction
- Localization.instMulDistribMulActionLocalizationToMonoidCommMonoid
- MulAut.applyMulDistribMulAction
- MulOpposite.mulDistribMulAction
- MulSemiringAction.toMulDistribMulAction
- PUnit.mulDistribMulAction
- Pi.mulDistribMulAction
- Pi.mulDistribMulAction'
- Prod.mulDistribMulAction
- Subgroup.instMulDistribMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid
- Submonoid.mulDistribMulAction
- Subring.instMulDistribMulActionSubtypeMemSubringInstMembershipInstSetLikeSubringToMonoidToMonoidToMonoidWithZeroToSemiringToSubmonoidToNonAssocSemiringToSubsemiring
- Subsemiring.mulDistribMulAction
- ULift.mulDistribMulAction
- ULift.mulDistribMulAction'
- Units.instMulDistribMulAction
- Units.mulDistribMulAction'
Pullback a multiplicative distributive multiplicative action along an injective monoid homomorphism. See note [reducible non-instances].
Equations
- Function.Injective.mulDistribMulAction f hf smul = let __src := Function.Injective.mulAction (⇑f) hf smul; MulDistribMulAction.mk ⋯ ⋯
Pushforward a multiplicative distributive multiplicative action along a surjective monoid homomorphism. See note [reducible non-instances].
Equations
- Function.Surjective.mulDistribMulAction f hf smul = let __src := Function.Surjective.mulAction (⇑f) hf smul; MulDistribMulAction.mk ⋯ ⋯
Compose a MulDistribMulAction
with a MonoidHom
, with action f r' • m
.
See note [reducible non-instances].
Equations
- MulDistribMulAction.compHom A f = let __src := MulAction.compHom A f; MulDistribMulAction.mk ⋯ ⋯
Scalar multiplication by r
as a MonoidHom
.
Equations
- MulDistribMulAction.toMonoidHom A r = { toOneHom := { toFun := fun (x : A) => r • x, map_one' := ⋯ }, map_mul' := ⋯ }
Each element of the monoid defines a monoid homomorphism.
Equations
- MulDistribMulAction.toMonoidEnd M A = { toOneHom := { toFun := MulDistribMulAction.toMonoidHom A, map_one' := ⋯ }, map_mul' := ⋯ }
The monoid of endomorphisms.
Note that this is generalized by CategoryTheory.End
to categories other than Type u
.
Equations
- Function.End α = (α → α)
Equations
- instMonoidEnd α = Monoid.mk ⋯ ⋯ npowRec ⋯ ⋯
Equations
- instInhabitedEnd α = { default := 1 }
The tautological action by Function.End α
on α
.
This is generalized to bundled endomorphisms by:
Equiv.Perm.applyMulAction
AddMonoid.End.applyDistribMulAction
AddMonoid.End.applyModule
AddAut.applyDistribMulAction
MulAut.applyMulDistribMulAction
LinearEquiv.applyDistribMulAction
LinearMap.applyModule
RingHom.applyMulSemiringAction
RingAut.applyMulSemiringAction
AlgEquiv.applyMulSemiringAction
Equations
- Function.End.applyMulAction = MulAction.mk ⋯ ⋯
Function.End.applyMulAction
is faithful.
Equations
- ⋯ = ⋯
The tautological action by AddMonoid.End α
on α
.
This generalizes Function.End.applyMulAction
.
Equations
- AddMonoid.End.applyDistribMulAction = DistribMulAction.mk ⋯ ⋯
AddMonoid.End.applyDistribMulAction
is faithful.
Equations
- ⋯ = ⋯
The monoid hom representing a monoid action.
When M
is a group, see MulAction.toPermHom
.
The monoid action induced by a monoid hom to Function.End α
See note [reducible non-instances].
Equations
Equations
- Multiplicative.smul = { smul := fun (a : Multiplicative α) (x : β) => Multiplicative.toAdd a +ᵥ x }
Equations
- Additive.addAction = AddAction.mk ⋯ ⋯
Equations
- Multiplicative.mulAction = MulAction.mk ⋯ ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The additive monoid hom representing an additive monoid action.
When M
is a group, see AddAction.toPermHom
.
Equations
- AddAction.toEndHom = MonoidHom.toAdditive'' MulAction.toEndHom
The additive action induced by a hom to Additive (Function.End α)
See note [reducible non-instances].