Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/lib/   (GAP Algebra Version 4.15.1©)  Datei vom 18.9.2025 mit Größe 12 kB image not shown  

Quelle  rwspcclt.gd   Sprache: Shell

 

#############################################################################
##
##  This file is part of GAP, a system for computational discrete algebra.
##  This file's authors include Frank Celler.
##
##  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 contains operations for  polycyclic rewriting systems, with  or
##  without torsion free  generators.   There are  two  subcategories, namely
##  polycyclic rewriting  systems defined by a  power/commutator presentation
##  and rws defined by a power/conjugate presentation.
##
##  Any  implementation  of  a collector must   at  least  specify  a  way to
##  construct such a collector and must implement  methods for `SetPower' and
##  `CollectWordOrFail'.    A  power/commutator collector must also implement
##  `SetCommutator',    a  power/conjugate  collector   `SetConjugate'.   The
##  operation  `CollectWordOrFail'   allows a  collector to return  `fail' if
##  the     given   stacks    were too   small,    however     in  this  case
##  `CollectWordOrFail'  is  responsible  for    enlarging the  stacks.   The
##  default method for `CollectWord' uses `CollectWordOrFail' and copy.
##
##  The default method for `ReducedForm' uses `CollectWordOrFail' in order to
##  compute the reduced form.
##
##  Polycyclic rewriting systems   assume that the  underlying structures are
##  groups, therefore they have the feature `IsBuiltFromGroup'.
##
##  Polycyclic rewriting systems must also specify how to construct a word in
##  the underlying   free group given an  exponent  vector.  The operation is
##  `ObjExponents'.
##
##  As in most applications  you will start with an  empty collector, fill in
##  most  of   the commutators  and   powers, and  then start  collecting,  a
##  collector can be  up    to  date  or out    of  date.  If   the   feature
##  `IsUpToDatePolycyclicCollector'  is present,  then  `CollectWord' can  be
##  used.  Otherwise `UpdatePolycyclicCollector'  must be called before using
##  `CollectWord'.
##
##  WARNING: you     must    *never* ever   install   an   implications   for
##  `IsUpToDatePolycyclicCollector' because it is reset when the presentation
##  is changed.
##

#############################################################################
##
#C  IsPolycyclicCollector( <obj> )
##
##  <ManSection>
##  <Filt Name="IsPolycyclicCollector" Arg='obj' Type='Category'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareCategory(
    "IsPolycyclicCollector",
    IsRewritingSystem and IsBuiltFromGroup );


#############################################################################
##
#C  IsPowerConjugateCollector( <obj> )
##
##  <ManSection>
##  <Filt Name="IsPowerConjugateCollector" Arg='obj' Type='Category'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareCategory(
    "IsPowerConjugateCollector",
    IsPolycyclicCollector );


#############################################################################
##
#C  IsPowerCommutatorCollector( <obj> )
##
##  <ManSection>
##  <Filt Name="IsPowerCommutatorCollector" Arg='obj' Type='Category'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareCategory(
    "IsPowerCommutatorCollector",
    IsPolycyclicCollector );


#############################################################################
##
#A  RelativeOrders( <col> )
##
##  <ManSection>
##  <Attr Name="RelativeOrders" Arg='col'/>
##
##  <Description>
##  The list of relative orders corresponding to <A>col</A>.
##  </Description>
##  </ManSection>
##
DeclareAttribute( "RelativeOrders", IsRewritingSystem );


#############################################################################
##
#P  IsUpToDatePolycyclicCollector( <col> )
##
DeclareFilter("IsUpToDatePolycyclicCollector");


#############################################################################
##
#O  OutdatePolycyclicCollector( <col> )
##
##  <ManSection>
##  <Oper Name="OutdatePolycyclicCollector" Arg='col'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
    "OutdatePolycyclicCollector",
    [ IsPolycyclicCollector and IsMutable ] );


