File: trans.gd

package info (click to toggle)
gap 4r7p5-2
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 29,272 kB
  • ctags: 7,129
  • sloc: ansic: 107,802; xml: 46,868; sh: 3,548; perl: 2,329; makefile: 740; python: 94; asm: 62; awk: 6
file content (142 lines) | stat: -rw-r--r-- 6,939 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#############################################################################
##
#W  trans.gd                 GAP library                       J. D. Mitchell
##
##
#Y  Copyright (C)  1997,  Lehrstuhl D für Mathematik,  RWTH Aachen,  Germany
#Y  (C) 1998 School Math and Comp. Sci., University of St Andrews, Scotland
#Y  Copyright (C) 2012 The GAP Group
##

# the documentation for the functions declared herein can be found in 
# doc/ref/trans.xml

DeclareUserPreference(rec(
  name:=["TransformationDisplayLimit", "NotationForTransformations"],
  description:=["options for the display of transformations"],
  default:=[100, "input"],
  check:=function(a, b) return IsPosInt(a) 
  or (IsString(b) and b in ["input", "fr"]); end));

DeclareOperation("Transformation", [IsList]);
DeclareOperation("Transformation", [IsList, IsList]);
DeclareOperation("TransformationListList", [IsList, IsList]);
DeclareOperation("TransformationList", [IsList]);
DeclareOperation("Transformation", [IsList, IsFunction]);

DeclareOperation("TransformationByImageAndKernel", 
 [ IsCyclotomicCollection and IsDenseList, 
   IsCyclotomicCollection and IsDenseList]);

DeclareOperation("NumberTransformation", [IsTransformation, IsZeroCyc]);
DeclareOperation("NumberTransformation", [IsTransformation, IsPosInt]);
DeclareOperation("NumberTransformation", [IsTransformation]);
DeclareOperation("TransformationNumber", [IsPosInt, IsPosInt]);

DeclareAttribute("MovedPoints",        IsTransformation);
DeclareAttribute("NrMovedPoints",      IsTransformation);
DeclareAttribute("LargestMovedPoint",  IsTransformation);
DeclareAttribute("LargestImageOfMovedPoint",  IsTransformation);
DeclareAttribute("SmallestMovedPoint", IsTransformation);
DeclareAttribute("SmallestImageOfMovedPoint",  IsTransformation);

DeclareAttribute("MovedPoints",        IsTransformationCollection);
DeclareAttribute("NrMovedPoints",      IsTransformationCollection);
DeclareAttribute("SmallestImageOfMovedPoint",  IsTransformationCollection);
DeclareAttribute("LargestImageOfMovedPoint",  IsTransformationCollection);
DeclareAttribute("LargestMovedPoint",  IsTransformationCollection);
DeclareAttribute("SmallestMovedPoint", IsTransformationCollection);

DeclareAttribute("RankOfTransformation", IsTransformation);
DeclareOperation("RankOfTransformation", [IsTransformation, IsPosInt]);
DeclareOperation("RankOfTransformation", [IsTransformation, IsZeroCyc]);
DeclareOperation("RankOfTransformation", [IsTransformation, IsList]);

DeclareOperation("AsBinaryRelation", [IsTransformation]);
DeclareAttribute("AsPermutation", IsAssociativeElement);

DeclareAttribute("AsTransformation", IsAssociativeElement);
DeclareOperation("AsTransformation", [IsAssociativeElement, IsInt]);
DeclareAttribute("PermutationOfImage", IsTransformation);

DeclareOperation("ConstantTransformation", [IsPosInt, IsPosInt]);
DeclareAttribute("DegreeOfTransformationCollection",
IsTransformationCollection);
DeclareAttribute("FlatKernelOfTransformation", IsTransformation);
DeclareOperation("FlatKernelOfTransformation", [IsTransformation, IsPosInt]);
DeclareOperation("FlatKernelOfTransformation", [IsTransformation, IsZeroCyc]);

