-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A host of minor corrections to the doc, but otherwise this looks awesome!
doc/tietze.xml
Outdated
<ManSection> | ||
<Oper Name="StzPresentation" Arg="s"/> | ||
<Returns> | ||
A Semigroup Tietze (Stz) object. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Semigroup -> semigroup
A Semigroup Tietze (Stz) object. | |
A semigroup Tietze (Stz) object. |
doc/tietze.xml
Outdated
|
||
<#GAPDoc Label="StzPresentation"> | ||
<ManSection> | ||
<Oper Name="StzPresentation" Arg="s"/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s
-> S
<Oper Name="StzPresentation" Arg="s"/> | |
<Oper Name="StzPresentation" Arg="S"/> |
doc/tietze.xml
Outdated
A Semigroup Tietze (Stz) object. | ||
</Returns> | ||
<Description> | ||
If <A>s</A> is a fp semigroup |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"a fp semigroup" should be "an fp semigroup"
doc/tietze.xml
Outdated
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(each represented as a pair of LetterRep words, see | |
(each represented as a pair of <C>LetterRep</C> words, see |
doc/z-chap19.xml
Outdated
|
||
This object is analogous to the "Tietze object" implemented for fp groups |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reference not quotes
doc/z-chap19.xml
Outdated
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
create, view and manipulate Semigroup Tietze objects are prefixed with | |
create, view and manipulate semigroup Tietze objects are prefixed with |
doc/z-chap19.xml
Outdated
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Again, this could be a bit clearer.
gap/fp/tietze.gi
Outdated
|
||
return ObjectifyWithAttributes(out, type, | ||
RelationsOfStzPresentation, | ||
out!.rels, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed, this is probably a more uniform name.
################################################################################ | ||
|
||
DeclareOperation("StzPresentation", [IsFpSemigroup]); | ||
DeclareCategory("IsStzPresentation", IsList); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IsList
-> IsRecord
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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: