CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

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

Views: 418346
1
<?xml version="1.0" encoding="UTF-8"?>
2
3
<!-- This is an automatically generated file. -->
4
<Chapter Label="Chapter_Technical_Details">
5
<Heading>Technical Details</Heading>
6
7
<Section Label="Chapter_Technical_Details_Section_The_Category_Cat">
8
<Heading>The Category Cat</Heading>
9
10
<ManSection>
11
<Attr Arg="functor" Name="ObjectCache" Label="for IsCapFunctor"/>
12
<Returns>IsCachingObject
13
</Returns>
14
<Description>
15
Retuns the caching object which stores the results of the functor <A>functor</A> applied to objects.
16
</Description>
17
</ManSection>
18
19
20
<ManSection>
21
<Attr Arg="functor" Name="MorphismCache" Label="for IsCapFunctor"/>
22
<Returns>IsCachingObject
23
</Returns>
24
<Description>
25
Retuns the caching object which stores the results of the functor <A>functor</A> applied to morphisms.
26
</Description>
27
</ManSection>
28
29
30
</Section>
31
32
33
<Section Label="Chapter_Technical_Details_Section_Install_Functions_for_IsWellDefined">
34
<Heading>Install Functions for IsWellDefined</Heading>
35
36
<ManSection>
37
<Func Arg="arg" Name="InstallMethodWithToDoForIsWellDefined" />
38
<Description>
39
The IsWellDefined filter is a basic function of CAP.
40
For every categorial construction the outcome is well defined if
41
and only if every input object or morphism of the construction is well defined.
42
So for every implementation of a categorial construction a ToDoListEntry needs
43
to be defined which propagates well definedness from the input cells to the output.
44
For not writing this construction in every method, this function can be used to install
45
a method which then installs the correct ToDoListEntries for the output.
46
The input syntax works exactly like InstallMethod, with one extension:
47
The method creates an auxilliary function which computes the output from the function given to
48
InstallMethodWithToDoForIsWellDefined, then installs the ToDoListEntries, and then installs the
49
auxilliary function instead of the original one. This is normally done with InstallMethod.
50
However, one can change this via the option InstallMethod, which can be set to any other function
51
which is then used instead of InstallMethod. This is used for the caching functions.
52
</Description>
53
</ManSection>
54
55
56
<ManSection>
57
<Oper Arg="arg1,arg2,arg3" Name="InstallSetWithToDoForIsWellDefined" Label="for IsObject, IsString, IsList"/>
58
<Description>
59
For the caching one needs the possibility to install setters for functions with multiple arguments.
60
This is a setter function which automatically adds ToDoListEntries for IsWellDefined like described above
61
for the manually setted result of a method.
62
</Description>
63
</ManSection>
64
65
66
<ManSection>
67
<Func Arg="arg" Name="DeclareAttributeWithToDoForIsWellDefined" />
68
<Description>
69
Since attributes install their setters themselfes, one needs to declare attributes
70
in another way to ensure ToDoListEntries for IsWellDefined in the setter of an attribute.
71
This function works like DeclareAttribute, but installs ToDoListEntries for the setter of
72
the attribute. Please note that implementations still need to be done with InstallMethodWithToDoForIsWellDefined.
73
</Description>
74
</ManSection>
75
76
77
<P/>
78
<ManSection>
79
<Func Arg="arg" Name="DeclareFamilyProperty" />
80
<Description>
81
<P/>
82
</Description>
83
</ManSection>
84
85
86
<ManSection>
87
<Func Arg="list, category" Name="CAP_INTERNAL_REPLACE_STRINGS_WITH_FILTERS" />
88
<Returns>Replaced list
89
</Returns>
90
<Description>
91
The function takes a list (of lists) of filters or strings, where the strings
92
can be category, cell, object, morphism, or twocell. The strings are then recursively replaced
93
by the corresponding filters of the category. The replaced list is returned.
94
</Description>
95
</ManSection>
96
97
98
<ManSection>
99
<Func Arg="list, additional list" Name="CAP_INTERNAL_MERGE_FILTER_LISTS" />
100
<Returns>merged lists
101
</Returns>
102
<Description>
103
The first argument should be a dense list with filters, the second a sparse list containing filters
104
not longer then the first one. The filters of the second list are then appended (via and) to the
105
filters in the first list at the corresponding position, and the resulting list is returned.
106
</Description>
107
</ManSection>
108
109
110
<ManSection>
111
<Func Arg="string, value" Name="CAP_INTERNAL_RETURN_OPTION_OR_DEFAULT" />
112
<Returns>option value
113
</Returns>
114
<Description>
115
Returns the value of the option with name string, or, if this value is fail,
116
the object value.
117
</Description>
118
</ManSection>
119
120
121
<ManSection>
122
<Func Arg="function, symbol_list, loop_multiple" Name="CAP_INTERNAL_FIND_APPEARANCE_OF_SYMBOL_IN_FUNCTION" />
123
<Returns>a list of symbols with multiples
124
</Returns>
125
<Description>
126
The function searches for the appearance of the strings in symbol list on the function function
127
and returns a list of pairs, containing the name of the symbol and the number of appearance.
128
If the symbol appears in a loop, the number of appearance is counted times the loop multiple.
129
</Description>
130
</ManSection>
131
132
133
<ManSection>
134
<Func Arg="list1, list2" Name="CAP_INTERNAL_MERGE_PRECONDITIONS_LIST" />
135
<Returns>merge list
136
</Returns>
137
<Description>
138
The function takes two lists containing pairs of symbols (strings) and multiples.
139
The lists are merged that pairs where the string only appears in one list is then
140
added to the return list, if a pair with a string appears in both lists, the resulting
141
lists only contains this pair once, with the higher multiple from both lists.
142
</Description>
143
</ManSection>
144
145
146
</Section>
147
148
149
150
</Chapter>
151
152
153