Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  semiring.gd   Sprache: unbekannt

 
#############################################################################
##
##  This file is part of GAP, a system for computational discrete algebra.
##  This file's authors include Thomas Breuer.
##
##  Copyright of GAP belongs to its developers, whose names are too numerous
##  to list here. Please refer to the COPYRIGHT file for details.
##
##  SPDX-License-Identifier: GPL-2.0-or-later
##
##  This file declares the operations for semirings.
##


#############################################################################
##
#P  IsLDistributive( <C> )
##
##  <#GAPDoc Label="IsLDistributive">
##  <ManSection>
##  <Prop Name="IsLDistributive" Arg='C'/>
##
##  <Description>
##  is <K>true</K> if the relation
##  <M>a * ( b + c ) = ( a * b ) + ( a * c )</M>
##  holds for all elements <M>a</M>, <M>b</M>, <M>c</M> in the collection
##  <A>C</A>, and <K>false</K> otherwise.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareProperty( "IsLDistributive", IsRingElementCollection );

InstallSubsetMaintenance( IsLDistributive,
    IsRingElementCollection and IsLDistributive,
    IsRingElementCollection );

InstallFactorMaintenance( IsLDistributive,
    IsRingElementCollection and IsLDistributive,
    IsObject,
    IsRingElementCollection );


#############################################################################
##
#P  IsRDistributive( <C> )
##
##  <#GAPDoc Label="IsRDistributive">
##  <ManSection>
##  <Prop Name="IsRDistributive" Arg='C'/>
##
##  <Description>
##  is <K>true</K> if the relation
##  <M>( a + b ) * c = ( a * c ) + ( b * c )</M>
##  holds for all elements <M>a</M>, <M>b</M>, <M>c</M> in the collection
##  <A>C</A>, and <K>false</K> otherwise.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareProperty( "IsRDistributive", IsRingElementCollection );

InstallSubsetMaintenance( IsRDistributive,
    IsRingElementCollection and IsRDistributive,
    IsRingElementCollection );

InstallFactorMaintenance( IsRDistributive,
    IsRingElementCollection and IsRDistributive,
    IsObject,
    IsRingElementCollection );


#############################################################################
##
#P  IsDistributive( <C> )
##
##  <#GAPDoc Label="IsDistributive">
##  <ManSection>
##  <Prop Name="IsDistributive" Arg='C'/>
##
##  <Description>
##  is <K>true</K> if the collection <A>C</A> is both left and right
##  distributive
##  (see <Ref Prop="IsLDistributive"/>, <Ref Prop="IsRDistributive"/>),
##  and <K>false</K> otherwise.
##  <Example><![CDATA[
##  gap> IsDistributive( Integers );
##  true
##  ]]></Example>
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareSynonymAttr( "IsDistributive", IsLDistributive and IsRDistributive );


#############################################################################
##
#P  IsSemiring( <S> )
##
##  <ManSection>
##  <Prop Name="IsSemiring" Arg='S'/>
##
##  <Description>
##  A <E>semiring</E> in &GAP; is an additive magma (see <Ref Func="IsAdditiveMagma"/>)
##  that is also a magma (see <Ref Func="IsMagma"/>),
##  such that addition <C>+</C> and multiplication <C>*</C> are distributive.
##  <P/>
##  The multiplication need <E>not</E> be associative (see <Ref Func="IsAssociative"/>).
##  For example, a Lie algebra (see <Ref Chap="Lie Algebras"/>) is regarded as a
##  semiring in &GAP;.
##  A semiring need not have an identity and a zero element,
##  see <Ref Prop="IsSemiringWithOne"/> and <Ref Prop="IsSemiringWithZero"/>.
##  </Description>
##  </ManSection>
##
DeclareSynonymAttr( "IsSemiring",
    IsAdditiveMagma and IsMagma and IsDistributive );


#############################################################################
##
#P  IsSemiringWithOne( <S> )
##
##  <ManSection>
##  <Prop Name="IsSemiringWithOne" Arg='S'/>
##
##  <Description>
##  A <E>semiring-with-one</E> in &GAP; is a semiring (see <Ref Prop="IsSemiring"/>)
##  that is also a magma-with-one (see <Ref Func="IsMagmaWithOne"/>).
##  <P/>
##  Note that a semiring-with-one need not contain a zero element
##  (see <Ref Prop="IsSemiringWithZero"/>).
##  </Description>
##  </ManSection>
##
DeclareSynonymAttr( "IsSemiringWithOne",
    IsAdditiveMagma and IsMagmaWithOne and IsDistributive );


