group-theory-0.2.2: The theory of groups
Copyright(c) 2020-2021 Emily Pillmore
LicenseBSD-style
MaintainerEmily Pillmore <emilypi@cohomolo.gy>, Reed Mullanix <reedmullanix@gmail.com>
Stabilitystable
Portabilitynon-portable
Safe HaskellSafe
LanguageHaskell2010

Data.Group.Multiplicative

Description

This module contains definitions for MultiplicativeGroup and MultiplicativeAbelianGroup, along with the relevant combinators.

Synopsis

Multiplicative Groups

class Group g => MultiplicativeGroup g Source #

An multiplicative group is a Group whose operation can be thought of as multiplication in some sense.

For example, the multiplicative group of rationals \( (ℚ, 1, *) \).

Instances

Instances details
MultiplicativeGroup () Source # 
Instance details

Defined in Data.Group.Multiplicative

MultiplicativeGroup a => MultiplicativeGroup (Identity a) Source # 
Instance details

Defined in Data.Group.Multiplicative

MultiplicativeGroup a => MultiplicativeGroup (Dual a) Source # 
Instance details

Defined in Data.Group.Multiplicative

Fractional a => MultiplicativeGroup (Product a) Source # 
Instance details

Defined in Data.Group.Multiplicative

MultiplicativeGroup b => MultiplicativeGroup (a -> b) Source # 
Instance details

Defined in Data.Group.Multiplicative

(MultiplicativeGroup a, MultiplicativeGroup b) => MultiplicativeGroup (a, b) Source # 
Instance details

Defined in Data.Group.Multiplicative

MultiplicativeGroup a => MultiplicativeGroup (Proxy a) Source # 
Instance details

Defined in Data.Group.Multiplicative

(MultiplicativeGroup a, MultiplicativeGroup b, MultiplicativeGroup c) => MultiplicativeGroup (a, b, c) Source # 
Instance details

Defined in Data.Group.Multiplicative

MultiplicativeGroup a => MultiplicativeGroup (Const a b) Source # 
Instance details

Defined in Data.Group.Multiplicative

(MultiplicativeGroup a, MultiplicativeGroup b, MultiplicativeGroup c, MultiplicativeGroup d) => MultiplicativeGroup (a, b, c, d) Source # 
Instance details

Defined in Data.Group.Multiplicative

(MultiplicativeGroup a, MultiplicativeGroup b, MultiplicativeGroup c, MultiplicativeGroup d, MultiplicativeGroup e) => MultiplicativeGroup (a, b, c, d, e) Source # 
Instance details

Defined in Data.Group.Multiplicative

combinators

(/) :: MultiplicativeGroup a => a -> a -> a infixl 7 Source #

Infix alias for multiplicative inverse.

Examples:

>>> let x = Product (4 :: Rational)
>>> x / 2
Product {getProduct = 2 % 1}

(*) :: MultiplicativeGroup g => g -> g -> g infixl 7 Source #

Infix alias for multiplicative (<>).

Examples:

>>> Product (2 :: Rational) * Product (3 :: Rational)
Product {getProduct = 6 % 1}

(^) :: (Integral n, MultiplicativeGroup a) => a -> n -> a infixr 8 Source #

Infix alias for power.

Examples:

>>> let x = Product (3 :: Rational)
>>> x ^ 3
Product {getProduct = 27 % 1}

power :: (Integral n, MultiplicativeGroup g) => g -> n -> g Source #

Multiply an element of a multiplicative group by itself n-many times.

This represents -indexed powers of an element g of a multiplicative group, i.e. iterated products of group elements. This is representable by the universal property \( C(x, ∏_n g) ≅ C(x, g)^n \).

Examples:

>>> power (Product (3 :: Rational)) 3
Product {getProduct = 27 % 1}

Multiplicative abelian groups

class (MultiplicativeGroup g, Abelian g) => MultiplicativeAbelianGroup g Source #

A multiplicative abelian group is a Group whose operation can be thought of as commutative multiplication in some sense. Almost all multiplicative groups are abelian.

Instances

Instances details
MultiplicativeAbelianGroup () Source # 
Instance details

Defined in Data.Group.Multiplicative

MultiplicativeAbelianGroup a => MultiplicativeAbelianGroup (Identity a) Source # 
Instance details

Defined in Data.Group.Multiplicative

MultiplicativeAbelianGroup a => MultiplicativeAbelianGroup (Dual a) Source # 
Instance details

Defined in Data.Group.Multiplicative

Fractional a => MultiplicativeAbelianGroup (Product a) Source # 
Instance details

Defined in Data.Group.Multiplicative

MultiplicativeAbelianGroup b => MultiplicativeAbelianGroup (a -> b) Source # 
Instance details

Defined in Data.Group.Multiplicative

(MultiplicativeAbelianGroup a, MultiplicativeAbelianGroup b) => MultiplicativeAbelianGroup (a, b) Source # 
Instance details

Defined in Data.Group.Multiplicative

MultiplicativeAbelianGroup a => MultiplicativeAbelianGroup (Proxy a) Source # 
Instance details

Defined in Data.Group.Multiplicative

(MultiplicativeAbelianGroup a, MultiplicativeAbelianGroup b, MultiplicativeAbelianGroup c) => MultiplicativeAbelianGroup (a, b, c) Source # 
Instance details

Defined in Data.Group.Multiplicative

MultiplicativeAbelianGroup a => MultiplicativeAbelianGroup (Const a b) Source # 
Instance details

Defined in Data.Group.Multiplicative

(MultiplicativeAbelianGroup a, MultiplicativeAbelianGroup b, MultiplicativeAbelianGroup c, MultiplicativeAbelianGroup d) => MultiplicativeAbelianGroup (a, b, c, d) Source # 
Instance details

Defined in Data.Group.Multiplicative

(MultiplicativeAbelianGroup a, MultiplicativeAbelianGroup b, MultiplicativeAbelianGroup c, MultiplicativeAbelianGroup d, MultiplicativeAbelianGroup e) => MultiplicativeAbelianGroup (a, b, c, d, e) Source # 
Instance details

Defined in Data.Group.Multiplicative