50 lines
1020 B
Julia
50 lines
1020 B
Julia
|
module HigmanGroup
|
||
|
|
||
|
using AbstractAlgebra
|
||
|
using Groups
|
||
|
|
||
|
###############################################################################
|
||
|
#
|
||
|
# Generating set
|
||
|
#
|
||
|
###############################################################################
|
||
|
|
||
|
Comm(x,y) = x*y*x^-1*y^-1
|
||
|
|
||
|
function generatingset()
|
||
|
|
||
|
HigmanGr = Groups.FPGroup(["a","b","c","d"]);
|
||
|
a,b,c,d = gens(HigmanGr)
|
||
|
|
||
|
relations = [
|
||
|
b^-1*Comm(b,a),
|
||
|
c^-1*Comm(c,b),
|
||
|
d^-1*Comm(d,c),
|
||
|
a^-1*Comm(a,d)
|
||
|
];
|
||
|
|
||
|
relations = [relations; [inv(rel) for rel in relations]]
|
||
|
|
||
|
Groups.add_rels!(HigmanGr, Dict(rel => HigmanGr() for rel in relations))
|
||
|
|
||
|
return HigmanGr, gens(HigmanGr)
|
||
|
end
|
||
|
|
||
|
function generatingset(parsed_args)
|
||
|
return generatingset()
|
||
|
end
|
||
|
|
||
|
###############################################################################
|
||
|
#
|
||
|
# Misc
|
||
|
#
|
||
|
###############################################################################
|
||
|
|
||
|
function groupname(parsed_args)
|
||
|
return groupname(), 0
|
||
|
end
|
||
|
|
||
|
groupname() = "HigmanGroup"
|
||
|
|
||
|
end # of module CapraceGroup
|