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_ToDo-list">
5
<Heading>ToDo-list</Heading>
6
7
<Section Label="Chapter_ToDo-list_Section_Blueprints">
8
<Heading>Blueprints</Heading>
9
10
<ManSection>
11
<Oper Arg="indicator, objects, attributes" Name="ToDoListEntryToMaintainEqualAttributes" Label="for IsList, IsList, IsList"/>
12
<Returns>a todo list entry
13
</Returns>
14
<Description>
15
The first argument is the <A>indicator</A>.
16
It is a list of sources like in ToDoListEntry.
17
Each entry <A>SP</A> has to be a threetuple.
18
First entry of <A>SP</A> has to an object, for
19
which the second entry of <A>SP</A>, which has
20
to be the name of an attribute, must become known.
21
Once the attribute is known to the object,
22
it will be compared to the third entry of the list.
23
This can be a value, which is compared directly
24
a function, which is launched and its return value is compared,
25
or a list, consisting of a function and arguments, so the
26
return value of the function with given arguments is compared.
27
If there is no third entry in <A>SP</A>, it is only looked
28
up if the value is known. Once all entries in <A>indicator</A>
29
are processed like this, and all returned true in the comparasion,
30
a list of ToDoListEntryForEqualAttributes is installed.
31
They are installed for the two entries of the list <A>objects</A>
32
which can either be the objects itself or a list
33
containing a function and arguments, which return
34
value is used. For each entry in <A>attributes</A> such
35
an entry is installed. Such an entry can be the
36
name of an attribute, if both objects
37
in <A>objects</A> should share the value
38
between attributes with the same name, or a list
39
of two names, if the attributes do not have
40
the same name.
41
</Description>
42
</ManSection>
43
44
45
<ManSection>
46
<Oper Arg="indicator, objects, attributes" Name="ToDoListEntryToMaintainFollowingAttributes" Label="for IsList, IsList, IsList"/>
47
<Returns>a todo list entry
48
</Returns>
49
<Description>
50
This function creates a ToDoListEntry which can
51
install several ToDoListEntries.
52
The first two arguments, <A>indicator</A> and <A>objects</A>
53
except that there will be only ToDoListEntries
54
installed between the two objects in <A>objects</A>.
55
Each entry in <A>attributes</A> can either be a string
56
which means that the attribute with the given name will be set
57
from the first to the second object in <A>objects</A>
58
once it is known.
59
The third argument <A>attributes</A> is a list of attributes
60
that will be propagated by ToDoListEntries.
61
Each entry <A>TP</A> can either be a list consisting of
62
a DescriptionOfImplication string and one of the following
63
or just one of the following lists:
64
It can be a string, which means that the Attribute
65
with the given name will be propagated from the first to
66
the second object.
67
It can be a list, consisting of two entries, where the first entry
68
is a list of sources like in ToDoListEntry
69
and the second might be a function
70
which will be launched once the first part is fulfilled.
71
It can also be a threetuple which will serve
72
as second to fourth argument of ToDoListEntry.
73
Or it can be a string, which will set the attribute named
74
like this of the first object to the one named in the second object
75
</Description>
76
</ManSection>
77
78
79
<ManSection>
80
<Oper Arg="source, target_list" Name="ToDoListEntry" Label="for IsList, IsList"/>
81
<Returns>a todo list entry
82
</Returns>
83
<Description>
84
This function allows to create more than one
85
ToDoListEntry with identical list of sources at one time.
86
First argument is a list of sources like in the other ToDoListEntry functions
87
Second argument is a list of threetuples,
88
which serve as second to fourth argument of ToDoListEntry
89
or a function, which serves as second argument for ToDoListEntry
90
or a tuple with a description string and one of the above.
91
</Description>
92
</ManSection>
93
94
95
<ManSection>
96
<Var Name="ToDoList_this_object" />
97
<Description>
98
Represents the objects for which the blueprint is
99
created in the arguments
100
</Description>
101
</ManSection>
102
103
104
<ManSection>
105
<Oper Arg="filter, indicator, objects, attributes" Name="ToDoListEntryToMaintainEqualAttributesBlueprint" Label="for IsObject, IsList, IsList, IsList"/>
106
<Returns>nothing
107
</Returns>
108
<Description>
109
This function installs an immediate method
110
which can install ToDoListEntryToMaintainEqualAttributes.
111
First argument must be a filter, and once the filter becomes true
112
the ToDoListEntryToMaintainEqualAttributes is
113
installed with the second to fourth argument
114
as first to third.
115
In those attributes, at any point,
116
the variable ToDoList_this_object
117
can be used. When the entry is installed
118
This will be replaced with the object to which the
119
filters became known, i.e. the one which triggered the
120
immediate method.
121
</Description>
122
</ManSection>
123
124
125
<ManSection>
126
<Oper Arg="arg1,arg2,arg3,arg4" Name="ToDoListEntryToMaintainFollowingAttributesBlueprint" Label="for IsObject, IsList, IsList, IsList"/>
127
<Returns>nothing
128
</Returns>
129
<Description>
130
The same as ToDoListEntryToMaintainEqualAttributesBlueprint
131
for ToDoListEntryToMaintainFollowingAttributes
132
</Description>
133
</ManSection>
134
135
136
<ManSection>
137
<Oper Arg="arg1,arg2,arg3" Name="ToDoListEntryBlueprint" Label="for IsObject, IsList, IsList"/>
138
<Returns>nothing
139
</Returns>
140
<Description>
141
The same as ToDoListEntryToMaintainEqualAttributesBlueprint
142
for ToDoListEntry
143
</Description>
144
</ManSection>
145
146
147
</Section>
148
149
150
<Section Label="Chapter_ToDo-list_Section_ToDo-list_entries">
151
<Heading>ToDo-list entries</Heading>
152
153
<ManSection>
154
<Oper Arg="E" Name="AddToToDoList" Label="for IsToDoListEntry"/>
155
<Description>
156
Adds the ToDo-list entry <A>E</A> to the
157
ToDo-lists of it's source objects and creates a new one, if this is needed.
158
This function might be called with lists of entries
159
</Description>
160
</ManSection>
161
162
163
<ManSection>
164
<Oper Arg="entry" Name="SourcePart" Label="for IsToDoListEntry"/>
165
<Returns>a list
166
</Returns>
167
<Description>
168
Returns the a list of source parts of the ToDo-list entry <A>entry</A>.
169
This is a triple of an object, a name of a filter/attribute, and a value to which
170
the attribute has to be set to activate the entry
171
</Description>
172
</ManSection>
173
174
175
<ManSection>
176
<Oper Arg="entry" Name="TargetPart" Label="for IsToDoListEntry"/>
177
<Returns>a list
178
</Returns>
179
<Description>
180
Returns the target part of the ToDo-list entry <A>entry</A>.
181
This is a triple of an object, a name of a filter/attribute, and a value to which the
182
specific filter/attribute should be set.
183
The third entry of the list might also be a function to which return value the
184
attribute is set.
185
</Description>
186
</ManSection>
187
188
189
<ManSection>
190
<Oper Arg="arg" Name="ProcessAToDoListEntry" Label="for IsToDoListEntry"/>
191
<Returns>a boolean
192
</Returns>
193
<Description>
194
Processes a ToDo-list entry, i.e. sets the information given in TargetPart
195
if the definitions in SourcePart are fulfilled.
196
Returns a function if the entry could be processed, false if not, and fail if
197
SourcePart or TargetPart weren't availible anymore.
198
</Description>
199
</ManSection>
200
201
202
<ManSection>
203
<Oper Arg="arg1,arg2,arg3,arg4" Name="ToDoListEntry" Label="for IsList, IsObject, IsString, IsObject"/>
204
<Returns>a ToDoListEntry
205
</Returns>
206
<Description>
207
The first argument must be a list consisting of two, three or four-tuples
208
where the first entry must be the object to which the attribute
209
given as a string in the second entry must be known to process this entry.
210
The second entry can also be a list of strings, in that case all the
211
attributes given as names must be known.
212
Also, in this case, only two entries in this tuple are allowed.
213
The third part can be a value or a list, consisting of a function followed
214
by arguments which will be computed by the time the attribute given
215
as second entry becomes known to the first entry.
216
If the second part is only a string, and there is a third entry in the tuple
217
the attribute is compared to the third entry.
218
One can set a comparating function as fourth entry, which must
219
take two entries and return false or true.
220
If the value of the attribute matches the (computed)
221
value in the third entry for all members of the list in the first argument
222
the attribute given as third argument, also by name, of the second argument
223
is set to the value of the fourth argument.
224
This can also be a list which has to be computed, or a function,
225
which retun value is used in this case.
226
</Description>
227
</ManSection>
228
229
230
<ManSection>
231
<Oper Arg="arg1,arg2" Name="ToDoListEntry" Label="for IsList, IsFunction"/>
232
<Returns>a ToDoListEntry
233
</Returns>
234
<Description>
235
The first argument is a list of three-tubles like above.
236
Once all preconditions become fulfilled
237
the function given as second argument is launched.
238
</Description>
239
</ManSection>
240
241
242
<ManSection>
243
<Oper Arg="entry,value" Name="SetTargetValueObject" Label="for IsToDoListEntry, IsObject"/>
244
<Returns>nothing
245
</Returns>
246
<Description>
247
If the given value of the target part is the return value of a function
248
this command sets the target value of the entry to a function.
249
This is done to keep proof tracking availible.
250
</Description>
251
</ManSection>
252
253
254
<ManSection>
255
<Oper Arg="entry,obj" Name="SetTargetObject" Label="for IsToDoListEntry, IsObject"/>
256
<Returns>nothing
257
</Returns>
258
<Description>
259
If the target object, i.e. the first entry of the target part, was given as
260
a function, this method can set this entry to the return value computed in
261
ProcessToDoListEntry. This happens atomatically, do not worry about it.
262
</Description>
263
</ManSection>
264
265
266
<ManSection>
267
<Oper Arg="sobj,source_prop,sval,tobj,target,tval" Name="ToDoListEntryWithContraposition" Label="for IsObject, IsString, IsBool, IsObject, IsString, IsBool"/>
268
<Returns>a ToDoListEntry
269
</Returns>
270
<Description>
271
Creates a ToDoListEntry which also installs a contraposition.
272
The arguments <A>source_prop</A> and <A>target</A> need to be
273
strings which name a property, and <A>sval</A> and
274
<A>tval</A> need to be
275
boolean values, i.e. true or false.
276
</Description>
277
</ManSection>
278
279
280
<ManSection>
281
<Attr Arg="arg" Name="DescriptionOfImplication" Label="for IsToDoListEntry"/>
282
<Returns>a list
283
</Returns>
284
<Description>
285
Has to be set to a string, which describes the reason for the conclusion.
286
If the ToDo-list entry is displayed, the given string will be displayed with a
287
because before it.
288
</Description>
289
</ManSection>
290
291
292
<ManSection>
293
<Oper Arg="arg1,arg2,arg3,arg4" Name="ToDoListEntryForEqualAttributes" Label="for IsObject, IsString, IsObject, IsString"/>
294
<Returns>a ToDoListEntry
295
</Returns>
296
<Description>
297
Creates a ToDoListEntry for two equal
298
attributes, which means that both values of the two attributes
299
will be propagated in both directions.
300
</Description>
301
</ManSection>
302
303
304
<ManSection>
305
<Oper Arg="arg1,arg2,arg3,arg4,arg5,arg6" Name="ToDoListEntryForEquivalentAttributes" Label="for IsObject, IsString, IsObject, IsObject, IsString, IsObject"/>
306
<Returns>a ToDoListEntry
307
</Returns>
308
<Description>
309
Creates a ToDoListEntry for two equivalent
310
attributes, which means that both values of the two attributes
311
will be propagated in both directions.
312
Please note that this one does NOT implement contrapositions.
313
</Description>
314
</ManSection>
315
316
317
</Section>
318
319
320
<Section Label="Chapter_ToDo-list_Section_Category">
321
<Heading>Category</Heading>
322
323
<ManSection>
324
<Filt Arg="arg" Name="IsToDoList" Label="for IsObject"/>
325
<Returns><C>true</C> or <C>false</C>
326
</Returns>
327
<Description>
328
This is the category of ToDo-lists.
329
Every ToDo-list is an object of this category,
330
which basically contains the ToDo-lists.
331
</Description>
332
</ManSection>
333
334
335
</Section>
336
337
338
<Section Label="Chapter_ToDo-list_Section_Constructor">
339
<Heading>Constructor</Heading>
340
341
<ManSection>
342
<Oper Arg="" Name="NewToDoList" />
343
<Returns>nothing
344
</Returns>
345
<Description>
346
Creates a new empty ToDo-list.
347
</Description>
348
</ManSection>
349
350
351
</Section>
352
353
354
<Section Label="Chapter_ToDo-list_Section_This_is_the_magic">
355
<Heading>This is the magic</Heading>
356
357
<ManSection>
358
<Func Arg="arg" Name="Process_A_ToDo_List_Entry" />
359
<Returns>a boolean
360
</Returns>
361
<Description>
362
Gets a ToDo-list entry, which is a pair of a list of strings and a weak pointer object,
363
and processes it. If the action was done, it returns true, if not, it returns false, and it returns
364
fail if the action is not possible anymore due to deleted objects.
365
</Description>
366
</ManSection>
367
368
369
<ManSection>
370
<Attr Arg="A" Name="ProcessToDoList" Label="for IsObject"/>
371
<Returns>nothing
372
</Returns>
373
<Description>
374
This is the magic! This attribute is never set. Creating an ToDo-list entry installs
375
an ImmediateMethod for this attribute for the specific category of the object to which
376
ToDo-list is added, and the filter the entry contains.
377
It is then triggert if the filters become applicable, so the ToDo-list is processed
378
</Description>
379
</ManSection>
380
381
382
</Section>
383
384
385
<Section Label="Chapter_ToDo-list_Section_Methods_for_all_objects">
386
<Heading>Methods for all objects</Heading>
387
388
<ManSection>
389
<Attr Arg="arg" Name="ToDoList" Label="for IsObject"/>
390
<Returns>A ToDo-list
391
</Returns>
392
<Description>
393
Returns the ToDo-list of an object, or creates a new one.
394
</Description>
395
</ManSection>
396
397
398
</Section>
399
400
401
<Section Label="Chapter_ToDo-list_Section_Proof_tracking">
402
<Heading>Proof tracking</Heading>
403
404
This is a way to track proofs from ToDoLists.
405
Not only for debugging, but also for knowing how things work together.
406
<ManSection>
407
<Oper Arg="obj,name,val" Name="TraceProof" Label="for IsObject, IsString, IsObject"/>
408
<Returns>a tree
409
</Returns>
410
<Description>
411
If the object <A>obj</A> has the attribute <A>name</A>,
412
and its value is <A>val</A>, and the knowledge has
413
been obtained trough ToDoList-entries,
414
this method traces the way the property was set,
415
and returns a tree which describes the full way of how the attribute became known.
416
</Description>
417
</ManSection>
418
419
420
</Section>
421
422
423
<Section Label="Chapter_ToDo-list_Section_Maintainance">
424
<Heading>Maintainance</Heading>
425
426
<ManSection>
427
<Oper Arg="arg" Name="ActivateToDoList" Label="for IsObject"/>
428
<Returns>nothing
429
</Returns>
430
<Description>
431
This operation activates ToDoLists for the argument.
432
</Description>
433
</ManSection>
434
435
436
<ManSection>
437
<Oper Arg="" Name="ActivateToDoList" />
438
<Returns>nothing
439
</Returns>
440
<Description>
441
This operation activates ToDoLists for all objects.
442
</Description>
443
</ManSection>
444
445
446
<ManSection>
447
<Oper Arg="arg" Name="DeactivateToDoList" Label="for IsObject"/>
448
<Returns>nothing
449
</Returns>
450
<Description>
451
This operation deactivates ToDoLists for the argument.
452
</Description>
453
</ManSection>
454
455
456
<ManSection>
457
<Oper Arg="" Name="DeactivateToDoList" />
458
<Returns>nothing
459
</Returns>
460
<Description>
461
This operation deactivates ToDoLists for all objects.
462
Note that it is not possible to activate ToDoList for a single object
463
while they are not activated.
464
ToDoListEntries will yet be stored for all objects that can have ToDoLists.
465
All objects created while ToDoLists are deactivated have by default no ToDoList.
466
</Description>
467
</ManSection>
468
469
470
<ManSection>
471
<Func Arg="arg" Name="ActivateWhereInfosInEntries" />
472
<Returns>nothing
473
</Returns>
474
<Description>
475
Stores the result of Where( 100 ) in an entry
476
if the entry is triggered. This is not activated
477
by default, since it might slow down the system.
478
</Description>
479
</ManSection>
480
481
482
<ManSection>
483
<Func Arg="arg" Name="DeactivateWhereInfosInEntries" />
484
<Returns>nothing
485
</Returns>
486
<Description>
487
Deactives the storage of the result of Where( 100 )
488
if an entry is triggered. This is the default.
489
</Description>
490
</ManSection>
491
492
493
</Section>
494
495
496
</Chapter>
497
498
499