Idris2Doc : Algebra.Group

Algebra.Group

(source)

Definitions

0Op1 : Type->Type
  A unary operation on a type, for instance `negate`.

Totality: total
Visibility: public export
0Op2 : Type->Type
  A binary operation on a type, for instance `(+)`.

Totality: total
Visibility: public export
0Assoc : Op2a->Type
  Proposition that the given binary operation is associative.

Totality: total
Visibility: public export
0Associative : Op2a->Type
  Proposition that the given binary operation is associative.

Totality: total
Visibility: public export
0Commutative : Op2a->Type
  Proposition that the given binary operation is commutative.

Totality: total
Visibility: public export
0LeftNeutral : a->Op2a->Type
  Proposition that `z` is a left neutral element for the
given binary operation.

Totality: total
Visibility: public export
0RightNeutral : a->Op2a->Type
  Proposition that `z` is a right neutral element for the
given binary operation.

Totality: total
Visibility: public export
0LeftInverse : a->Op1a->Op2a->Type
  Proposition that `i` is the left inverse of the given binary operation.

Totality: total
Visibility: public export
0RightInverse : a->Op1a->Op2a->Type
  Proposition that `i` is the right inverse of the given binary operation.

Totality: total
Visibility: public export
rightNeutral : LeftNeutralzp->Commutativep->RightNeutralzp
  For a commutative operation, the left neutral element is also a
right neutral element

Totality: total
Visibility: export
leftNeutral : RightNeutralzp->Commutativep->LeftNeutralzp
  For a commutative operation, the right neutral element is also a
left neutral element

Totality: total
Visibility: export
rightInverse : LeftInversezip->Commutativep->RightInversezip
  For a commutative operation, the left inverse is also a right inverse.

Totality: total
Visibility: export
leftInverse : RightInversezip->Commutativep->LeftInversezip
  For a commutative operation, the right inverse is also a left inverse.

Totality: total
Visibility: export
recordSemigroup : (a : Type) ->Op2a->Type
  A `Semigroup` is a set with a binary associative operation.

Totality: total
Visibility: public export
Constructor: 
MkSemigroup : Associativep->Semigroupap

Projection: 
.associative : Semigroupap->Associativep
.associative : Semigroupap->Associativep
Totality: total
Visibility: public export
associative : Semigroupap->Associativep
Totality: total
Visibility: public export
recordCommutativeSemigroup : (a : Type) ->Op2a->Type
  Like a semigroup but the binary operation is also commutative.

Totality: total
Visibility: public export
Constructor: 
MkCommutativeSemigroup : Associativep->Commutativep->CommutativeSemigroupap

Projections:
.associative : CommutativeSemigroupap->Associativep
.commutative : CommutativeSemigroupap->Commutativep
.sgrp : CommutativeSemigroupap->Semigroupap
  A commutative semigroup is also a semigroup.
.associative : CommutativeSemigroupap->Associativep
Totality: total
Visibility: public export
associative : CommutativeSemigroupap->Associativep
Totality: total
Visibility: public export
.commutative : CommutativeSemigroupap->Commutativep
Totality: total
Visibility: public export
commutative : CommutativeSemigroupap->Commutativep
Totality: total
Visibility: public export
.sgrp : CommutativeSemigroupap->Semigroupap
  A commutative semigroup is also a semigroup.

Totality: total
Visibility: export
recordMonoid : (a : Type) ->a->Op2a->Type
  A `Monoid` is a set with a binary associative operation and a
neutral element `z` for that operation.

Totality: total
Visibility: public export
Constructor: 
MkMonoid : Associativep->RightNeutralzp->LeftNeutralzp->Monoidazp

Projections:
.associative : Monoidazp->Associativep
.leftNeutral : Monoidazp->LeftNeutralzp
.rightNeutral : Monoidazp->RightNeutralzp
.sgrp : Monoidazp->Semigroupap
  A monoid is also a semigroup
