HaskellForMaths-0.4.5: Combinatorics, group theory, commutative algebra, non-commutative algebra

Math.Algebra.Group.StringRewriting

Synopsis

Documentation

rewrite :: Eq a => [([a], [a])] -> [a] -> [a]Source

Given a list of rewrite rules of the form (left,right), and a word, rewrite it by repeatedly replacing any left substring in the word by the corresponding right

rewrite1 :: Eq a => ([a], [a]) -> [a] -> Maybe [a]Source

splitSubstring :: Eq a => [a] -> [a] -> Maybe ([a], [a])Source

findOverlap :: Eq a => [a] -> [a] -> Maybe ([a], [a], [a])Source

knuthBendix1 :: Ord a => [([a], [a])] -> [([a], [a])]Source

ordpair :: Ord a => [a] -> [a] -> Maybe ([a], [a])Source

shortlex :: Ord a => [a] -> [a] -> OrderingSource

knuthBendix2 :: Ord a => [([a], [a])] -> [([a], [a])]Source

merge :: Ord a => [a] -> [a] -> [a]Source

knuthBendix3 :: Ord a => [([a], [a])] -> [([a], [a])]Source

knuthBendix :: Ord a => [([a], [a])] -> [([a], [a])]Source

Implementation of the Knuth-Bendix algorithm. Given a list of relations, return a confluent rewrite system. The algorithm is not guaranteed to terminate.

nfs :: Ord a => ([a], [([a], [a])]) -> [[a]]Source

Given generators and a confluent rewrite system, return (normal forms of) all elements

elts :: Ord a => ([a], [([a], [a])]) -> [[a]]Source

Given generators and relations, return (normal forms of) all elements

newtype SGen Source

Constructors

 S Int

Instances

 Eq SGen Ord SGen Show SGen

_S :: Int -> ([SGen], [([SGen], [a])])Source

_S' :: Int -> ([SGen], [([SGen], [SGen])])Source

tri :: Int -> Int -> Int -> ([Char], [([Char], [Char])])Source

_D :: Int -> Int -> Int -> ([Char], [([Char], [Char])])Source