#############################################################################
##
#P  IsSemiringWithZero( <S> )
##
##  <ManSection>
##  <Prop Name="IsSemiringWithZero" Arg='S'/>
##
##  <Description>
##  A <E>semiring-with-zero</E> in &GAP; is a semiring (see <Ref Prop="IsSemiring"/>)
##  that is also an additive magma-with-zero (see <Ref Func="IsAdditiveMagmaWithZero"/>).
##  <P/>
##  Note that a semiring-with-zero need not contain an identity element
##  (see <Ref Prop="IsSemiringWithOne"/>).
##  </Description>
##  </ManSection>
##
DeclareSynonymAttr( "IsSemiringWithZero",
    IsAdditiveMagmaWithZero and IsMagma and IsDistributive );


#############################################################################
##
#P  IsSemiringWithOneAndZero( <S> )
##
##  <ManSection>
##  <Prop Name="IsSemiringWithOneAndZero" Arg='S'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareSynonymAttr( "IsSemiringWithOneAndZero",
    IsAdditiveMagmaWithZero and IsMagmaWithOne and IsDistributive );


#############################################################################
##
#A  GeneratorsOfSemiring( <S> )
##
##  <ManSection>
##  <Attr Name="GeneratorsOfSemiring" Arg='S'/>
##
##  <Description>
##  <C>GeneratorsOfSemiring</C> returns a list of elements such that
##  the semiring <A>S</A> is the closure of these elements
##  under addition and multiplication.
##  </Description>
##  </ManSection>
##
DeclareAttribute( "GeneratorsOfSemiring", IsSemiring );


#############################################################################
##
#A  GeneratorsOfSemiringWithOne( <S> )
##
##  <ManSection>
##  <Attr Name="GeneratorsOfSemiringWithOne" Arg='S'/>
##
##  <Description>
##  <C>GeneratorsOfSemiringWithOne</C> returns a list of elements such that
##  the semiring <A>R</A> is the closure of these elements
##  under addition, multiplication, and taking the identity element
##  <C>One( <A>S</A> )</C>.
##  <P/>
##  <A>S</A> itself need <E>not</E> be known to be a semiring-with-one.
##  </Description>
##  </ManSection>
##
DeclareAttribute( "GeneratorsOfSemiringWithOne", IsSemiringWithOne );


#############################################################################
##
#A  GeneratorsOfSemiringWithZero( <S> )
##
##  <ManSection>
##  <Attr Name="GeneratorsOfSemiringWithZero" Arg='S'/>
##
##  <Description>
##  <C>GeneratorsOfSemiringWithZero</C> returns a list of elements such that
##  the semiring <A>S</A> is the closure of these elements
##  under addition, multiplication, and taking the zero element
##  <C>Zero( <A>S</A> )</C>.
##  <P/>
##  <A>S</A> itself need <E>not</E> be known to be a semiring-with-zero.
##  </Description>
##  </ManSection>
##
DeclareAttribute( "GeneratorsOfSemiringWithZero", IsSemiringWithZero );


#############################################################################
##
#A  GeneratorsOfSemiringWithOneAndZero( <S> )
##
##  <ManSection>
##  <Attr Name="GeneratorsOfSemiringWithOneAndZero" Arg='S'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareAttribute( "GeneratorsOfSemiringWithOneAndZero",
    IsSemiringWithOneAndZero );


#############################################################################
##
#A  AsSemiring( <C> )
##
##  <ManSection>
##  <Attr Name="AsSemiring" Arg='C'/>
##
##  <Description>
##  If the elements in the collection <A>C</A> form a semiring
##  then <C>AsSemiring</C> returns this semiring,
##  otherwise <K>fail</K> is returned.
##  </Description>
##  </ManSection>
##
DeclareAttribute( "AsSemiring", IsRingElementCollection );


