Group instances for FunLike types #
In this file we define various instances related to groups for FunLike types.
For example given a FunLike F α β with IsMulApply F α β and Semigroup β, then F is naturally
a semigroup. Note that currently, these are not registered as instances, but only abbrevs to
avoid long typeclass searches.
Moreover, we define the homomorphism FunLike.coeMulHom : F →* α → β that acts by coercion. This
definition is mainly needed to define a module instance on F.
Coercion as a multiplicative homomorphism.
Instances For
Coercion as an additive homomorphism.
Instances For
Coercion as a monoid homomorphism.
Instances For
Coercion as an additive monoid homomorphism.
Instances For
A FunLike type that satisfies (f + g) x = f x + g x is an additive semigroup
if β is an additive semigroup.
Instances For
A FunLike type that satisfies (f * g) x = f x * g x is a commutative semigroup if β is a
commutative semigroup.
Instances For
A FunLike type that satisfies (f + g) x = f x + g x is a commatative additive
semigroup if β is a commatative additive semigroup.
Instances For
A FunLike type that satisfies (f * g) x = f x * g x has left cancellative multiplication if
β has left cancellative multiplication.
A FunLike type that satisfies (f + g) x = f x + g x has left cancellative
addition if β has left cancellative addition.
A FunLike type that satisfies (f * g) x = f x * g x has right cancellative multiplication if
β has right cancellative multiplication.
A FunLike type that satisfies (f + g) x = f x + g x has right cancellative
addition if β has right cancellative addition.
A FunLike type that satisfies (f * g) x = f x * g x has right multiplication if
β has right multiplication.
A FunLike type that satisfies (f + g) x = f x + g x has right
addition if β has cancellative addition.
A FunLike type that satisfies (f * g) x = f x * g x is a left cancel semigroup if β is a
left cancel semigroup.
Instances For
A FunLike type that satisfies (f + g) x = f x + g x is a left cancel additive
semigroup if β is a left cancel additive semigroup.
Instances For
A FunLike type that satisfies (f * g) x = f x * g x is a right cancel semigroup if β is a
right cancel semigroup.
Instances For
A FunLike type that satisfies (f + g) x = f x + g x is a right cancel additive
semigroup if β is a right cancel additive semigroup.
Instances For
A FunLike type with 1 and * is MulOneClass if β is a MulOneClass.
Instances For
A FunLike type with 0 and + is AddZeroClass if β is a
AddZeroClass.
Instances For
A FunLike type that satisfies (f * g) x = f x * g x, 1 x = 1, and (f ^ n) x = f x ^ n
is a monoid if β is a monoid.
Instances For
A FunLike type that satisfies (f + g) x = f x + g x, 0 x = 0, and
(n • f) x = n • f x is an additive monoid if β is an additive monoid.
Instances For
A FunLike type that satisfies (f * g) x = f x * g x, 1 x = 1, and (f ^ n) x = f x ^ n
is a left cancel monoid if β is a left cancel monoid.
Instances For
A FunLike type that satisfies (f + g) x = f x + g x, 0 x = 0, and
(n • f) x = n • f x is a left cancel additive monoid if β is a left cancel additive monoid.
Instances For
A FunLike type that satisfies (f * g) x = f x * g x, 1 x = 1, and (f ^ n) x = f x ^ n
is a right cancel monoid if β is a right cancel monoid.
Instances For
A FunLike type that satisfies (f + g) x = f x + g x, 0 x = 0, and
(n • f) x = n • f x is a right cancel additive monoid if β is a right cancel
additive monoid.
Instances For
A FunLike type that satisfies (f * g) x = f x * g x, 1 x = 1, and (f ^ n) x = f x ^ n
is a cancel monoid if β is a cancel monoid.
Instances For
A FunLike type that satisfies (f + g) x = f x + g x, 0 x = 0, and
(n • f) x = n • f x is a cancel additive monoid if β is a cancel additive monoid.
Instances For
A FunLike type that satisfies (f * g) x = f x * g x, 1 x = 1, and (f ^ n) x = f x ^ n
is a commutative monoid if β is a commutative monoid.
Instances For
A FunLike type that satisfies (f + g) x = f x + g x, 0 x = 0, and
(n • f) x = n • f x is a commutative additive monoid if β is a commutative additive monoid.
Instances For
A FunLike type that satisfies (f * g) x = f x * g x, 1 x = 1, and (f ^ n) x = f x ^ n
is a cancel commutative monoid if β is a cancel commutative monoid.
Instances For
A FunLike type that satisfies (f + g) x = f x + g x, 0 x = 0, and
(n • f) x = n • f x is a cancel commutative additive monoid if β is a cancel commutative
additive monoid.
Instances For
A FunLike type with inverse that satisfies (f⁻¹) x = (f x)⁻¹ is an involutive inversion
if β is an involutive inversion.
Instances For
A FunLike type with negation that satisfies (- f) x = - (f x) is an involutive
negation if β is an involutive negation.
Instances For
A FunLike type with 1 and inverse is an InvOneClass if β is an InvOneClass.
Instances For
A FunLike type with 0 and negation is a NegZeroClass if β is a
NegZeroClass.
Instances For
A FunLike type is a DivInvMonoid if β is a DivInvMonoid.
Instances For
A FunLike type is a SubNegMonoid if β is a SubNegMonoid.
Instances For
A FunLike type is a DivInvOneMonoid if β is a DivInvOneMonoid.
Instances For
A FunLike type is a SubNegOneMonoid if β is a SubNegOneMonoid.
Instances For
A FunLike type is a division monoid if β is a division monoid.
Instances For
A FunLike type is a subtraction monoid if β is a subtraction monoid.
Instances For
A FunLike type is a division commutative monoid if β is a division commutative monoid.
Instances For
A FunLike type is a subtraction commutative monoid if β
is a subtraction commutative monoid.
Instances For
A FunLike type is a group if β is a group.
Instances For
A FunLike type is an additive group if β is an additive group.
Instances For
A FunLike type is a commutative group if β is a commutative group.
Instances For
A FunLike type is an additive commutative group if β is an additive
commutative group.