DeclareOperation("ImageListOfTransformation", [IsTransformation, IsPosInt]);
DeclareOperation("ImageListOfTransformation", [IsTransformation, IsZeroCyc]);
DeclareOperation("ImageListOfTransformation", [IsTransformation]);
#ImageListOfTransformation(IsTransformation, IsList) is just OnTuples
DeclareSynonym("ListTransformation", ImageListOfTransformation);
DeclareAttribute("ImageSetOfTransformation", IsTransformation);
DeclareOperation("ImageSetOfTransformation", [IsTransformation, IsPosInt]);
DeclareOperation("ImageSetOfTransformation", [IsTransformation, IsZeroCyc]);
#ImageSetOfTransformation(IsTransformation, IsList) is just OnSets
DeclareAttribute("IndexPeriodOfTransformation", IsTransformation);
DeclareOperation("IsInjectiveListTrans", [IsList, IsTransformation]);
DeclareOperation("IsInjectiveListTrans", [IsList, IsList]);
DeclareAttribute("KernelOfTransformation", IsTransformation);
DeclareOperation("KernelOfTransformation", [IsTransformation, IsPosInt,
IsBool]);
DeclareOperation("KernelOfTransformation", [IsTransformation, IsPosInt]);
DeclareOperation("KernelOfTransformation", [IsTransformation, IsZeroCyc]);
DeclareOperation("KernelOfTransformation", [IsTransformation, IsBool]);

DeclareOperation("PermLeftQuoTransformationNC",[IsTransformation,
IsTransformation]);
DeclareOperation("PermLeftQuoTransformation",[IsTransformation,
IsTransformation]);
DeclareOperation("PreImagesOfTransformation",[IsTransformation, IsPosInt]);
DeclareSynonym("PreimagesOfTransformation", PreImagesOfTransformation);

DeclareOperation("RandomTransformation", [IsPosInt]);
DeclareOperation("RandomTransformation", [IsPosInt, IsPosInt]);

DeclareOperation("RestrictedTransformationNC", [IsTransformation, IsList]);
DeclareOperation("RestrictedTransformation", [IsTransformation, IsList]);
DeclareAttribute("SmallestIdempotentPower", IsAssociativeElement);
DeclareOperation("TrimTransformation", [IsTransformation, IsPosInt]);
DeclareOperation("TrimTransformation", [IsTransformation]);

DeclareOperation("Idempotent", [IsCyclotomicCollection,
IsCyclotomicCollection]);

DeclareOperation("TransformationOp", [IsObject, IsList, IsFunction]);
DeclareOperation("TransformationOp", [IsObject, IsDomain, IsFunction]);
DeclareOperation("TransformationOp", [IsObject, IsList]);
DeclareOperation("TransformationOp", [IsObject, IsDomain]);

DeclareOperation("TransformationOpNC", [IsObject, IsList, IsFunction]);
DeclareOperation("TransformationOpNC", [IsObject, IsDomain, IsFunction]);
DeclareOperation("TransformationOpNC", [IsObject, IsList]);
DeclareOperation("TransformationOpNC", [IsObject, IsDomain]);

DeclareOperation("InverseOfTransformation", [IsTransformation]);

DeclareAttribute("ComponentRepsOfTransformation", IsTransformation);
DeclareAttribute("NrComponentsOfTransformation", IsTransformation);
DeclareAttribute("ComponentsOfTransformation", IsTransformation);
DeclareOperation("ComponentTransformationInt",[IsTransformation, IsPosInt]);
DeclareOperation("CycleTransformationInt", [IsTransformation, IsPosInt]);
DeclareAttribute("CyclesOfTransformation", IsTransformation);
DeclareOperation("CyclesOfTransformation", [IsTransformation, IsList]);

DeclareAttribute("LeftOne", IsAssociativeElement);
DeclareAttribute("RightOne", IsAssociativeElement);
DeclareOperation("OnKernelAntiAction", [IsList, IsTransformation]);

BindGlobal("IdentityTransformation", TransformationNC([]));

# for legacy reasons only!
DeclareSynonym("BinaryRelationTransformation", AsBinaryRelation);
DeclareOperation("InverseOp", [IsTransformation]);

#not yet implemented
DeclareGlobalFunction("TransformationAction");
DeclareGlobalFunction("TransformationActionNC");
DeclareGlobalFunction("TransformationActionHomomorphism");
DeclareGlobalFunction("TransformationActionHomomorphismNC");
#EOF