#############################################################################
##
#A  AsSemiringWithOne( <C> )
##
##  <ManSection>
##  <Attr Name="AsSemiringWithOne" Arg='C'/>
##
##  <Description>
##  If the elements in the collection <A>C</A> form a semiring-with-one
##  then <C>AsSemiringWithOne</C> returns this semiring-with-one,
##  otherwise <K>fail</K> is returned.
##  </Description>
##  </ManSection>
##
DeclareAttribute( "AsSemiringWithOne", IsRingElementCollection );


#############################################################################
##
#A  AsSemiringWithZero( <C> )
##
##  <ManSection>
##  <Attr Name="AsSemiringWithZero" Arg='C'/>
##
##  <Description>
##  If the elements in the collection <A>C</A> form a semiring-with-zero
##  then <C>AsSemiringWithZero</C> returns this semiring-with-zero,
##  otherwise <K>fail</K> is returned.
##  </Description>
##  </ManSection>
##
DeclareAttribute( "AsSemiringWithZero", IsRingElementCollection );


#############################################################################
##
#A  AsSemiringWithOneAndZero( <C> )
##
##  <ManSection>
##  <Attr Name="AsSemiringWithOneAndZero" Arg='C'/>
##
##  <Description>
##  If the elements in the collection <A>C</A> form a semiring-with-one-and-zero
##  then <C>AsSemiringWithOneAndZero</C> returns this semiring-with-one-and-zero,
##  otherwise <K>fail</K> is returned.
##  </Description>
##  </ManSection>
##
DeclareAttribute( "AsSemiringWithOneAndZero", IsRingElementCollection );


#############################################################################
##
#O  ClosureSemiring( <S>, <s> )
#O  ClosureSemiring( <S>, <T> )
##
##  <ManSection>
##  <Oper Name="ClosureSemiring" Arg='S, s'/>
##  <Oper Name="ClosureSemiring" Arg='S, T'/>
##
##  <Description>
##  For a semiring <A>S</A> and either an element <A>s</A> of its elements family
##  or a semiring <A>T</A>,
##  <C>ClosureSemiring</C> returns the semiring generated by both arguments.
##  </Description>
##  </ManSection>
##
DeclareOperation( "ClosureSemiring", [ IsSemiring, IsObject ] );


#############################################################################
##
#O  SemiringByGenerators( <C> ) . . .  semiring gener. by elements in a coll.
##
##  <ManSection>
##  <Oper Name="SemiringByGenerators" Arg='C'/>
##
##  <Description>
##  <C>SemiringByGenerators</C> returns the semiring generated by the elements
##  in the collection <A>C</A>,
##  i. e., the closure of <A>C</A> under addition and multiplication.
##  </Description>
##  </ManSection>
##
DeclareOperation( "SemiringByGenerators", [ IsCollection ] );


#############################################################################
##
#O  SemiringWithOneByGenerators( <C> )
##
##  <ManSection>
##  <Oper Name="SemiringWithOneByGenerators" Arg='C'/>
##
##  <Description>
##  <C>SemiringWithOneByGenerators</C> returns the semiring-with-one generated by
##  the elements in the collection <A>C</A>, i. e., the closure of <A>C</A> under
##  addition, multiplication, and taking the identity of an element.
##  </Description>
##  </ManSection>
##
DeclareOperation( "SemiringWithOneByGenerators", [ IsCollection ] );


#############################################################################
##
#O  SemiringWithZeroByGenerators( <C> )
##
##  <ManSection>
##  <Oper Name="SemiringWithZeroByGenerators" Arg='C'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation( "SemiringWithZeroByGenerators", [ IsCollection ] );


#############################################################################
##
#O  SemiringWithOneAndZeroByGenerators( <C> )
##
##  <ManSection>
##  <Oper Name="SemiringWithOneAndZeroByGenerators" Arg='C'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation( "SemiringWithOneAndZeroByGenerators", [ IsCollection ] );


#############################################################################
##
#F  Semiring( <r> ,<s>, ... )  . . . . . . semiring generated by a collection
#F  Semiring( <C> )  . . . . . . . . . . . semiring generated by a collection
##
##  <ManSection>
##  <Func Name="Semiring" Arg='r ,s, ...'/>
##  <Func Name="Semiring" Arg='C'/>
##
##  <Description>
##  In the first form <C>Semiring</C> returns the smallest semiring that
##  contains all the elements <A>r</A>, <A>s</A>... etc.
##  In the second form <C>Semiring</C> returns the smallest semiring that
##  contains all the elements in the collection <A>C</A>.
##  If any element is not an element of a semiring or if the elements lie in
##  no common semiring an error is raised.
##  </Description>
##  </ManSection>
##
DeclareGlobalFunction( "Semiring" );


