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############################################################################# ## #W addmagma.gd GAP library Thomas Breuer ## ## #Y Copyright (C) 1996, Lehrstuhl D für Mathematik, RWTH Aachen, Germany #Y (C) 1998 School Math and Comp. Sci., University of St Andrews, Scotland #Y Copyright (C) 2002 The GAP Group ## ## This file declares the operations for additive magmas, ## Note that the meaning of generators for the three categories ## additive magma, additive-magma-with-zero, ## and additive-magma-with-inverses is different. ## ############################################################################# ## #C IsNearAdditiveMagma( <obj> ) ## ## <#GAPDoc Label="IsNearAdditiveMagma"> ## <ManSection> ## <Filt Name="IsNearAdditiveMagma" Arg='obj' Type='Category'/> ## ## <Description> ## A <E>near-additive magma</E> in &GAP; is a domain <M>A</M> ## with an associative but not necessarily commutative addition ## <C>+</C><M>: A \times A \rightarrow A</M>. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareCategory( "IsNearAdditiveMagma", IsDomain and IsNearAdditiveElementCollection ); ############################################################################# ## #C IsNearAdditiveMagmaWithZero( <obj> ) ## ## <#GAPDoc Label="IsNearAdditiveMagmaWithZero"> ## <ManSection> ## <Filt Name="IsNearAdditiveMagmaWithZero" Arg='obj' Type='Category'/> ## ## <Description> ## A <E>near-additive magma-with-zero</E> in &GAP; is a near-additive magma ## <M>A</M> with an operation <C>0*</C> (or <Ref Func="Zero"/>) ## that yields the zero element of <M>A</M>. ## <P/> ## So a near-additive magma-with-zero <A>A</A> does always contain a unique ## additively neutral element <M>z</M>, ## i.e., <M>z + a = a = a + z</M> holds for all <M>a \in A</M> ## (see <Ref Func="AdditiveNeutralElement"/>). ## This zero element <M>z</M> can be computed with the operation ## <Ref Func="Zero"/>, by applying this function to <M>A</M> or to any ## element <M>a</M> in <M>A</M>. ## The zero element can be computed also as <C>0 * </C><M>a</M>, ## for any <M>a</M> in <M>A</M>. ## <P/> ## <E>Note</E> that it may happen that ## a near-additive magma containing a zero does <E>not</E> lie in the ## category <Ref Func="IsNearAdditiveMagmaWithZero"/> ## (see <Ref Sect="Domain Categories"/>). ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareCategory( "IsNearAdditiveMagmaWithZero", IsNearAdditiveMagma and IsNearAdditiveElementWithZeroCollection ); ############################################################################# ## #C IsNearAdditiveGroup( <obj> ) #C IsNearAdditiveMagmaWithInverses( <obj> ) ## ## <#GAPDoc Label="IsNearAdditiveGroup"> ## <ManSection> ## <Filt Name="IsNearAdditiveGroup" Arg='obj' Type='Category'/> ## <Filt Name="IsNearAdditiveMagmaWithInverses" Arg='obj' Type='Category'/> ## ## <Description> ## A <E>near-additive group</E> in &GAP; is a near-additive magma-with-zero ## <M>A</M> with an operation <C>-1*</C><M>: A \rightarrow A</M> that maps ## each element <M>a</M> of <M>A</M> to its additive inverse ## <C>-1*</C><M>a</M> (or <C>AdditiveInverse( </C><A>a</A><C> )</C>, ## see <Ref Func="AdditiveInverse"/>). ## <P/> ## The addition <C>+</C> of <M>A</M> is assumed to be associative, ## so a near-additive group is not more than a ## <E>near-additive magma-with-inverses</E>. ## <Ref Func="IsNearAdditiveMagmaWithInverses"/> is just a synonym for ## <Ref Func="IsNearAdditiveGroup"/>, ## and can be used alternatively in all function names involving the string ## <C>"NearAdditiveGroup"</C>. ## <P/> ## Note that not every trivial near-additive magma is a near-additive ## magma-with-zero, ## but every trivial near-additive magma-with-zero is a near-additive group. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareCategory( "IsNearAdditiveGroup", IsNearAdditiveMagmaWithZero and IsNearAdditiveElementWithInverseCollection ); DeclareSynonym( "IsNearAdditiveMagmaWithInverses", IsNearAdditiveGroup ); ############################################################################# ## #P IsAdditivelyCommutative( <A> ) ## ## <#GAPDoc Label="IsAdditivelyCommutative"> ## <ManSection> ## <Prop Name="IsAdditivelyCommutative" Arg='A'/> ## ## <Description> ## A near-additive magma <A>A</A> in &GAP; is <E>additively commutative</E> ## if for all elements <M>a, b \in <A>A</A></M> the equality ## <M>a + b = b + a</M> holds. ## <P/> ## Note that the commutativity of the <E>multiplication</E> <C>*</C> in a ## multiplicative structure can be tested with <Ref Func="IsCommutative"/>. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsAdditivelyCommutative", IsNearAdditiveMagma ); InstallTrueMethod( IsAdditivelyCommutative, IsAdditivelyCommutativeElementCollection and IsMagma ); InstallSubsetMaintenance( IsAdditivelyCommutative, IsNearAdditiveMagma and IsAdditivelyCommutative, IsNearAdditiveMagma ); InstallFactorMaintenance( IsAdditivelyCommutative, IsNearAdditiveMagma and IsAdditivelyCommutative, IsObject, IsNearAdditiveMagma ); InstallTrueMethod( IsAdditivelyCommutative, IsNearAdditiveMagma and IsTrivial ); InstallTrueMethod( IsAdditiveElementCollection, IsNearAdditiveElementCollection and IsAdditivelyCommutative ); InstallTrueMethod( IsAdditiveElementWithZeroCollection, IsNearAdditiveElementWithZeroCollection and IsAdditivelyCommutative ); InstallTrueMethod( IsAdditiveElementWithInverseCollection, IsNearAdditiveElementWithInverseCollection and IsAdditivelyCommutative ); ############################################################################# ## #C IsAdditiveMagma( <obj> ) ## ## <#GAPDoc Label="IsAdditiveMagma"> ## <ManSection> ## <Filt Name="IsAdditiveMagma" Arg='obj' Type='Category'/> ## ## <Description> ## An <E>additive magma</E> in &GAP; is a domain <M>A</M> with an ## associative and commutative addition ## <C>+</C><M>: A \times A \rightarrow A</M>, ## see <Ref Func="IsNearAdditiveMagma"/> and ## <Ref Func="IsAdditivelyCommutative"/>. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareSynonym( "IsAdditiveMagma", IsNearAdditiveMagma and IsAdditivelyCommutative ); ############################################################################# ## #C IsAdditiveMagmaWithZero( <obj> ) ## ## <#GAPDoc Label="IsAdditiveMagmaWithZero"> ## <ManSection> ## <Filt Name="IsAdditiveMagmaWithZero" Arg='obj' Type='Category'/> ## ## <Description> ## An <E>additive magma-with-zero</E> in &GAP; is an additive magma <M>A</M> ## (see <Ref Func="IsAdditiveMagma"/> with an operation <C>0*</C> ## (or <Ref Func="Zero"/>) that yields the zero of <M>A</M>. ## <P/> ## So an additive magma-with-zero <M>A</M> does always contain a unique ## additively neutral element <M>z</M>, i.e., ## <M>z + a = a = a + z</M> holds for all <M>a \in A</M> ## (see <Ref Func="AdditiveNeutralElement"/>). ## This element <M>z</M> can be computed with the operation ## <Ref Func="Zero"/> as <C>Zero( </C><M>A</M><C> )</C>, ## and <M>z</M> is also equal to <C>Zero( </C><M>a</M><C> )</C> and to ## <C>0*</C><M>a</M> for each element <M>a</M> in <M>A</M>. ## <P/> ## <E>Note</E> that it may happen that ## an additive magma containing a zero does <E>not</E> lie in the category ## <Ref Func="IsAdditiveMagmaWithZero"/> ## (see <Ref Sect="Domain Categories"/>). ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareSynonym( "IsAdditiveMagmaWithZero", IsNearAdditiveMagmaWithZero and IsAdditiveMagma ); ############################################################################# ## #C IsAdditiveGroup( <obj> ) #C IsAdditiveMagmaWithInverses( <obj> ) ## ## <#GAPDoc Label="IsAdditiveGroup"> ## <ManSection> ## <Filt Name="IsAdditiveGroup" Arg='obj' Type='Category'/> ## <Filt Name="IsAdditiveMagmaWithInverses" Arg='obj' Type='Category'/> ## ## <Description> ## An <E>additive group</E> in &GAP; is an additive magma-with-zero <M>A</M> ## with an operation <C>-1*</C><M>: A \rightarrow A</M> that maps ## each element <M>a</M> of <M>A</M> to its additive inverse ## <C>-1*</C><M>a</M> (or <C>AdditiveInverse( </C><M>a</M><C> )</C>, ## see <Ref Func="AdditiveInverse"/>). ## <P/> ## The addition <C>+</C> of <M>A</M> is assumed to be commutative and ## associative, so an additive group is not more than an ## <E>additive magma-with-inverses</E>. ## <Ref Func="IsAdditiveMagmaWithInverses"/> is just a synonym for ## <Ref Func="IsAdditiveGroup"/>, ## and can be used alternatively in all function names involving the string ## <C>"AdditiveGroup"</C>. ## <P/> ## Note that not every trivial additive magma is an additive ## magma-with-zero, ## but every trivial additive magma-with-zero is an additive group. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareSynonym( "IsAdditiveGroup", IsNearAdditiveGroup and IsAdditiveMagma ); DeclareSynonym( "IsAdditiveMagmaWithInverses", IsAdditiveGroup ); ############################################################################# ## #A Zero( <D> ) ## ## (see the description in `arith.gd') ## DeclareAttribute( "Zero", IsDomain and IsAdditiveElementWithZeroCollection ); ############################################################################# ## #F NearAdditiveMagma( [<Fam>, ]<gens> ) ## ## <#GAPDoc Label="NearAdditiveMagma"> ## <ManSection> ## <Func Name="NearAdditiveMagma" Arg='[Fam, ]gens'/> ## ## <Description> ## returns the (near-)additive magma <M>A</M> that is generated by the ## elements in the list <A>gens</A>, that is, ## the closure of <A>gens</A> under addition <C>+</C>. ## The family <A>Fam</A> of <M>A</M> can be entered as first argument; ## this is obligatory if <A>gens</A> is empty ## (and hence also <M>A</M> is empty). ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareGlobalFunction( "NearAdditiveMagma" ); DeclareSynonym( "AdditiveMagma", NearAdditiveMagma ); ############################################################################# ## #F NearAdditiveMagmaWithZero( [<Fam>, ]<gens> ) ## ## <#GAPDoc Label="NearAdditiveMagmaWithZero"> ## <ManSection> ## <Func Name="NearAdditiveMagmaWithZero" Arg='[Fam, ]gens'/> ## ## <Description> ## returns the (near-)additive magma-with-zero <M>A</M> that is generated by ## the elements in the list <A>gens</A>, that is, ## the closure of <A>gens</A> under addition <C>+</C> and ## <Ref Func="Zero"/>. ## The family <A>Fam</A> of <M>A</M> can be entered as first argument; ## this is obligatory if <A>gens</A> is empty ## (and hence <M>A</M> is trivial). ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareGlobalFunction( "NearAdditiveMagmaWithZero" ); DeclareSynonym( "AdditiveMagmaWithZero", NearAdditiveMagmaWithZero ); ############################################################################# ## #F NearAdditiveGroup( [<Fam>, ]<gens> ) ## ## <#GAPDoc Label="NearAdditiveGroup"> ## <ManSection> ## <Func Name="NearAdditiveGroup" Arg='[Fam, ]gens'/> ## ## <Description> ## returns the (near-)additive group <M>A</M> that is generated by ## the elements in the list <A>gens</A>, that is, ## the closure of <A>gens</A> under addition <C>+</C>, <Ref Func="Zero"/>, ## and <Ref Func="AdditiveInverse"/>. ## The family <A>Fam</A> of <M>A</M> can be entered as first argument; ## this is obligatory if <A>gens</A> is empty ## (and hence <M>A</M> is trivial). ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareGlobalFunction( "NearAdditiveGroup" ); DeclareSynonym( "AdditiveGroup", NearAdditiveGroup ); DeclareSynonym( "NearAdditiveMagmaWithInverses", NearAdditiveGroup ); DeclareSynonym( "AdditiveMagmaWithInverses", NearAdditiveGroup ); ############################################################################# ## #O NearAdditiveMagmaByGenerators( [<Fam>, ]<gens> ) ## ## <#GAPDoc Label="NearAdditiveMagmaByGenerators"> ## <ManSection> ## <Oper Name="NearAdditiveMagmaByGenerators" Arg='[Fam, ]gens'/> ## ## <Description> ## An underlying operation for <Ref Func="NearAdditiveMagma"/>. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareOperation( "NearAdditiveMagmaByGenerators", [ IsCollection ] ); DeclareSynonym( "AdditiveMagmaByGenerators", NearAdditiveMagmaByGenerators ); ############################################################################# ## #O NearAdditiveMagmaWithZeroByGenerators( [<Fam>, ]<gens> ) ## ## <#GAPDoc Label="NearAdditiveMagmaWithZeroByGenerators"> ## <ManSection> ## <Oper Name="NearAdditiveMagmaWithZeroByGenerators" Arg='[Fam, ]gens'/> ## ## <Description> ## An underlying operation for <Ref Func="NearAdditiveMagmaWithZero"/>. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareOperation( "NearAdditiveMagmaWithZeroByGenerators", [ IsCollection ] ); DeclareSynonym( "AdditiveMagmaWithZeroByGenerators", NearAdditiveMagmaWithZeroByGenerators ); ############################################################################# ## #O NearAdditiveGroupByGenerators( [<Fam>, ]<gens> ) ## ## <#GAPDoc Label="NearAdditiveGroupByGenerators"> ## <ManSection> ## <Oper Name="NearAdditiveGroupByGenerators" Arg='[Fam, ]gens'/> ## ## <Description> ## An underlying operation for <Ref Func="NearAdditiveGroup"/>. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareOperation( "NearAdditiveGroupByGenerators", [ IsCollection ] ); DeclareSynonym( "AdditiveGroupByGenerators", NearAdditiveGroupByGenerators ); DeclareSynonym( "NearAdditiveMagmaWithInversesByGenerators", NearAdditiveGroupByGenerators ); DeclareSynonym( "AdditiveMagmaWithInversesByGenerators", NearAdditiveGroupByGenerators ); ############################################################################# ## #F SubnearAdditiveMagma( <D>, <gens> ) #F SubnearAdditiveMagma( <D>, <gens> ) #F SubadditiveMagmaNC( <D>, <gens> ) #F SubadditiveMagmaNC( <D>, <gens> ) ## ## <#GAPDoc Label="SubnearAdditiveMagma"> ## <ManSection> ## <Func Name="SubnearAdditiveMagma" Arg='D, gens'/> ## <Func Name="SubadditiveMagma" Arg='D, gens'/> ## <Func Name="SubnearAdditiveMagmaNC" Arg='D, gens'/> ## <Func Name="SubadditiveMagmaNC" Arg='D, gens'/> ## ## <Description> ## <Ref Func="SubnearAdditiveMagma"/> returns the near-additive magma ## generated by the elements in the list <A>gens</A>, ## with parent the domain <A>D</A>. ## <Ref Func="SubnearAdditiveMagmaNC"/> does the same, except that it ## does not check whether the elements of <A>gens</A> lie in <A>D</A>. ## <P/> ## <Ref Func="SubadditiveMagma"/> and <Ref Func="SubadditiveMagmaNC"/> ## are just synonyms of these functions. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareGlobalFunction( "SubnearAdditiveMagma" ); DeclareGlobalFunction( "SubnearAdditiveMagmaNC" ); DeclareSynonym( "SubadditiveMagma", SubnearAdditiveMagma ); DeclareSynonym( "SubadditiveMagmaNC", SubnearAdditiveMagmaNC ); ############################################################################# ## #F SubnearAdditiveMagmaWithZero( <D>, <gens> ) #F SubnearAdditiveMagmaWithZeroNC( <D>, <gens> ) ## ## <#GAPDoc Label="SubnearAdditiveMagmaWithZero"> ## <ManSection> ## <Func Name="SubnearAdditiveMagmaWithZero" Arg='D, gens'/> ## <Func Name="SubadditiveMagmaWithZero" Arg='D, gens'/> ## <Func Name="SubnearAdditiveMagmaWithZeroNC" Arg='D, gens'/> ## <Func Name="SubadditiveMagmaWithZeroNC" Arg='D, gens'/> ## ## <Description> ## <Ref Func="SubnearAdditiveMagmaWithZero"/> returns the near-additive ## magma-with-zero generated by the elements in the list <A>gens</A>, ## with parent the domain <A>D</A>. ## <Ref Func="SubnearAdditiveMagmaWithZeroNC"/> does the same, except that ## it does not check whether the elements of <A>gens</A> lie in <A>D</A>. ## <P/> ## <Ref Func="SubadditiveMagmaWithZero"/> and ## <Ref Func="SubadditiveMagmaWithZeroNC"/> ## are just synonyms of these functions. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareGlobalFunction( "SubnearAdditiveMagmaWithZero" ); DeclareGlobalFunction( "SubnearAdditiveMagmaWithZeroNC" ); DeclareSynonym( "SubadditiveMagmaWithZero", SubnearAdditiveMagmaWithZero ); DeclareSynonym( "SubadditiveMagmaWithZeroNC", SubnearAdditiveMagmaWithZeroNC ); ############################################################################# ## #F SubnearAdditiveGroup( <D>, <gens> ) #F SubnearAdditiveGroupNC( <D>, <gens> ) ## ## <#GAPDoc Label="SubnearAdditiveGroup"> ## <ManSection> ## <Func Name="SubnearAdditiveGroup" Arg='D, gens'/> ## <Func Name="SubadditiveGroup" Arg='D, gens'/> ## <Func Name="SubnearAdditiveGroupNC" Arg='D, gens'/> ## <Func Name="SubadditiveGroupNC" Arg='D, gens'/> ## ## <Description> ## <Ref Func="SubnearAdditiveGroup"/> returns the near-additive group ## generated by the elements in the list <A>gens</A>, ## with parent the domain <A>D</A>. ## <Ref Func="SubadditiveGroupNC"/> does the same, except that it does not ## check whether the elements of <A>gens</A> lie in <A>D</A>. ## <P/> ## <Ref Func="SubadditiveGroup"/> and <Ref Func="SubadditiveGroupNC"/> ## are just synonyms of these functions. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareGlobalFunction( "SubnearAdditiveGroup" ); DeclareGlobalFunction( "SubnearAdditiveGroupNC" ); DeclareSynonym( "SubadditiveGroup", SubnearAdditiveGroup ); DeclareSynonym( "SubnearAdditiveMagmaWithInverses", SubnearAdditiveGroup ); DeclareSynonym( "SubadditiveMagmaWithInverses", SubnearAdditiveGroup ); DeclareSynonym( "SubadditiveGroupNC", SubnearAdditiveGroupNC ); DeclareSynonym( "SubnearAdditiveMagmaWithInversesNC", SubnearAdditiveGroupNC ); DeclareSynonym( "SubadditiveMagmaWithInversesNC", SubnearAdditiveGroupNC ); ############################################################################# ## #A GeneratorsOfNearAdditiveMagma( <A> ) #A GeneratorsOfAdditiveMagma( <A> ) ## ## <#GAPDoc Label="GeneratorsOfNearAdditiveMagma"> ## <ManSection> ## <Attr Name="GeneratorsOfNearAdditiveMagma" Arg='A'/> ## <Attr Name="GeneratorsOfAdditiveMagma" Arg='A'/> ## ## <Description> ## is a list of elements of the near-additive magma <A>A</A> ## that generates <A>A</A> as a near-additive magma, ## that is, the closure of this list under addition is <A>A</A>. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "GeneratorsOfNearAdditiveMagma", IsNearAdditiveMagma ); DeclareSynonymAttr( "GeneratorsOfAdditiveMagma", GeneratorsOfNearAdditiveMagma ); ############################################################################# ## #A GeneratorsOfNearAdditiveMagmaWithZero( <A> ) #A GeneratorsOfAdditiveMagmaWithZero( <A> ) ## ## <#GAPDoc Label="GeneratorsOfNearAdditiveMagmaWithZero"> ## <ManSection> ## <Attr Name="GeneratorsOfNearAdditiveMagmaWithZero" Arg='A'/> ## <Attr Name="GeneratorsOfAdditiveMagmaWithZero" Arg='A'/> ## ## <Description> ## is a list of elements of the near-additive magma-with-zero ## <A>A</A> that generates <A>A</A> as a near-additive magma-with-zero, ## that is, ## the closure of this list under addition and <Ref Func="Zero"/> ## is <A>A</A>. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "GeneratorsOfNearAdditiveMagmaWithZero", IsNearAdditiveMagmaWithZero ); DeclareSynonymAttr( "GeneratorsOfAdditiveMagmaWithZero", GeneratorsOfNearAdditiveMagmaWithZero ); ############################################################################# ## #A GeneratorsOfNearAdditiveGroup( <A> ) #A GeneratorsOfAdditiveGroup( <A> ) ## ## <#GAPDoc Label="GeneratorsOfNearAdditiveGroup"> ## <ManSection> ## <Attr Name="GeneratorsOfNearAdditiveGroup" Arg='A'/> ## <Attr Name="GeneratorsOfAdditiveGroup" Arg='A'/> ## ## <Description> ## is a list of elements of the near-additive group <A>A</A> ## that generates <A>A</A> as a near-additive group, ## that is, the closure of this list under addition, ## taking the zero element, and taking additive inverses ## (see <Ref Func="AdditiveInverse"/>) is <A>A</A>. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "GeneratorsOfNearAdditiveGroup", IsNearAdditiveGroup ); DeclareSynonymAttr( "GeneratorsOfAdditiveMagmaWithInverses", GeneratorsOfNearAdditiveGroup ); DeclareSynonymAttr( "GeneratorsOfNearAdditiveMagmaWithInverses", GeneratorsOfNearAdditiveGroup ); DeclareSynonymAttr( "GeneratorsOfAdditiveGroup", GeneratorsOfNearAdditiveGroup ); ############################################################################# ## #A TrivialSubnearAdditiveMagmaWithZero( <A> ) ## ## <#GAPDoc Label="TrivialSubnearAdditiveMagmaWithZero"> ## <ManSection> ## <Attr Name="TrivialSubnearAdditiveMagmaWithZero" Arg='A'/> ## ## <Description> ## is the additive magma-with-zero that has the zero of ## the near-additive magma-with-zero <A>A</A> as its only element. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "TrivialSubnearAdditiveMagmaWithZero", IsNearAdditiveMagmaWithZero ); DeclareSynonymAttr( "TrivialSubadditiveMagmaWithZero", TrivialSubnearAdditiveMagmaWithZero ); ############################################################################# ## #A AdditiveNeutralElement( <A> ) ## ## <#GAPDoc Label="AdditiveNeutralElement"> ## <ManSection> ## <Attr Name="AdditiveNeutralElement" Arg='A'/> ## ## <Description> ## returns the element <M>z</M> in the near-additive magma <A>A</A> ## with the property that <M>z + a = a = a + z</M> holds for all ## <M>a \in</M> <A>A</A>, if such an element exists. ## Otherwise <K>fail</K> is returned. ## <P/> ## A near-additive magma that is not a near-additive magma-with-zero ## can have an additive neutral element <M>z</M>; ## in this case, <M>z</M> <E>cannot</E> be obtained as ## <C>Zero( <A>A</A> )</C> or as <C>0*</C><M>a</M> ## for an element <M>a</M> in <A>A</A>, see <Ref Func="Zero"/>. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "AdditiveNeutralElement", IsNearAdditiveMagma ); ############################################################################# ## #O ClosureNearAdditiveGroup( <A>, <a> ) . . for near-add. group and element #O ClosureNearAdditiveGroup( <A>, <B> ) . . . . . for two near-add. groups ## ## <#GAPDoc Label="ClosureNearAdditiveGroup"> ## <ManSection> ## <Heading>ClosureNearAdditiveGroup</Heading> ## <Oper Name="ClosureNearAdditiveGroup" Arg='A, a' ## Label="for a near-additive group and an element"/> ## <Oper Name="ClosureNearAdditiveGroup" Arg='A, B' ## Label="for two near-additive groups"/> ## ## <Description> ## returns the closure of the near-additive magma <A>A</A> with the element ## <A>a</A> or with the near-additive magma <A>B</A>, w.r.t. addition, ## taking the zero element, and taking additive inverses. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareOperation( "ClosureNearAdditiveGroup", [ IsNearAdditiveGroup, IsNearAdditiveElement ] ); DeclareSynonym( "ClosureNearAdditiveMagmaWithInverses", ClosureNearAdditiveGroup ); DeclareSynonym( "ClosureAdditiveGroup", ClosureNearAdditiveGroup ); DeclareSynonym( "ClosureAdditiveMagmaWithInverses", ClosureNearAdditiveGroup ); ############################################################################# ## #E