1##############################################################################
2##
3#W  gpgpd.gd                   GAP4 package `XMod'               Chris Wensley
4##
5#Y  Copyright (C) 2001-2019, Chris Wensley et al,
6#Y  School of Computer Science, Bangor University, U.K.
7
8#############################################################################
9##
10#C  IsGroupGroupoidElement( <elt> )
11##
12DeclareCategory( "IsGroupGroupoidElement",
13                 IsMultiplicativeElementWithInverse );
14DeclareCategoryCollections( "IsGroupGroupoidElement" );
15
16#############################################################################
17##
18#R  IsGroupGroupoidElementRep( <elt> )
19DeclareRepresentation( "IsGroupGroupoidElementRep",
20  IsGroupGroupoidElement and IsComponentObjectRep,
21  [ "precat1", "root", "element", "tail", "tailid", "head", "headid" ] );
22
23#############################################################################
24##
25#V  IsGroupGroupoidElementFamily  . . family for elements of group groupoids
26##
27BindGlobal( "IsGroupGroupoidElementFamily",
28    NewFamily( "IsGroupGroupoidElementFamily",
29               CanEasilySortElements, CanEasilySortElements ) );
30
31#############################################################################
32##
33#T  IsGroupGroupoidElementType  default type for elements of group groupoids
34##
35BindGlobal( "IsGroupGroupoidElementType",
36            NewType( IsGroupGroupoidElementFamily,
37                     IsGroupGroupoidElement and IsGroupGroupoidElementRep ) );
38
39##############################################################################
40##
41#O  GroupGroupoidElement( <cat1>, <obj>, <obj> )
42##
43DeclareOperation( "GroupGroupoidElement",
44    [ IsPreCat1Group, IsObject, IsObject ] );
45
46##############################################################################
47##
48#O  GroupGroupoidGroup( <gens> ) ???
49##
50DeclareOperation( "GroupGroupoidGroup", [ IsCollection ] );
51
52##############################################################################
53##
54#O  GroupGroupoid( <cat1> )
55##
56DeclareAttribute( "GroupGroupoid", IsPreCat1Group );
57
58