#############################################################################
##
#F  SemiringWithOne( <r>, <s>, ... )
#F  SemiringWithOne( <C> )
##
##  <ManSection>
##  <Func Name="SemiringWithOne" Arg='r, s, ...'/>
##  <Func Name="SemiringWithOne" Arg='C'/>
##
##  <Description>
##  In the first form <C>SemiringWithOne</C> returns the smallest
##  semiring-with-one that contains all the elements <A>r</A>, <A>s</A>... etc.
##  In the second form <C>SemiringWithOne</C> returns the smallest
##  semiring-with-one that contains all the elements in the collection <A>C</A>.
##  If any element is not an element of a semiring or if the elements lie in
##  no common semiring an error is raised.
##  </Description>
##  </ManSection>
##
DeclareGlobalFunction( "SemiringWithOne" );


#############################################################################
##
#F  SemiringWithZero( <r>, <s>, ... )
#F  SemiringWithZero( <C> )
##
##  <ManSection>
##  <Func Name="SemiringWithZero" Arg='r, s, ...'/>
##  <Func Name="SemiringWithZero" Arg='C'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareGlobalFunction( "SemiringWithZero" );


#############################################################################
##
#F  SemiringWithOneAndZero( <r>, <s>, ... )
#F  SemiringWithOneAndZero( <C> )
##
##  <ManSection>
##  <Func Name="SemiringWithOneAndZero" Arg='r, s, ...'/>
##  <Func Name="SemiringWithOneAndZero" Arg='C'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareGlobalFunction( "SemiringWithOneAndZero" );


#############################################################################
##
#F  Subsemiring( <S>, <gens> )
#F  SubsemiringNC( <S>, <gens> )
##
##  <ManSection>
##  <Func Name="Subsemiring" Arg='S, gens'/>
##  <Func Name="SubsemiringNC" Arg='S, gens'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareGlobalFunction( "Subsemiring" );
DeclareGlobalFunction( "SubsemiringNC" );


#############################################################################
##
#F  SubsemiringWithOne( <S>, <gens> )
#F  SubsemiringWithOneNC( <S>, <gens> )
##
##  <ManSection>
##  <Func Name="SubsemiringWithOne" Arg='S, gens'/>
##  <Func Name="SubsemiringWithOneNC" Arg='S, gens'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareGlobalFunction( "SubsemiringWithOne" );
DeclareGlobalFunction( "SubsemiringWithOneNC" );


#############################################################################
##
#F  SubsemiringWithZero( <S>, <gens> )
#F  SubsemiringWithZeroNC( <S>, <gens> )
##
##  <ManSection>
##  <Func Name="SubsemiringWithZero" Arg='S, gens'/>
##  <Func Name="SubsemiringWithZeroNC" Arg='S, gens'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareGlobalFunction( "SubsemiringWithZero" );
DeclareGlobalFunction( "SubsemiringWithZeroNC" );


#############################################################################
##
#F  SubsemiringWithOneAndZero( <S>, <gens> )
#F  SubsemiringWithOneAndZeroNC( <S>, <gens> )
##
##  <ManSection>
##  <Func Name="SubsemiringWithOneAndZero" Arg='S, gens'/>
##  <Func Name="SubsemiringWithOneAndZeroNC" Arg='S, gens'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareGlobalFunction( "SubsemiringWithOneAndZero" );
DeclareGlobalFunction( "SubsemiringWithOneAndZeroNC" );


#############################################################################
##
#A  CentralIdempotentsOfSemiring( <S> )
##
##  <ManSection>
##  <Attr Name="CentralIdempotentsOfSemiring" Arg='S'/>
##
##  <Description>
##  For a semiring <A>S</A>, this function returns
##  a list of central primitive idempotents such that their sum is
##  the identity element of <A>S</A>.
##  Therefore <A>S</A> is required to have an identity.
##  </Description>
##  </ManSection>
##
DeclareAttribute( "CentralIdempotentsOfSemiring", IsSemiring );

[ Dauer der Verarbeitung: 0.20 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge