Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/groupoids/lib/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 11.8.2025 mit Größe 6 kB image not shown  

Quelle  double.gd   Sprache: unbekannt

 
############################################################################# 
## 
#W  double.gd               GAP4 package `Groupoids'            Chris Wensley 
##
##  
##  This file contains the declarations for basic double groupoids
##  

############################################################################# 
#C  IsDoubleGroupoid( <ddwo> ) . . . . . . . . . . . . . . . and all inverses
#C  IsBasicDoubleGroupoid( <ddwo>  . . . . . . . . . . . . . . . . no prexmod
#V  IsDoubleGroupoidFamily . . . . . . . . . . .  family for double groupoids 
#T  IsDoubleGroupoidType( <gpd> )
#T  IsDoubleGroupoidPiecesType( <dwo> )
#A  GroupoidOfDoubleGroupoid( <dwo> )
##
DeclareCategory( "IsDoubleGroupoid", 
    IsMonoidWithObjects and IsDoubleGroupoidElementCollection ); 
DeclareCategory( "IsBasicDoubleGroupoid", IsDoubleGroupoid ); 
DeclareCategoryCollections( "IsDoubleGroupoid" ); 
IsDoubleGroupoidFamily := CollectionsFamily( IsDoubleGroupoidElementFamily ); 
BindGlobal( "IsDoubleGroupoidType", 
            NewType( IsDoubleGroupoidFamily, 
                     IsMWOSinglePieceRep and IsDoubleGroupoid ) );
BindGlobal( "IsDoubleGroupoidPiecesType", 
            NewType( IsDoubleGroupoidFamily, 
                     IsPiecesRep and IsDoubleGroupoid and IsAssociative ) );
DeclareAttribute( "GroupoidOfDoubleGroupoid", IsDoubleGroupoid );

############################################################################# 
## 
#O  SquareOfArrows( <dmwo>, <elt>, <up>, <left>, <right>, <down> ) 
#O  MultiplicativeSquareWithObjects(  <dmwo>, <elt>, <up>, <lt>, <rt>, <dn> ) 
#O  SquareOfArrowsNC( <dmwo>, <elt>, <up>, <left>, <right>, <down> ) 
## 
DeclareOperation( "SquareOfArrows", 
    [ IsDoubleGroupoid, IsMultiplicativeElement, 
      IsObject, IsObject, IsObject, IsObject ] ); 
DeclareSynonym( "MultiplicativeSquareWithObjects", SquareOfArrows ); 
DeclareOperation( "SquareOfArrowsNC", 
    [ IsDoubleGroupoid, IsMultiplicativeElement,
      IsObject, IsObject, IsObject, IsObject ] ); 
    
############################################################################# 
## 
#O  ElementOfSquare( <swo> ) 
#O  DownArrow( <swo> ) 
#O  LeftArrow( <swo> ) 
#O  UpArrow( <swo> ) 
#O  RightArrow( <swo> ) 
#O  BoundaryOfSquare( <swo> )
#O  DoubleGroupoidOfSquare( <swo> )
##  
DeclareOperation( "ElementOfSquare", [ IsDoubleGroupoidElement ] ); 
DeclareOperation( "DownArrow", [ IsDoubleGroupoidElement ] ); 
DeclareOperation( "LeftArrow", [ IsDoubleGroupoidElement ] ); 
DeclareOperation( "UpArrow", [ IsDoubleGroupoidElement ] ); 
DeclareOperation( "RightArrow", [ IsDoubleGroupoidElement ] ); 
DeclareOperation( "BoundaryOfSquare", [ IsDoubleGroupoidElement ] ); 
DeclareOperation( "DoubleGroupoidOfSquare", [ IsDoubleGroupoidElement ] );

############################################################################# 
## 
#P  IsCommutingSquare( <sq> )
##
DeclareProperty( "IsCommutingSquare", IsDoubleGroupoidElement );

############################################################################# 
## 
#O  VerticalProduct(  <sq1>, <sq2> ) 
#O  HorizontalProduct( <sq1>, <sq2> )
#O  VerticalIdentities( <sq> )
#O  HorizontalIdentities( <sq> )
#O  VerticalInverse( <sq> )
#O  HorizontalInverse( <sq> )
## 
DeclareOperation( "VerticalProduct", 
    [ IsDoubleGroupoidElement, IsDoubleGroupoidElement ] ); 