.associative : Monoidazp->Associativep
Totality: total
Visibility: public export
associative : Monoidazp->Associativep
Totality: total
Visibility: public export
.rightNeutral : Monoidazp->RightNeutralzp
Totality: total
Visibility: public export
rightNeutral : Monoidazp->RightNeutralzp
Totality: total
Visibility: public export
.leftNeutral : Monoidazp->LeftNeutralzp
Totality: total
Visibility: public export
leftNeutral : Monoidazp->LeftNeutralzp
Totality: total
Visibility: public export
.sgrp : Monoidazp->Semigroupap
  A monoid is also a semigroup

Totality: total
Visibility: export
recordCommutativeMonoid : (a : Type) ->a->Op2a->Type
  Like `Monoid` but with a binary operation that is also commutative.

Totality: total
Visibility: public export
Constructor: 
MkCommutativeMonoid : Associativep->Commutativep->LeftNeutralzp->CommutativeMonoidazp

Projections:
.associative : CommutativeMonoidazp->Associativep
.commutative : CommutativeMonoidazp->Commutativep
.csgrp : CommutativeMonoidazp->CommutativeSemigroupap
  A commutative monoid is also a semigroup
.leftNeutral : CommutativeMonoidazp->LeftNeutralzp
.mon : CommutativeMonoidazp->Monoidazp
  A commutative monoid is also a monoid
.rightNeutral : CommutativeMonoidazp->RightNeutralzp
  For a commutative monoid, `z` is a right neutral element.
.sgrp : CommutativeMonoidazp->Semigroupap
  A commutative monoid is also a semigroup
.associative : CommutativeMonoidazp->Associativep
Totality: total
Visibility: public export
associative : CommutativeMonoidazp->Associativep
Totality: total
Visibility: public export
.commutative : CommutativeMonoidazp->Commutativep
Totality: total
Visibility: public export
commutative : CommutativeMonoidazp->Commutativep
Totality: total
Visibility: public export
.leftNeutral : CommutativeMonoidazp->LeftNeutralzp
Totality: total
Visibility: public export
leftNeutral : CommutativeMonoidazp->LeftNeutralzp
Totality: total
Visibility: public export
mkCommutativeMonoid : ((u : a) -> (v : a) -> (w : a) ->u `p` (v `p` w) = (u `p` v) `p` w) -> ((u : a) -> (v : a) ->u `p` v=v `p` u) -> ((u : a) ->z `p` u=u) ->CommutativeMonoidazp
Totality: total
Visibility: public export
.sgrp : CommutativeMonoidazp->Semigroupap
  A commutative monoid is also a semigroup

Totality: total
Visibility: export
.csgrp : CommutativeMonoidazp->CommutativeSemigroupap
  A commutative monoid is also a semigroup

Totality: total
Visibility: export
.rightNeutral : CommutativeMonoidazp->RightNeutralzp
  For a commutative monoid, `z` is a right neutral element.

Totality: total
Visibility: export
.mon : CommutativeMonoidazp->Monoidazp
  A commutative monoid is also a monoid

Totality: total
Visibility: export
recordGroup : (a : Type) ->a->Op1a->Op2a->Type
  A `Group` is a monoid with an inverse operation.

Totality: total
Visibility: public export
Constructor: 
MkGroup : Associativep->LeftNeutralzp->RightNeutralzp->LeftInversezip->RightInversezip->Groupazip

Projections:
.associative : Groupazip->Associativep
.leftInverse : Groupazip->LeftInversezip
.leftNeutral : Groupazip->LeftNeutralzp
.mon : Groupazip->Monoidazp
  A group is also a monoid
.rightInverse : Groupazip->RightInversezip
.rightNeutral : Groupazip->RightNeutralzp
.sgrp : Groupazip->Semigroupap
  A group is also a semigroup
.associative : Groupazip->Associativep
Totality: total
Visibility: public export
associative : Groupazip->Associativep
Totality: total
Visibility: public export
.leftNeutral : Groupazip->LeftNeutralzp
Totality: total
Visibility: public export
leftNeutral : Groupazip->LeftNeutralzp
Totality: total
Visibility: public export
.rightNeutral : Groupazip->RightNeutralzp
Totality: total
Visibility: public export
rightNeutral : Groupazip->RightNeutralzp
Totality: total
Visibility: public export
.leftInverse : Groupazip->LeftInversezip
Totality: total
Visibility: public export
leftInverse : Groupazip->LeftInversezip
Totality: total
Visibility: public export
.rightInverse : Groupazip->RightInversezip
Totality: total
Visibility: public export
rightInverse : Groupazip->RightInversezip
Totality: total
Visibility: public export
0leftInjective : Groupazip->u `p` v=u `p` w->v=w
  In a group, the binary operation is injective when applied
