Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Project: cocalc-sagemath-dev-slelievre
Views: 418346############################################################################# ## ## SetsOfRelations.gi homalg package Mohamed Barakat ## ## Copyright 2007-2008 Lehrstuhl B für Mathematik, RWTH Aachen ## ## Declaration stuff for sets of relations. ## ############################################################################# #################################### # # representations: # #################################### # a new representation for the GAP-category IsSetsOfRelations: DeclareRepresentation( "IsSetsOfRelationsRep", IsSetsOfRelations, [ "ListOfPositionsOfKnownSetsOfRelations" ] ); #################################### # # families and types: # #################################### # a new family: BindGlobal( "TheFamilyOfHomalgSetsOfRelations", NewFamily( "TheFamilyOfHomalgSetsOfRelations" ) ); # a new type: BindGlobal( "TheTypeHomalgSetsOfRelations", NewType( TheFamilyOfHomalgSetsOfRelations, IsSetsOfRelationsRep ) ); #################################### # # methods for operations: # #################################### InstallMethod( PositionOfLastStoredSetOfRelations, "for sets of relations", [ IsSetsOfRelationsRep ], function( rels ) return Length( rels!.ListOfPositionsOfKnownSetsOfRelations ); end ); #################################### # # constructor functions and methods: # #################################### InstallGlobalFunction( CreateSetsOfRelationsForLeftModule, function( arg ) local relations; if Length( arg ) = 1 then relations := rec( ListOfPositionsOfKnownSetsOfRelations := [ 1 ], 1 := arg[1] ); elif IsString( arg[1] ) and Length( arg[1] ) > 2 and LowercaseString( arg[1]{[1..3]} ) = "unk" then relations := rec( ListOfPositionsOfKnownSetsOfRelations := [ 1 ], 1 := "unknown relations" ); else relations := rec( ListOfPositionsOfKnownSetsOfRelations := [ 1 ], 1 := HomalgRelationsForLeftModule( arg[1], arg[2] ) ); fi; ## Objectify: Objectify( TheTypeHomalgSetsOfRelations, relations ); return relations; end ); InstallGlobalFunction( CreateSetsOfRelationsForRightModule, function( arg ) local relations; if Length( arg ) = 1 then relations := rec( ListOfPositionsOfKnownSetsOfRelations := [ 1 ], 1 := arg[1] ); elif IsString( arg[1] ) and Length( arg[1] ) > 2 and LowercaseString( arg[1]{[1..3]} ) = "unk" then relations := rec( ListOfPositionsOfKnownSetsOfRelations := [ 1 ], 1 := "unknown relations" ); else relations := rec( ListOfPositionsOfKnownSetsOfRelations := [ 1 ], 1 := HomalgRelationsForRightModule( arg[1], arg[2] ) ); fi; ## Objectify: Objectify( TheTypeHomalgSetsOfRelations, relations ); return relations; end ); #################################### # # View, Print, and Display methods: # #################################### InstallMethod( ViewObj, "for sets of relations", [ IsSetsOfRelationsRep ], function( o ) local l; l := Length( o!.ListOfPositionsOfKnownSetsOfRelations ); Print( "<A set containing " ); if l = 1 then Print( "a single set " ); else Print( l, " sets " ); fi; Print( "of relations of a homalg module>" ); end );