Copyright | (c) 2023 Dakotah Lambert |
---|---|
License | MIT |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Data.Representation.FiniteSemigroup.Order
Description
This module provides support for quasiordered semigroups.
Synopsis
- data OrderedSemigroup s
- odual :: OrderedSemigroup s -> OrderedSemigroup s
- sdual :: FiniteSemigroupRep s => OrderedSemigroup s -> OrderedSemigroup FSMult
- assignOrder :: FiniteSemigroupRep s => [(Int, Int)] -> s -> OrderedSemigroup s
- assignOrderBy :: FiniteSemigroupRep s => (s -> Int -> Int -> Bool) -> s -> OrderedSemigroup s
- fromBasesWith :: (GeneratedAction -> Int -> Int -> Bool) -> [[Int]] -> OrderedSemigroup GeneratedAction
- syntacticOrder :: Int -> IntSet -> GeneratedAction -> Int -> Int -> Bool
- trivialOrder :: s -> Int -> Int -> Bool
Documentation
data OrderedSemigroup s Source #
A semigroup alongside a preorder (reflexive and transitive). The constructor itself is not exported so as to enforce this condition.
Instances
odual :: OrderedSemigroup s -> OrderedSemigroup s Source #
Return the given semigroup with its order reversed.
sdual :: FiniteSemigroupRep s => OrderedSemigroup s -> OrderedSemigroup FSMult Source #
Return the given semigroup with its multiplication reversed.
assignOrder :: FiniteSemigroupRep s => [(Int, Int)] -> s -> OrderedSemigroup s Source #
Associate the reflexive, transitive closure of the given relation as an order for the given semigroup.
assignOrderBy :: FiniteSemigroupRep s => (s -> Int -> Int -> Bool) -> s -> OrderedSemigroup s Source #
Derive an order from the given function and associate it with the given semigroup.
fromBasesWith :: (GeneratedAction -> Int -> Int -> Bool) -> [[Int]] -> OrderedSemigroup GeneratedAction Source #
Create a GeneratedAction
alongside an order
derived from the given function.
syntacticOrder :: Int -> IntSet -> GeneratedAction -> Int -> Int -> Bool Source #
The order where \(x\leq y\) if and only if whenever \(uyv\) maps the given object into the given set, so too does \(uxv\).