| Copyright | (c) 2020 Emily Pillmore |
|---|---|
| License | BSD-style |
| Maintainer | Reed Mullanix <reedmullanix@gmail.com>, Emily Pillmore <emilypi@cohomolo.gy> |
| Stability | stable |
| Portability | non-portable |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Data.Group.Permutation
Description
This module provides definitions for Permutations
along with useful combinators.
Synopsis
- data Permutation a = Permutation {}
- permute :: (a -> a) -> (a -> a) -> Permutation a
- pairwise :: Permutation a -> (a -> a, a -> a)
- (-$) :: Permutation a -> a -> a
- ($-) :: Permutation a -> a -> a
- embed :: Group g => g -> Permutation g
- retract :: Group g => Permutation g -> g
- pattern Permute :: Group g => Permutation g -> g
Permutation groups
data Permutation a Source #
Isomorphism of a finite set onto itself. Each entry consists of one half of the isomorphism.
Note: It is the responsibility of the user to provide inverse proofs
for to and from. Be responsible!
Constructors
| Permutation | |
Instances
Permutation group combinators
permute :: (a -> a) -> (a -> a) -> Permutation a Source #
Build a Permutation from a bijective pair.
pairwise :: Permutation a -> (a -> a, a -> a) Source #
Destroy a Permutation, producing the underlying pair of
bijections.
(-$) :: Permutation a -> a -> a infixr 0 Source #
Infix alias for the to half of Permutation bijection
($-) :: Permutation a -> a -> a infixr 0 Source #
Infix alias for the from half of Permutation bijection
embed :: Group g => g -> Permutation g Source #
Embed a Group into the Permutation group on it's underlying set.
retract :: Group g => Permutation g -> g Source #
Get a group element out of the permutation group.
This is a left inverse to embed, i.e.
retract . embed = id
Permutation patterns
pattern Permute :: Group g => Permutation g -> g Source #
Bidirectional pattern synonym for embedding/retraction of groups into their permutation groups.