127 lines
5.5 KiB
GDScript3
127 lines
5.5 KiB
GDScript3
#############################################################################
|
|
##
|
|
#W core_methods.gd Most common structural methods [loops]
|
|
##
|
|
#H @(#)$Id: core_methods.gd, v 3.3.0 2016/09/21 gap Exp $
|
|
##
|
|
#Y Copyright (C) 2004, G. P. Nagy (University of Szeged, Hungary),
|
|
#Y P. Vojtechovsky (University of Denver, USA)
|
|
##
|
|
|
|
#############################################################################
|
|
## GENERATORS
|
|
## -------------------------------------------------------------------------
|
|
|
|
DeclareSynonymAttr( "GeneratorsOfQuasigroup", GeneratorsOfMagma );
|
|
DeclareSynonymAttr( "GeneratorsOfLoop", GeneratorsOfQuasigroup );
|
|
# attribute GeneratorsSmallest already declared for groups
|
|
# attribite SmallGeneratingSet already declared for groups
|
|
|
|
#############################################################################
|
|
## SECTIONS
|
|
## -------------------------------------------------------------------------
|
|
|
|
DeclareAttribute( "LeftSection", IsQuasigroup );
|
|
DeclareAttribute( "RightSection", IsQuasigroup );
|
|
DeclareOperation( "LeftTranslation",
|
|
[ IsQuasigroup, IsQuasigroupElement ] );
|
|
DeclareOperation( "RightTranslation",
|
|
[ IsQuasigroup, IsQuasigroupElement ] );
|
|
|
|
#############################################################################
|
|
## MULTIPLICATION GROUPS
|
|
## -------------------------------------------------------------------------
|
|
|
|
DeclareAttribute( "LeftMultiplicationGroup", IsQuasigroup );
|
|
DeclareAttribute( "RightMultiplicationGroup", IsQuasigroup );
|
|
DeclareAttribute( "MultiplicationGroup", IsQuasigroup );
|
|
DeclareOperation( "RelativeRightMultiplicationGroup",
|
|
[ IsQuasigroup, IsQuasigroup ] );
|
|
DeclareOperation( "RelativeLeftMultiplicationGroup",
|
|
[ IsQuasigroup, IsQuasigroup ] );
|
|
DeclareOperation( "RelativeMultiplicationGroup",
|
|
[ IsQuasigroup, IsQuasigroup ] );
|
|
|
|
#############################################################################
|
|
## INNER MAPPING GROUPS
|
|
## -------------------------------------------------------------------------
|
|
|
|
DeclareOperation( "LeftInnerMapping", [ IsLoop, IsLoopElement, IsLoopElement ] );
|
|
DeclareOperation( "RightInnerMapping", [ IsLoop, IsLoopElement, IsLoopElement ] );
|
|
DeclareOperation( "MiddleInnerMapping", [ IsLoop, IsLoopElement ] );
|
|
DeclareAttribute( "InnerMappingGroup", IsLoop );
|
|
DeclareAttribute( "LeftInnerMappingGroup", IsLoop );
|
|
DeclareAttribute( "MiddleInnerMappingGroup", IsLoop );
|
|
DeclareAttribute( "RightInnerMappingGroup", IsLoop );
|
|
|
|
#############################################################################
|
|
## SUBQUASIGROUPS AND SUBLOOPS
|
|
## -------------------------------------------------------------------------
|
|
|
|
DeclareOperation( "PosInParent", [ IsCollection ] );
|
|
# Position already declared in GAP
|
|
DeclareOperation( "SubquasigroupNC", [ IsQuasigroup, IsSet ] );
|
|
DeclareOperation( "Subquasigroup", [ IsQuasigroup, IsList ] );
|
|
DeclareOperation( "Subloop", [ IsLoop, IsList ] );
|
|
DeclareOperation( "IsSubquasigroup", [ IsQuasigroup, IsQuasigroup ] );
|
|
DeclareOperation( "IsSubloop", [ IsLoop, IsLoop ] );
|
|
DeclareOperation( "AllSubquasigroups", [ IsQuasigroup ] );
|
|
DeclareOperation( "AllSubloops", [ IsLoop ] );
|
|
# RightCosets already declared in GAP
|
|
DeclareOperation( "RightTransversal", [ IsLoop, IsLoop ] );
|
|
|
|
#############################################################################
|
|
## NUCLEUS, COMMUTANT, CENTER
|
|
## -------------------------------------------------------------------------
|
|
|
|
DeclareAttribute( "LeftNucleus", IsQuasigroup );
|
|
DeclareAttribute( "RightNucleus", IsQuasigroup );
|
|
DeclareAttribute( "MiddleNucleus", IsQuasigroup );
|
|
DeclareAttribute( "Nuc", IsQuasigroup );
|
|
DeclareSynonymAttr( "NucleusOfLoop", Nuc );
|
|
DeclareSynonymAttr( "NucleusOfQuasigroup", Nuc );
|
|
DeclareAttribute( "Commutant", IsQuasigroup );
|
|
DeclareAttribute( "Center", IsQuasigroup );
|
|
DeclareAttribute( "AssociatorSubloop", IsLoop );
|
|
|
|
#############################################################################
|
|
## EXPONENT
|
|
## -------------------------------------------------------------------------
|
|
|
|
DeclareAttribute( "Exponent", IsLoop );
|
|
|
|
#############################################################################
|
|
## NORMALITY
|
|
## -------------------------------------------------------------------------
|
|
|
|
InParentFOA( "IsNormal", IsLoop, IsLoop, DeclareProperty );
|
|
InParentFOA( "NormalClosure", IsLoop, IsLoop, DeclareAttribute );
|
|
# IsSimple is already declared for groups
|
|
|
|
#############################################################################
|
|
## FACTOR LOOP
|
|
## -------------------------------------------------------------------------
|
|
|
|
DeclareOperation( "FactorLoop", [ IsLoop, IsLoop ] );
|
|
DeclareOperation( "NaturalHomomorphismByNormalSubloop", [ IsLoop, IsLoop ] );
|
|
|
|
#############################################################################
|
|
## NILPOTENCY
|
|
## -------------------------------------------------------------------------
|
|
|
|
DeclareAttribute( "NilpotencyClassOfLoop", IsLoop );
|
|
# IsNilpotent is already declared for groups
|
|
DeclareAttribute( "IsStronglyNilpotent", IsLoop );
|
|
# UpperCentralSeries already declared for groups.
|
|
# LowerCentralSeries already declared for groups.
|
|
|
|
#############################################################################
|
|
## SOLVABILITY
|
|
## -------------------------------------------------------------------------
|
|
|
|
# IsSolvable is already declared for groups
|
|
DeclareAttribute( "DerivedSubloop", IsLoop );
|
|
# DerivedLength already declared for groups
|
|
DeclareAttribute( "FrattiniSubloop", IsLoop );
|
|
# FrattinifactorSize already declared for groups
|