from the left.

Totality: total
Visibility: export
0solveInverseLeft : Groupazip->v `p` u=z->u=iv
  In a group, from `p v u === z` follows `u === i v`.

Totality: total
Visibility: export
0invertProduct : Groupazip->i (u `p` v) =iv `p` iu
  In a group, the inverse of a product is the product of inverses
(in reverse order).

Totality: total
Visibility: export
0rightInjective : Groupazip->v `p` u=w `p` u->v=w
  In a group, the binary operation is injective when applied
from the right.

Totality: total
Visibility: export
0solveInverseRight : Groupazip->u `p` v=z->u=iv
  In a group, from `p u v === z` follows `u === i v`.

Totality: total
Visibility: export
0inverseZero : Groupazip->iz=z
  In a group, the inverse of the neutral element is
the neutral element itself.

Totality: total
Visibility: export
0inverseInvolutory : Groupazip->i (iu) =u
  In a group, inverting an value twice yields the original value.

Totality: total
Visibility: export
.sgrp : Groupazip->Semigroupap
  A group is also a semigroup

Totality: total
Visibility: export
.mon : Groupazip->Monoidazp
  A group is also a monoid

Totality: total
Visibility: export
recordAbelianGroup : (a : Type) ->a->Op1a->Op2a->Type
  An abelian group is a group with a commutative binary operation.

Totality: total
Visibility: public export
Constructor: 
MkAbelianGroup : Associativep->Commutativep->LeftNeutralzp->LeftInversezip->AbelianGroupazip

Projections:
.associative : AbelianGroupazip->Associativep
.cmon : AbelianGroupazip->CommutativeMonoidazp
  An abelian group is also a commutative monoid
.commutative : AbelianGroupazip->Commutativep
.csgrp : AbelianGroupazip->CommutativeSemigroupap
  An abelian group is also a commutative semigroup
.grp : AbelianGroupazip->Groupazip
  An abelian group is also a group
.leftInverse : AbelianGroupazip->LeftInversezip
.leftNeutral : AbelianGroupazip->LeftNeutralzp
.mon : AbelianGroupazip->Monoidazp
  An abelian group is also a monoid
.rightInverse : AbelianGroupazip->RightInversezip
  For an abelian group, `i` is a right inverse.
.rightNeutral : AbelianGroupazip->RightNeutralzp
  For an abelian group, `z` is a right neutral element.
.sgrp : AbelianGroupazip->Semigroupap
  An abelian group is also a semigroup
.associative : AbelianGroupazip->Associativep
Totality: total
Visibility: public export
associative : AbelianGroupazip->Associativep
Totality: total
Visibility: public export
.commutative : AbelianGroupazip->Commutativep
Totality: total
Visibility: public export
commutative : AbelianGroupazip->Commutativep
Totality: total
Visibility: public export
.leftNeutral : AbelianGroupazip->LeftNeutralzp
Totality: total
Visibility: public export
leftNeutral : AbelianGroupazip->LeftNeutralzp
Totality: total
Visibility: public export
.leftInverse : AbelianGroupazip->LeftInversezip
Totality: total
Visibility: public export
leftInverse : AbelianGroupazip->LeftInversezip
Totality: total
Visibility: public export
.sgrp : AbelianGroupazip->Semigroupap
  An abelian group is also a semigroup

Totality: total
Visibility: export
.cmon : AbelianGroupazip->CommutativeMonoidazp
  An abelian group is also a commutative monoid

Totality: total
Visibility: export
.csgrp : AbelianGroupazip->CommutativeSemigroupap
  An abelian group is also a commutative semigroup

Totality: total
Visibility: export
.rightNeutral : AbelianGroupazip->RightNeutralzp
  For an abelian group, `z` is a right neutral element.

Totality: total
Visibility: export
.rightInverse : AbelianGroupazip->RightInversezip
  For an abelian group, `i` is a right inverse.

