Skip to content

Commit

Permalink
Trac #15137: Implement right-angled Artin groups
Browse files Browse the repository at this point in the history
This patch implements Right-angled Artin groups (RAAG's for short,
a.k.a. graph groups or partially commutative groups).

URL: http://trac.sagemath.org/15137
Reported by: tscrim
Ticket author(s): Travis Scrimshaw
Reviewer(s): Frédéric Chapoton, Miguel Marco
  • Loading branch information
Release Manager authored and vbraun committed Jun 18, 2014
2 parents 27ea650 + 473384d commit e9dd721
Show file tree
Hide file tree
Showing 6 changed files with 552 additions and 31 deletions.
1 change: 1 addition & 0 deletions src/doc/en/reference/groups/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Groups
sage/groups/finitely_presented
sage/groups/finitely_presented_named
sage/groups/braid
sage/groups/raag
sage/groups/abelian_gps/abelian_group
sage/groups/abelian_gps/values
sage/groups/abelian_gps/dual_abelian_group
Expand Down
2 changes: 2 additions & 0 deletions src/sage/groups/all.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
lazy_import('sage.groups.affine_gps.affine_group', 'AffineGroup')
lazy_import('sage.groups.affine_gps.euclidean_group', 'EuclideanGroup')

lazy_import('sage.groups.raag', 'RightAngledArtinGroup')

lazy_import('sage.groups', 'groups_catalog', 'groups')

lazy_import('sage.groups.semimonomial_transformations.semimonomial_transformation_group',
Expand Down
32 changes: 1 addition & 31 deletions src/sage/groups/finitely_presented.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ def __init__(self, parent, x, check=True):
if not isinstance(x, GapElement):
F = parent.free_group()
free_element = F(x)
fp_family = parent.one().gap().FamilyObj()
fp_family = parent.gap().Identity().FamilyObj()
x = libgap.ElementOfFpGroup(fp_family, free_element.gap())
ElementLibGAP.__init__(self, parent, x)

Expand All @@ -219,10 +219,6 @@ def __reduce__(self):
sage: F.<a,b,c> = FreeGroup('a, b, c')
sage: G = F.quotient([a*b*c/(b*c*a), a*b*c/(c*a*b)])
sage: G.__reduce__()
(<class 'sage.groups.finitely_presented.FinitelyPresentedGroup'>,
(Free Group on generators {a, b, c},
(a*b*c*a^-1*c^-1*b^-1, a*b*c*b^-1*a^-1*c^-1)))
sage: G.inject_variables()
Defining a, b, c
sage: x = a*b*c
Expand Down Expand Up @@ -776,32 +772,6 @@ def __init__(self, free_group, relations):
ParentLibGAP.__init__(self, parent_gap)
Group.__init__(self)

def __reduce__(self):
"""
Used in pickling.
TESTS::
sage: F = FreeGroup(4)
sage: F.inject_variables()
Defining x0, x1, x2, x3
sage: G = F.quotient([x0*x2, x3*x1*x3, x2*x1*x2])
sage: G.__reduce__()
(<class 'sage.groups.finitely_presented.FinitelyPresentedGroup'>,
(Free Group on generators {x0, x1, x2, x3},
(x0*x2, x3*x1*x3, x2*x1*x2)))
sage: F.<a,b,c> = FreeGroup()
sage: F.inject_variables()
Defining a, b, c
sage: G = F / [a*b*c/(b*c*a), a*b*c/(c*a*b)]
sage: G.__reduce__()
(<class 'sage.groups.finitely_presented.FinitelyPresentedGroup'>,
(Free Group on generators {a, b, c},
(a*b*c*a^-1*c^-1*b^-1, a*b*c*b^-1*a^-1*c^-1)))
"""
return (FinitelyPresentedGroup, (self._free_group, self._relations))

def _repr_(self):
"""
Return a string representation.
Expand Down
1 change: 1 addition & 0 deletions src/sage/groups/groups_catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
- :func:`groups.misc.Braid <sage.groups.braid.BraidGroup>`
- :func:`groups.misc.CoxeterGroup <sage.combinat.root_system.coxeter_group.CoxeterGroup>`
- :func:`groups.misc.Free <sage.groups.free_group.FreeGroup>`
- :class:`groups.misc.RightAngledArtin <sage.groups.raag.RightAngledArtinGroup>`
- :func:`groups.misc.SemimonomialTransformation <sage.groups.semimonomial_transformations.semimonomial_transformation_group.SemimonomialTransformationGroup>`
- :func:`groups.misc.WeylGroup <sage.combinat.root_system.weyl_group.WeylGroup>`
Expand Down
2 changes: 2 additions & 0 deletions src/sage/groups/misc_gps/misc_groups_catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,5 @@
from sage.groups.semimonomial_transformations.semimonomial_transformation_group import SemimonomialTransformationGroup as SemimonomialTransformation
from sage.combinat.root_system.coxeter_group import CoxeterGroup
from sage.combinat.root_system.weyl_group import WeylGroup
from sage.groups.raag import RightAngledArtinGroup as RightAngledArtin

Loading

0 comments on commit e9dd721

Please sign in to comment.