1# GAP Declarations
2# This file was generated from
3# $Id: quiver.gd,v 1.4 2012/02/27 12:26:34 sunnyquiver Exp $
4DeclareInfoClass( "InfoQuiver" );
5
6DeclareCategory("IsPath", IsMultiplicativeElement);
7DeclareCategory("IsQuiverVertex", IsPath);
8DeclareRepresentation("IsQuiverVertexRep", IsComponentObjectRep, ["vertex_name","gen_pos"]);
9DeclareCategory("IsArrow", IsPath);
10DeclareRepresentation("IsArrowRep", IsComponentObjectRep, ["arrow_name","gen_pos"]);
11DeclareCategoryFamily("IsPath");
12
13DeclareAttribute("SourceOfPath", IsPath);
14DeclareAttribute("TargetOfPath", IsPath);
15DeclareAttribute("LengthOfPath", IsPath);
16DeclareAttribute("WalkOfPath", IsPath);
17DeclareProperty("IsZeroPath", IsPath);
18
19DeclareAttribute("IncomingArrowsOfVertex", IsQuiverVertex, "mutable");
20DeclareAttribute("OutgoingArrowsOfVertex", IsQuiverVertex, "mutable");
21DeclareAttribute("InDegreeOfVertex", IsQuiverVertex, "mutable");
22DeclareAttribute("OutDegreeOfVertex", IsQuiverVertex, "mutable");
23DeclareAttribute("NeighborsOfVertex", IsQuiverVertex, "mutable" );
24
25DeclareGlobalFunction( "Path" );
26DeclareCategory("IsQuiver", IsSemigroup and IsRecord);
27DeclareRepresentation("IsQuiverRep", IsQuiver and IsComponentObjectRep,["pieces"]);
28DeclareRepresentation("IsQuiverIteratorRep", IsComponentObjectRep, ["quiver","position"]);
29
30# DeclareRepresentation( "IsQuiverEnumerator",
31#    IsDomainEnumerator and IsComponentObjectRep,
32#    [ "quiver" ] ) ;
33#
34DeclareRepresentation("IsQuiverEnumerator", IsComponentObjectRep, ["quiver"]);
35DeclareAttribute("VerticesOfQuiver", IsQuiver);
36DeclareAttribute("ArrowsOfQuiver", IsQuiver);
37DeclareAttribute("AdjacencyMatrixOfQuiver", IsQuiver);
38DeclareSynonymAttr( "GeneratorsOfQuiver", GeneratorsOfMagma);
39
40
41DeclareAttribute("NumberOfVertices", IsQuiver);
42DeclareAttribute("NumberOfArrows", IsQuiver);
43DeclareAttribute( "OrderingOfQuiver", IsQuiver);
44
45DeclareGlobalFunction("Quiver");
46DeclareGlobalFunction("UniqueQuiverName");
47DeclareOperation("OrderedBy",[IsQuiver, IsQuiverOrdering]);
48DeclareOperation("NextPath", [IsQuiver, IsObject]);
49DeclareOperation( "\[\]", [ IsQuiverEnumerator, IsPosInt ]);
50
51DeclareOperation( "QuiverContainingPath", [ IsPath ] );
52DeclareOperation( "VertexIndex", [ IsQuiverVertex ] );
53DeclareOperation( "ArrowIndex", [ IsArrow ] );
54DeclareOperation( "GeneratorIndex", [ IsPath ] );
55
56DeclareAttribute( "OppositeQuiver", IsQuiver );
57DeclareOperation( "OppositePath", [ IsPath ] );
58DeclareAttribute( "OppositeQuiverNameMap", IsQuiver );
59
60DeclareOperation( "SeparatedQuiver", [ IsQuiver ] );
61DeclareOperation( "DynkinQuiverAn", [ IS_INT, IsList ] );
62DeclareOperation( "DynkinQuiverEn", [ IS_INT, IsList ] );
63DeclareOperation( "DynkinQuiverDn", [ IS_INT, IsList ] );
64DeclareOperation( "DynkinQuiver", [ IsString, IS_INT, IsList ] );