DeclareOperation( "HorizontalProduct", 
    [ IsDoubleGroupoidElement, IsDoubleGroupoidElement ] );
DeclareOperation( "VerticalIdentities", [ IsDoubleGroupoidElement ] );
DeclareOperation( "HorizontalIdentities", [ IsDoubleGroupoidElement ] );
DeclareOperation( "VerticalInverse", [ IsDoubleGroupoidElement ] );
DeclareOperation( "HorizontalInverse", [ IsDoubleGroupoidElement ] );

############################################################################# 
## 
#O  TransposedSquare( <sq> )
#P  IsClosedUnderTransposition( <sq> )
##
DeclareOperation( "TransposedSquare",
    [ IsDoubleGroupoidElement ] );
DeclareProperty( "IsClosedUnderTransposition", IsDoubleGroupoidElement );

############################################################################# 
##  
#O  SinglePieceBasicDoubleGroupoid( <gpd> ) 
#F  DoubleGroupoid( <gpd> ) 
#O  DoubleGroupoidWithTrivialGroup( <obs> )
#O  DoubleGroupoidWithSingleObject( <gpd>, <ob> )
## 
DeclareOperation( "SinglePieceBasicDoubleGroupoid", [ IsGroupoid ] ); 
DeclareGlobalFunction( "DoubleGroupoid" ); 
DeclareOperation( "DoubleGroupoidWithTrivialGroup", [ IsList ] );
DeclareOperation( "DoubleGroupoidWithSingleObject", [ IsGroup, IsObject ] );

############################################################################# 
##  
#O  DoubleGroupoidHomomorphism( <src> <rng> <gpdhom> )
#C  IsDoubleGroupoidHomomorphism( <map> )
#C  IsDoubleGroupoidHomomorphismCollection . . category of colls of dgpd homs
#P  IsDoubleGroupoidEndomorphism( <mor> )
#A  UnderlyingGroupoidHomomorphism( <hom> )
## 
DeclareOperation( "DoubleGroupoidHomomorphism", 
    [ IsDoubleGroupoid, IsDoubleGroupoid, IsGroupoidHomomorphism ] ); 
DeclareCategory( "IsDoubleGroupoidHomomorphism",
    IsMagmaWithObjectsHomomorphism ); 
DeclareCategoryCollections( "IsDoubleGroupoidHomomorphism" );
DeclareSynonym( "IsDoubleGroupoidEndomorphism", 
    IsDoubleGroupoidHomomorphism and IsEndomorphismWithObjects );  
DeclareAttribute( "UnderlyingGroupoidHomomorphism",
    IsDoubleGroupoidHomomorphism );

############################################################################## 
## 
#R  IsDefaultDoubleGroupoidHomomorphismRep( <map> ) 
## 
##  A mapping of connected double groupoids is determined by
##  a groupoid homomorphism, and this defines:
##   - mapping from the root group in the source to that in the range,
##   - images for the objects, 
##   - images for the rays.
##  In this representation we essentially duplicate the gpd hom rep. 
##  
DeclareRepresentation( "IsDefaultDoubleGroupoidHomomorphismRep",
    IsDoubleGroupoidHomomorphism and IsAttributeStoringRep 
    and IsComponentObjectRep, [ "Source", "Range", "PiecesOfMapping",
                                "UnderlyingGroupoidHomomorphism" ] ); 

############################################################################# 
##  
#V  DoubleGroupoidHomomorphismFamily  . . family for homs of double groupoids 
#T  DoubleGroupoidHomomorphismType  . . . . type for homs of double groupoids 
##  
BindGlobal( "DoubleGroupoidHomomorphismFamily", 
    NewFamily( "DoubleGroupoidHomomorphismFamily",
               IsDoubleGroupoidHomomorphism, 
               CanEasilySortElements, CanEasilySortElements ) ); 
BindGlobal( "DoubleGroupoidHomomorphismType", 
    NewType( DoubleGroupoidHomomorphismFamily, 
             IsDefaultDoubleGroupoidHomomorphismRep
             and IsDoubleGroupoidHomomorphism ) );

############################################################################
##
#E double.gd . . . . . . . . . . . . . . . . . . . . . . . . . . . ends here
##  

[ Dauer der Verarbeitung: 0.21 Sekunden  (vorverarbeitet)  ]