1############################################################################# 2## 3#W rcwamono.gd GAP4 Package `RCWA' Stefan Kohl 4## 5## This file contains declarations of functions, operations etc. for 6## computing with rcwa monoids. 7## 8## See the definitions given in the file rcwamap.gd. 9## 10############################################################################# 11 12############################################################################# 13## 14#C IsRcwaMonoidOverZ . . . . . . . . . . . . . . . . . . rcwa monoids over Z 15#C IsRcwaMonoidOverZxZ . . . . . . . . . . . . . . . . rcwa monoids over Z^2 16#C IsRcwaMonoidOverZ_pi . . . . . . . . . . . . . rcwa monoids over Z_(pi) 17#C IsRcwaMonoidOverGFqx . . . . . . . . . . . . rcwa monoids over GF(q)[x] 18#C IsRcwaMonoidOverZOrZ_pi . . . . . . . . . . rcwa monoids over Z or Z_(pi) 19## 20## The category of all rcwa monoids over Z, over Z^2, over semilocalizations 21## of Z or over polynomial rings in one variable over a finite field, 22## respectively. The category `IsRcwaMonoidOverZOrZ_pi' is the union of 23## `IsRcwaMonoidOverZ' and `IsRcwaMonoidOverZ_pi'. 24## 25DeclareSynonym( "IsRcwaMonoidOverZ", 26 CategoryCollections(IsRcwaMappingOfZ) and IsMonoid ); 27DeclareSynonym( "IsRcwaMonoidOverZxZ", 28 CategoryCollections(IsRcwaMappingOfZxZ) and IsMonoid ); 29DeclareSynonym( "IsRcwaMonoidOverZ_pi", 30 CategoryCollections(IsRcwaMappingOfZ_pi) and IsMonoid ); 31DeclareSynonym( "IsRcwaMonoidOverGFqx", 32 CategoryCollections(IsRcwaMappingOfGFqx) and IsMonoid ); 33DeclareSynonym( "IsRcwaMonoidOverZOrZ_pi", 34 CategoryCollections(IsRcwaMappingOfZOrZ_pi) and IsMonoid ); 35 36############################################################################# 37## 38#V TrivialRcwaMonoidOverZ . . . . . . . . . . . . trivial rcwa monoid over Z 39## 40DeclareGlobalVariable( "TrivialRcwaMonoidOverZ" ); 41 42############################################################################# 43## 44#O RcwaCons( <R> ) . . . . . . . . . . . . . . . . . . Rcwa( R ) for ring R 45#F Rcwa( <R> ) 46## 47## The monoid formed by all rcwa mappings of <R>. 48## 49DeclareConstructor( "RcwaCons", [ IsRcwaMonoid, IsDomain ] ); 50DeclareGlobalFunction( "Rcwa" ); 51 52############################################################################# 53## 54#P IsNaturalRcwa( <M> ) . . . . . . . . . . . . . . . . . . . . . Rcwa( R ) 55## 56DeclareProperty( "IsNaturalRcwa", IsRcwaMonoid ); 57 58############################################################################# 59## 60#A ModulusOfRcwaMonoid( <M> ) . . . . . . . . modulus of the rcwa monoid <M> 61## 62## We define the *modulus* of an rcwa monoid by the lcm of the moduli of its 63## elements in case such an lcm exists, and by 0 otherwise. 64## 65DeclareAttribute( "ModulusOfRcwaMonoid", IsRcwaMonoid ); 66 67############################################################################# 68## 69#O Ball( <M>, <f>, <r> ) ball of radius <r> around the element <f> of <M> 70#O Ball( <M>, <p>, <r>, <act> ) " the point <p> under the action of <M> 71#O Ball( <M>, <p>, <r> ) . . . as above, where <act> defaults to `OnPoints' 72#O RestrictedBall( <M>, <f>, <r>, <modulusbound> ) . . . . "restricted" ball 73#O RestrictedBall( <M>, <p>, <r>, <act>, <bound> ) . . . . . . . . . (dito) 74#O RestrictedBall( <M>, <p>, <r>, <bound> ) . . . . . . . . . . . . (dito) 75#O RestrictedBall( <M>, <f>, <r>, <bounds> ) . . . . . . . . . . . . (dito) 76## 77## The first variant returns the ball of radius <r> about the element <f> 78## of <M>. 79## 80## The second variant returns the ball of radius <r> about the point <p> 81## under the action of <M>. 82## 83## The third variant is the same as the second -- 84## <act> defaults to `OnPoints'. 85## 86## The fourth variant does the same as the first except that it stops 87## where extending the ball would yield elements whose moduli exceed the 88## bound <modulusbound>. 89## 90## The fifth variant does the same as the second except that it stops 91## where further extending the ball would yield points which exceed the 92## bound <bound> in absolute value. If the points are tuples, then the 93## bound applies to all coordinates. 94## 95## The sixth variant is the fifth -- <act> defaults to `OnPoints'. 96## 97## All balls are understood w.r.t. the stored generators of the monoid <M>, 98## respectively w.r.t. the stored generators and their inverses if <M> is 99## actually a group. 100## 101## An option `Spheres' is recognized. If set, the returned ball is split 102## into a list of spheres. 103## 104DeclareOperation( "Ball", [ IsMonoid, IsObject, IsInt ] ); 105DeclareOperation( "Ball", [ IsMonoid, IsObject, IsInt, IsFunction ] ); 106DeclareOperation( "RestrictedBall", 107 [ IsMonoid, IsObject, IsObject, IsObject ] ); 108DeclareOperation( "RestrictedBall", 109 [ IsMonoid, IsObject, IsObject, IsObject, IsObject ] ); 110 111############################################################################# 112## 113#O ShortOrbits( <G>, <S>, <maxlng> ) . . . . short orbits of rcwa group <G> 114#O ShortOrbits( <G>, <S>, <maxlng>, <maxn> ) . dito, with upper bound <maxn> 115#O ShortOrbits( <M>, <S>, <maxlng> ) short forward orbits of rcwa monoid <M> 116## 117## In the first case, this operation returns a list of all finite orbits of 118## the rcwa group <G> of length <= <maxlng>, which intersect nontrivially 119## with the set <S>. 120## In the second case, it returns a list of all such orbits which do not 121## contain a point larger than <maxn>. 122## In the third case, it returns a list of all finite forward orbits with 123## starting point within the set <S>, of length <= <maxlng>. 124## 125DeclareOperation( "ShortOrbits", [ IsMonoid, IsListOrCollection, IsInt ] ); 126DeclareOperation( "ShortOrbits", [ IsMonoid, IsListOrCollection, IsInt, 127 IsInt ] ); 128 129############################################################################# 130## 131#E rcwamono.gd . . . . . . . . . . . . . . . . . . . . . . . . . . ends here