Commutative structures from unbundled commutativity #
This file provides scoped instances that promote algebraic structures satisfying
IsMulCommutative or IsAddCommutative to their bundled commutative counterparts.
A magma which IsMulCommutative is a CommMagma.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Equations
- IsMulCommutative.instCommMagma = { toMul := inst✝¹, mul_comm := ⋯ }
Instances For
An additive magma which IsMulCommutative is a AddCommMagma.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Equations
- IsAddCommutative.instAddCommMagma = { toAdd := inst✝¹, add_comm := ⋯ }
Instances For
A Semigroup which IsMulCommutative is a CommSemigroup.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Equations
- IsMulCommutative.instCommSemigroup = { toSemigroup := inst✝¹, mul_comm := ⋯ }
Instances For
An AddSemigroup which IsMulCommutative is a AddCommSemigroup.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Equations
- IsAddCommutative.instAddCommSemigroup = { toAddSemigroup := inst✝¹, add_comm := ⋯ }
Instances For
A Monoid which IsMulCommutative is a CommMonoid.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Equations
- IsMulCommutative.instCommMonoid = { toMonoid := inst✝¹, mul_comm := ⋯ }
Instances For
A AddMonoid which IsMulCommutative is a AddCommMonoid.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Equations
- IsAddCommutative.instAddCommMonoid = { toAddMonoid := inst✝¹, add_comm := ⋯ }
Instances For
A DivisionMonoid which IsMulCommutative is a DivisionCommMonoid.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Equations
- IsMulCommutative.instDivisionCommMonoid = { toDivisionMonoid := inst✝¹, mul_comm := ⋯ }
Instances For
A SubtractionMonoid which IsMulCommutative is a SubtractionCommMonoid.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Equations
- IsAddCommutative.instDivisionAddCommMonoid = { toSubtractionMonoid := inst✝¹, add_comm := ⋯ }
Instances For
A Group which IsMulCommutative is a CommGroup.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Equations
- IsMulCommutative.instCommGroup = { toGroup := inst✝¹, mul_comm := ⋯ }
Instances For
An AddGroup which IsMulCommutative is a AddCommGroup.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Equations
- IsAddCommutative.instAddCommGroup = { toAddGroup := inst✝¹, add_comm := ⋯ }