Totality: total
Visibility: export
.mon : AbelianGroupazip->Monoidazp
  An abelian group is also a monoid

Totality: total
Visibility: export
.grp : AbelianGroupazip->Groupazip
  An abelian group is also a group

Totality: total
Visibility: export
0sgrp_list1 : Semigroup (List1a) ((a++))
Totality: total
Visibility: export
0mon_list : Monoid (Lista) [] (++)
Totality: total
Visibility: export
0cmon_nat_plus : CommutativeMonoidNat0(+)
Totality: total
Visibility: export
0cmon_nat_mult : CommutativeMonoidNat1(*)
Totality: total
Visibility: export
0appendAssoc : Associative(<+>)
Totality: total
Visibility: export
0appendRightNeutral : RightNeutralNothing(<+>)
Totality: total
Visibility: export
0mon_maybe : Monoid (Maybea) Nothing(<+>)
  The default monoid for `Maybe` provided by the prelude:
Returns the first non-empty value (if any).

Totality: total
Visibility: export
union : (a->a->a) ->Maybea->Maybea->Maybea
  Use a binary function to combine two `Maybe`s in case both
are `Just`s.

This is an associative function, if `p` is associative. It is
commutative if `p` is commutative.

Totality: total
Visibility: public export
0unionAssoc : Associativep->Associative (unionp)
Totality: total
Visibility: export
0unionCommutative : Commutativep->Commutative (unionp)
Totality: total
Visibility: export
0unionRightNeutral : RightNeutralNothing (unionp)
Totality: total
Visibility: export
0mon_union : Associativep->Monoid (Maybea) Nothing (unionp)
Totality: total
Visibility: export
0cmon_union : CommutativeSemigroupap->CommutativeMonoid (Maybea) Nothing (unionp)
Totality: total
Visibility: export
0appendAssoc : Associative(<+>)
Totality: total
Visibility: export
0appendRightNeutral : RightNeutralEQ(<+>)
Totality: total
Visibility: export
0mon_ordering : MonoidOrderingEQ(<+>)
  The default monoid for `Ordering` provided by the prelude:
Returns the first non-`EQ` value (if any).

Totality: total
Visibility: export
neg : () -> ()
Totality: total
Visibility: export
0appendLeftNeutral : LeftNeutral () (<+>)
Totality: total
Visibility: export
0agrp_unit : AbelianGroup () () neg(<+>)
  The default group for `Unit` provided by the prelude.

Totality: total
Visibility: export
0mon_string : MonoidString""(++)
Totality: total
Visibility: export
0plus_bits8 : AbelianGroupBits80negate(+)
Totality: total
Visibility: export
0mult_bits8 : CommutativeMonoidBits81(*)
Totality: total
Visibility: export
0plus_bits16 : AbelianGroupBits160negate(+)
Totality: total
Visibility: export
0mult_bits16 : CommutativeMonoidBits161(*)
Totality: total
Visibility: export
0plus_bits32 : AbelianGroupBits320negate(+)
Totality: total
Visibility: export
0mult_bits32 : CommutativeMonoidBits321(*)
Totality: total
Visibility: export
0plus_bits64 : AbelianGroupBits640negate(+)
Totality: total
Visibility: export
0mult_bits64 : CommutativeMonoidBits641(*)
Totality: total
Visibility: export
0plus_int8 : AbelianGroupInt80negate(+)
Totality: total
Visibility: export
0mult_int8 : CommutativeMonoidInt81(*)
Totality: total
Visibility: export
0plus_int16 : AbelianGroupInt160negate(+)
Totality: total
Visibility: export
0mult_int16 : CommutativeMonoidInt161(*)
Totality: total
Visibility: export
0plus_int32 : AbelianGroupInt320negate(+)
Totality: total
Visibility: export
0mult_int32 : CommutativeMonoidInt321(*)
Totality: total
Visibility: export
0plus_int64 : AbelianGroupInt640negate(+)
Totality: total
Visibility: export
0mult_int64 : CommutativeMonoidInt641(*)
Totality: total
Visibility: export
0plus_integer : AbelianGroupInteger0negate(+)
Totality: total
Visibility: export
0mult_integer : CommutativeMonoidInteger1(*)
Totality: total
Visibility: export