Ask Your Question
2

Simplifying group presentations with the same generators

asked 2022-07-16 18:02:38 +0100

enriqueartal gravatar image

updated 2022-07-24 23:42:22 +0100

I am working with some finitely presented groups in Sagemath. I want to perform simplifications without eliminating simplifications. This is a toy example:

g=FreeGroup(2)/[(1,1,-2,-1)] 
# Finitely presented group with two generators and one relation ("too long")
g1=gap(g)
# The group is converted into a GAP object in order to use some GAP functions not existing in SAGEMATH
 P=g1.PresentationFpGroup()
# The GAP presentation object is constructed, for which simplifications functions exist.
P.TzSearch()
# This function simplifies too much the presentation.

It eliminates the first and last element of the relation (which was the goal) but it eliminates also a generator. Presentations have a Gap record called TzOptions, it is accessible in Sagemath with

P.TzOptions()

One of the options is called protected and it is set to 0 by default. If it is set to n, among the simplifications it avoids to eiminate the first n generators. My problems is to modify this Gap record in Sagemath, I do not know how. Since it is a tool to work with finitely presented groups in Sagemath, it would be too cumbersome to translate the problem into Gap and come back to Sagemath. Any help is welcome.

Thanks, Enrique.

edit retag flag offensive close merge delete

Comments

Can you provide code for a toy example?

slelievre gravatar imageslelievre ( 2022-07-16 18:12:18 +0100 )edit

Really toy example g=FreeGroup(2)/[(1,1,-2,-1)] g1=gap(g) P=g1.PresentationFpGroup() P.TzSearch() I want the last order to simplify the relation without eliminating a generator

enriqueartal gravatar imageenriqueartal ( 2022-07-20 12:55:00 +0100 )edit

Ideally, edit your question to include the example.

Use a blank line before and after the code block, and indent it by four spaces.

slelievre gravatar imageslelievre ( 2022-07-20 18:48:22 +0100 )edit

Thanks for the tip!

enriqueartal gravatar imageenriqueartal ( 2022-07-24 23:42:30 +0100 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2022-08-03 12:22:26 +0100

enriqueartal gravatar image

@mmarco provided this answer

g=FreeGroup(2)/[(1,1,-2,-1)] 
g1=gap(g)
P=g1.PresentationFpGroup()
# Convert the GAP record TzOptions to a SAGEMATH dictionnary 
dic=P.TzOptions().sage()
# Change the 'protected' key to the number of protected generators
dic['protected']=2
# This order changes the GAP record
P.SetTzOptions(dic)
# The following simplification order does not eliminate generators.
P.TzGoGo()

I hope this will be useful for someone else and thanks to Miguel

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2022-07-16 18:02:38 +0100

Seen: 335 times

Last updated: Aug 03 '22