#############################################################################
##
#O  UpdatePolycyclicCollector( <col> )
##
##  <ManSection>
##  <Oper Name="UpdatePolycyclicCollector" Arg='col'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
    "UpdatePolycyclicCollector",
    [ IsPolycyclicCollector ] );


#############################################################################
##
#O  CollectWord( <col>, <v>, <w> )
##
DeclareOperation(
    "CollectWord",
    [ IsPolycyclicCollector, IsList, IsObject ] );


#############################################################################
##
#O  CollectWordOrFail( <col>, <v>, <w> )
##
##  <ManSection>
##  <Oper Name="CollectWordOrFail" Arg='col, v, w'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
    "CollectWordOrFail",
    [ IsPolycyclicCollector, IsList, IsObject ] );


#############################################################################
##
#O  NonTrivialRightHandSides( <col> )
##
##  <ManSection>
##  <Oper Name="NonTrivialRightHandSides" Arg='col'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
    "NonTrivialRightHandSides",
    [ IsPolycyclicCollector ] );


#############################################################################
##
#O  ObjByExponents( <col>, <data> )
##
##  <ManSection>
##  <Oper Name="ObjByExponents" Arg='col, data'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
    "ObjByExponents",
    [ IsPolycyclicCollector, IsObject ] );


#############################################################################
##
#O  SetCommutator( <col>, <i>, <j>, <rhs> )
##
##  <ManSection>
##  <Oper Name="SetCommutator" Arg='col, i, j, rhs'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
    "SetCommutator",
    [ IsPolycyclicCollector and IsMutable, IsObject, IsObject, IsObject ] );

DeclareOperation(
    "SetCommutatorNC",
    [ IsPolycyclicCollector and IsMutable, IsObject, IsObject, IsObject ] );

DeclareOperation(
    "SetCommutatorANC",
    [ IsPolycyclicCollector and IsMutable, IsObject, IsObject, IsObject ] );


#############################################################################
##
#O  SetConjugate( <col>, <i>, <j>, <rhs> )
##
##  <ManSection>
##  <Oper Name="SetConjugate" Arg='col, i, j, rhs'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
    "SetConjugate",
    [ IsPolycyclicCollector and IsMutable, IsObject, IsObject, IsObject ] );

DeclareOperation(
    "SetConjugateNC",
    [ IsPolycyclicCollector and IsMutable, IsObject, IsObject, IsObject ] );

DeclareOperation(
    "SetConjugateANC",
    [ IsPolycyclicCollector and IsMutable, IsObject, IsObject, IsObject ] );


#############################################################################
##
#O  SetPower( <col>, <i>, <rhs> )
##
##  <ManSection>
##  <Oper Name="SetPower" Arg='col, i, rhs'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
    "SetPower",
    [ IsPolycyclicCollector and IsMutable, IsObject, IsObject ] );

DeclareOperation(
    "SetPowerNC",
    [ IsPolycyclicCollector and IsMutable, IsObject, IsObject ] );

DeclareOperation(
    "SetPowerANC",
    [ IsPolycyclicCollector and IsMutable, IsObject, IsObject ] );


#############################################################################
##
#O  SetRelativeOrder( <col>, <i>, <order> )
##
##  <ManSection>
##  <Oper Name="SetRelativeOrder" Arg='col, i, order'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
    "SetRelativeOrder",
    [ IsPolycyclicCollector and IsMutable, IsObject, IsObject ] );

DeclareOperation(
    "SetRelativeOrderNC",
    [ IsPolycyclicCollector and IsMutable, IsObject, IsObject ] );


#############################################################################
##
#O  GetCommutatorNC( <col>, <h>, <g> )
##
##  <ManSection>
##  <Oper Name="GetCommutatorNC" Arg='col, h, g'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
        "GetCommutatorNC",
        [ IsPolycyclicCollector, IsObject, IsObject ] );

#############################################################################
##
#O  GetConjugateNC( <col>, <h>, <g> )
##
##  <ManSection>
##  <Oper Name="GetConjugateNC" Arg='col, h, g'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
        "GetConjugateNC",
        [ IsPolycyclicCollector, IsObject, IsObject ] );

#############################################################################
##
#O  GetPowerNC( <col>, <g> )
##
##  <ManSection>
##  <Oper Name="GetPowerNC" Arg='col, g'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
        "GetPowerNC",
        [ IsPolycyclicCollector, IsObject ] );

#############################################################################
##
#O  SingleCollector( <fgrp>, <orders> )
##
##  creates a single collector to the free group <fgrp> and the relative
##  orders <orders>.
##
DeclareOperation(
    "SingleCollector",
    [ IsObject, IsObject ] );


#############################################################################
##
#O  SingleCollectorByGenerators( <fam>, <gens>, <orders> )
##
##  <ManSection>
##  <Oper Name="SingleCollectorByGenerators" Arg='fam, gens, orders'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
    "SingleCollectorByGenerators",
    [ IsFamily, IsList, IsList ] );
#T 1997/01/16 fceller was old `NewConstructor'

#############################################################################
##
#O  CombinatorialCollector( <fgrp>, <orders> )
##
##  <ManSection>
##  <Oper Name="CombinatorialCollector" Arg='fgrp, orders'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
    "CombinatorialCollector",
    [ IsObject, IsObject ] );


#############################################################################
##
#O  CombinatorialCollectorByGenerators( <fam>, <gens>, <orders> )
##
##  <ManSection>
##  <Oper Name="CombinatorialCollectorByGenerators" Arg='fam, gens, orders'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
    "CombinatorialCollectorByGenerators",
    [ IsFamily, IsList, IsList ] );


#############################################################################
##
#O  DeepThoughtCollector( <fgrp>, <orders> )
##
##  <ManSection>
##  <Oper Name="DeepThoughtCollector" Arg='fgrp, orders'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
    "DeepThoughtCollector",
    [ IsObject, IsObject ] );


#############################################################################
##
#O  DeepThoughtCollectorByGenerators( <fam>, <gens>, <orders> )
##
##  <ManSection>
##  <Oper Name="DeepThoughtCollectorByGenerators" Arg='fam, gens, orders'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation(
    "DeepThoughtCollectorByGenerators",
    [ IsFamily, IsList, IsList ] );


#############################################################################
##
#O  EvaluateOverlapCBA  . . . . . . . . . . . . . evaluate a consistency test
#O  EvaluateOverlapBNA  . . . . . . . . . . . . . evaluate a consistency test
#O  EvaluateOverlapBAN  . . . . . . . . . . . . . evaluate a consistency test
#O  EvaluateOverlapANA  . . . . . . . . . . . . . evaluate a consistency test
##
##  <ManSection>
##  <Oper Name="EvaluateOverlapCBA" Arg='...'/>
##  <Oper Name="EvaluateOverlapBNA" Arg='...'/>
##  <Oper Name="EvaluateOverlapBAN" Arg='...'/>
##  <Oper Name="EvaluateOverlapANA" Arg='...'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareOperation( "EvaluateOverlapCBA",
        [ IsPolycyclicCollector, IsList, IsList, IsInt, IsInt, IsInt ] );
DeclareOperation( "EvaluateOverlapBNA",
        [ IsPolycyclicCollector, IsList, IsList, IsInt, IsInt, IsInt ] );
DeclareOperation( "EvaluateOverlapBAN",
        [ IsPolycyclicCollector, IsList, IsList, IsInt, IsInt, IsInt ] );
DeclareOperation( "EvaluateOverlapANA",
        [ IsPolycyclicCollector, IsList, IsList, IsInt, IsInt ] );

Messung V0.5 in Prozent
C=46 H=93 G=73

¤ Dauer der Verarbeitung: 0.6 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.