Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

9 Technical Notes
 9.1 Many object structures
 9.2 Many object homomorphisms

9 Technical Notes

This short chapter is included for the benefit of anyone wishing to implement some other variety of many-object structures, for example ringoids, which are rings with many objects; Lie groupoids, which are Lie groups with many objects; and so on.

9.1 Many object structures

Structures with many objects, and their elements, are defined in a manner similar to the single object case. For elements we have:

as well as various category collections. For the various structures we have:

Among the groupoids constructed earlier are the single piece Gd8 and the five component union U5:


gap> CategoriesOfObject( Gd8 );
[ "IsListOrCollection", "IsCollection", "IsExtLElement", 
  "CategoryCollections(IsExtLElement)", "IsExtRElement", 
  "CategoryCollections(IsExtRElement)", 
  "CategoryCollections(IsMultiplicativeElement)", "IsGeneralizedDomain", 
  "IsDomainWithObjects", 
  "CategoryCollections(IsMultiplicativeElementWithObjects)", 
  "CategoryCollections(IsMultiplicativeElementWithObjectsAndOnes)", 
  "CategoryCollections(IsMultiplicativeElementWithObjectsAndInverses)", 
  "CategoryCollections(IsGroupoidElement)", "IsMagmaWithObjects", 
  "IsSemigroupWithObjects", "IsMonoidWithObjects", "IsGroupoid" ]
gap> FamilyObj( Gd8 );                     
<Family: "CollectionsFamily(...)">
gap> Display(last);   
name:
    CollectionsFamily(...)
required filters:
    IsCollection
implied filters:
    IsListOrCollection
    IsCollection
    IsExtLElement
    CategoryCollections(IsExtLElement)
    IsExtRElement
    CategoryCollections(IsExtRElement)
    CategoryCollections(IsMultiplicativeElement)
    IsOddAdditiveNestingDepthObject
    CategoryCollections(IsMultiplicativeElementWithObjects)
    CategoryCollections(IsMultiplicativeElementWithObjectsAndOnes)
    CategoryCollections(IsMultiplicativeElementWithObjectsAndInverses)
    CategoryCollections(IsGroupoidElement)
gap> KnownAttributesOfObject( Gd8 ); 
[ "Name", "ObjectList", "GeneratorsOfMagmaWithObjects", 
  "GeneratorsOfGroupoid" ]
gap> KnownTruePropertiesOfObject( Gd8 ); 
[ "IsDuplicateFree", "IsAssociative", "IsSinglePieceDomain", 
  "IsDirectProductWithCompleteDigraphDomain" ]
gap> RepresentationsOfObject( Gd8 );
[ "IsComponentObjectRep", "IsAttributeStoringRep", "IsMWOSinglePieceRep" ]
gap> RepresentationsOfObject( U5 ); 
[ "IsComponentObjectRep", "IsAttributeStoringRep", "IsPiecesRep" ]

Similarly, for arrows, we have:


gap> e1;
[(5,6,7,8) : -9 -> -8]
gap> CategoriesOfObject( e1 );
[ "IsExtLElement", "IsExtRElement", "IsMultiplicativeElement", 
  "IsMultiplicativeElementWithObjects", 
  "IsMultiplicativeElementWithObjectsAndOnes", 
  "IsMultiplicativeElementWithObjectsAndInverses", "IsGroupoidElement" ]
gap> FamilyObj( e1 );
<Family: "IsGroupoidElementFamily">

9.2 Many object homomorphisms

Homomorphisms of structures with many objects have a similar heirarchy. A few examples:

Two forms of representation are used: for mappings to a single piece; and for unions of such mappings:

In previous chapters, hom9 was a homomorphism from Gd8 to Kk4; and aut1 was an automorphism of Ha4.


gap> hom9;
groupoid homomorphism : Gd8 -> Kk4
[ [ [(5,6,7,8) : -9 -> -9], [(5,7) : -9 -> -9], [() : -9 -> -8], 
      [() : -9 -> -7] ], 
  [ [(1,4)(2,3) : -14 -> -14], [() : -14 -> -14], [(1,3,4) : -14 -> -13], 
      [(1,4)(2,3) : -14 -> -12] ] ]
gap> CategoriesOfObject( hom9 );
[ "IsExtLElement", "IsExtRElement", "IsMultiplicativeElement", 
  "IsMultiplicativeElementWithOne", "IsMultiplicativeElementWithInverse", 
  "IsAssociativeElement", "IsGeneralMapping", "IsSPGeneralMapping", 
  "IsGeneralMappingWithObjects", "IsSPGeneralMappingWithObjects", 
  "IsGroupoidHomomorphism" ]
gap> FamilyObj( hom9 );
<Family: "GroupoidHomomorphismFamily">
gap> Display( last );
name:
    GroupoidHomomorphismFamily
required filters:
    IsGroupoidHomomorphism
implied filters:
    CanEasilyCompareElements
    HasCanEasilyCompareElements
    CanEasilySortElements
    HasCanEasilySortElements
    IsExtLElement
    IsExtRElement
    IsMultiplicativeElement
    IsMultiplicativeElementWithOne
    IsMultiplicativeElementWithInverse
    IsAssociativeElement
    IsGeneralMapping
    IsSPGeneralMapping
    RespectsMultiplication
    HasRespectsMultiplication
    IsGeneralMappingWithObjects
    IsSPGeneralMappingWithObjects
    IsGroupoidHomomorphism
gap> FamilyObj( hom9 ) = FamilyObj( aut1 );
true
gap> KnownTruePropertiesOfObject( hom9 );
[ "CanEasilyCompareElements", "CanEasilySortElements", 
  "RespectsMultiplication", "IsGroupWithObjectsHomomorphism", 
  "IsGeneralMappingToSinglePiece", "IsGeneralMappingFromSinglePiece", 
  "IsInjectiveOnObjects", "IsSurjectiveOnObjects" ]
gap> KnownTruePropertiesOfObject( aut1 );
[ "CanEasilyCompareElements", "CanEasilySortElements", "IsEndoGeneralMapping",
  "RespectsMultiplication", "IsGroupWithObjectsHomomorphism", 
  "IsGeneralMappingToSinglePiece", "IsGeneralMappingFromSinglePiece", 
  "IsInjectiveOnObjects", "IsSurjectiveOnObjects", 
  "IsEndomorphismWithObjects", "IsAutomorphismWithObjects", 
  "IsGroupoidAutomorphismByObjectPerm" ]
gap> KnownAttributesOfObject( hom9 );
[ "Range", "Source", "MappingGeneratorsImages", "MappingToSinglePieceData", 
  "ImagesOfObjects", "ImageElementsOfRays", "RootGroupHomomorphism" ]
gap> KnownAttributesOfObject( aut1 );
[ "Order", "Range", "Source", "MappingGeneratorsImages", "AutomorphismDomain",
  "MappingToSinglePieceData", "ImagesOfObjects", "ImageElementsOfRays", 
  "RootGroupHomomorphism" ]

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 Bib Ind

generated by GAPDoc2HTML