Repository navigation
Tietze transformations for semigroups - #762
Conversation
This comment has been minimized.
This comment has been minimized.
| @@ -77,10 +77,11 @@ | |||
| <#Include SYSTEM "z-chap16.xml"> <!-- properties and attributes of inverse semigroups --> | |||
There was a problem hiding this comment.
I should specify I have shuffled doc chapters down so that this new "fp semigroups" chapter doesn't appear after the stuff on IO and visualising semigroups!
Co-authored-by: Ben Spiers <bspiers972@outlook.com> Co-authored-by: Tom Conti-Leslie <tom.contileslie@gmail.com>
james-d-mitchell
left a comment
There was a problem hiding this comment.
A host of minor corrections to the doc, but otherwise this looks awesome!
| <ManSection> | ||
| <Oper Name="StzPresentation" Arg="s"/> | ||
| <Returns> | ||
| A Semigroup Tietze (Stz) object. |
There was a problem hiding this comment.
Semigroup -> semigroup
| A Semigroup Tietze (Stz) object. | |
| A semigroup Tietze (Stz) object. |
|
|
||
| <#GAPDoc Label="StzPresentation"> | ||
| <ManSection> | ||
| <Oper Name="StzPresentation" Arg="s"/> |
There was a problem hiding this comment.
s -> S
| <Oper Name="StzPresentation" Arg="s"/> | |
| <Oper Name="StzPresentation" Arg="S"/> |
| A Semigroup Tietze (Stz) object. | ||
| </Returns> | ||
| <Description> | ||
| If <A>s</A> is a fp semigroup |
There was a problem hiding this comment.
"a fp semigroup" should be "an fp semigroup"
| Every semigroup Tietze object is an element of the category | ||
| <C>IsStzPresentation</C>. Internally, each Stz object contains a list | ||
| of generators (each represented as a string) and a list of relations | ||
| (each represented as a pair of LetterRep words, see |
There was a problem hiding this comment.
| (each represented as a pair of LetterRep words, see | |
| (each represented as a pair of <C>LetterRep</C> words, see |
|
|
||
| <P/> | ||
|
|
||
| This object is analogous to the "Tietze object" implemented for fp groups |
There was a problem hiding this comment.
Reference not quotes
| in the main &GAP; distribution | ||
| (<Ref Chap="Presentations and Tietze Transformations" BookName="ref"/>), | ||
| but its features are semigroup-specific. Most of the functions used to | ||
| create, view and manipulate Semigroup Tietze objects are prefixed with |
There was a problem hiding this comment.
| create, view and manipulate Semigroup Tietze objects are prefixed with | |
| create, view and manipulate semigroup Tietze objects are prefixed with |
| Converting a modified presentation into a semigroup | ||
| </Heading> | ||
|
|
||
| Now that a presentation object has been established, we need to cover how |
There was a problem hiding this comment.
Again, this could be a bit clearer.
|
|
||
| return ObjectifyWithAttributes(out, type, | ||
| RelationsOfStzPresentation, | ||
| out!.rels, |
There was a problem hiding this comment.
I think to avoid duplication, you might want to rename these out!.rels -> out!.RelationsOfStzPresentation. Also if type doesn't belong to IsAttributeStoringRep, then does ObjectifyWithAttributes do anything?
| stz!.gens := newGens; | ||
| end); | ||
|
|
||
| # TODO: TCL: maybe better to call this StzIsomorphism? |
There was a problem hiding this comment.
Agreed, this is probably a more uniform name.
| ################################################################################ | ||
|
|
||
| DeclareOperation("StzPresentation", [IsFpSemigroup]); | ||
| DeclareCategory("IsStzPresentation", IsList); |
There was a problem hiding this comment.
IsList -> IsRecord
There was a problem hiding this comment.
I run into issues I'm not familiar with when trying to change the representation. Something about the implementation of StzPresentation fails! I'll avoid addressing this for now
Co-authored-by: James D. Mitchell <jdm3@st-andrews.ac.uk>
UnreducedSemigroupOfStzPresentation UnreducedFpSemigroupOfFpSemigroup both -> "UnreducedFpSemigroup"
stz!.rels -> stz!.RelationsOfStzPresentation stz!.gens -> stz!.GeneratorsOfStzPresentation stz!.unreducedSemigroup -> stz!.UnreducedFpSemigroup stz!.tietzeForwardMap -> stz!.TietzeForwardMap stz!.tietzeBackwardMap -> stz!.TietzeBackwardMap
TietzeIsomorphism -> StzIsomorphism
|
Since there hadn't been any action on this pull request for a couple weeks, I've attempted to address all of @james-d-mitchell's comments from the review. I believe that's everything sorted (mostly documentation and function renaming) except for changing |
Authors: Ben Spiers (@bspiers) and Tom Conti-Leslie (@tomcontileslie)
Ready for review
This PR creates methods for a "semigroup Tietze" object which contains the generators and relations of an fp semigroup. Tietze transformations can be manually applied to the object to change the presentation, giving an fp semigroup isomorphic to the original. The idea is to also have a "SimplifyPresentation" operation which will intelligently apply transformations in order to reduce the overall length of the presentation.
Once transformations have been applied to the Tietze object to taste, it can be converted back into an fp semigroup and a mapping object can be produced which provides an isomorphism between the original fp semigroup and the modified version.
Still needs doing: