Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
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
Project: cocalc-sagemath-dev-slelievre
Views: 418346<?xml version="1.0" encoding="UTF-8"?>12<!-- This is an automatically generated file. -->3<Chapter Label="Chapter_ToDo-list">4<Heading>ToDo-list</Heading>56<Section Label="Chapter_ToDo-list_Section_Blueprints">7<Heading>Blueprints</Heading>89<ManSection>10<Oper Arg="indicator, objects, attributes" Name="ToDoListEntryToMaintainEqualAttributes" Label="for IsList, IsList, IsList"/>11<Returns>a todo list entry12</Returns>13<Description>14The first argument is the <A>indicator</A>.15It is a list of sources like in ToDoListEntry.16Each entry <A>SP</A> has to be a threetuple.17First entry of <A>SP</A> has to an object, for18which the second entry of <A>SP</A>, which has19to be the name of an attribute, must become known.20Once the attribute is known to the object,21it will be compared to the third entry of the list.22This can be a value, which is compared directly23a function, which is launched and its return value is compared,24or a list, consisting of a function and arguments, so the25return value of the function with given arguments is compared.26If there is no third entry in <A>SP</A>, it is only looked27up if the value is known. Once all entries in <A>indicator</A>28are processed like this, and all returned true in the comparasion,29a list of ToDoListEntryForEqualAttributes is installed.30They are installed for the two entries of the list <A>objects</A>31which can either be the objects itself or a list32containing a function and arguments, which return33value is used. For each entry in <A>attributes</A> such34an entry is installed. Such an entry can be the35name of an attribute, if both objects36in <A>objects</A> should share the value37between attributes with the same name, or a list38of two names, if the attributes do not have39the same name.40</Description>41</ManSection>424344<ManSection>45<Oper Arg="indicator, objects, attributes" Name="ToDoListEntryToMaintainFollowingAttributes" Label="for IsList, IsList, IsList"/>46<Returns>a todo list entry47</Returns>48<Description>49This function creates a ToDoListEntry which can50install several ToDoListEntries.51The first two arguments, <A>indicator</A> and <A>objects</A>52except that there will be only ToDoListEntries53installed between the two objects in <A>objects</A>.54Each entry in <A>attributes</A> can either be a string55which means that the attribute with the given name will be set56from the first to the second object in <A>objects</A>57once it is known.58The third argument <A>attributes</A> is a list of attributes59that will be propagated by ToDoListEntries.60Each entry <A>TP</A> can either be a list consisting of61a DescriptionOfImplication string and one of the following62or just one of the following lists:63It can be a string, which means that the Attribute64with the given name will be propagated from the first to65the second object.66It can be a list, consisting of two entries, where the first entry67is a list of sources like in ToDoListEntry68and the second might be a function69which will be launched once the first part is fulfilled.70It can also be a threetuple which will serve71as second to fourth argument of ToDoListEntry.72Or it can be a string, which will set the attribute named73like this of the first object to the one named in the second object74</Description>75</ManSection>767778<ManSection>79<Oper Arg="source, target_list" Name="ToDoListEntry" Label="for IsList, IsList"/>80<Returns>a todo list entry81</Returns>82<Description>83This function allows to create more than one84ToDoListEntry with identical list of sources at one time.85First argument is a list of sources like in the other ToDoListEntry functions86Second argument is a list of threetuples,87which serve as second to fourth argument of ToDoListEntry88or a function, which serves as second argument for ToDoListEntry89or a tuple with a description string and one of the above.90</Description>91</ManSection>929394<ManSection>95<Var Name="ToDoList_this_object" />96<Description>97Represents the objects for which the blueprint is98created in the arguments99</Description>100</ManSection>101102103<ManSection>104<Oper Arg="filter, indicator, objects, attributes" Name="ToDoListEntryToMaintainEqualAttributesBlueprint" Label="for IsObject, IsList, IsList, IsList"/>105<Returns>nothing106</Returns>107<Description>108This function installs an immediate method109which can install ToDoListEntryToMaintainEqualAttributes.110First argument must be a filter, and once the filter becomes true111the ToDoListEntryToMaintainEqualAttributes is112installed with the second to fourth argument113as first to third.114In those attributes, at any point,115the variable ToDoList_this_object116can be used. When the entry is installed117This will be replaced with the object to which the118filters became known, i.e. the one which triggered the119immediate method.120</Description>121</ManSection>122123124<ManSection>125<Oper Arg="arg1,arg2,arg3,arg4" Name="ToDoListEntryToMaintainFollowingAttributesBlueprint" Label="for IsObject, IsList, IsList, IsList"/>126<Returns>nothing127</Returns>128<Description>129The same as ToDoListEntryToMaintainEqualAttributesBlueprint130for ToDoListEntryToMaintainFollowingAttributes131</Description>132</ManSection>133134135<ManSection>136<Oper Arg="arg1,arg2,arg3" Name="ToDoListEntryBlueprint" Label="for IsObject, IsList, IsList"/>137<Returns>nothing138</Returns>139<Description>140The same as ToDoListEntryToMaintainEqualAttributesBlueprint141for ToDoListEntry142</Description>143</ManSection>144145146</Section>147148149<Section Label="Chapter_ToDo-list_Section_ToDo-list_entries">150<Heading>ToDo-list entries</Heading>151152<ManSection>153<Oper Arg="E" Name="AddToToDoList" Label="for IsToDoListEntry"/>154<Description>155Adds the ToDo-list entry <A>E</A> to the156ToDo-lists of it's source objects and creates a new one, if this is needed.157This function might be called with lists of entries158</Description>159</ManSection>160161162<ManSection>163<Oper Arg="entry" Name="SourcePart" Label="for IsToDoListEntry"/>164<Returns>a list165</Returns>166<Description>167Returns the a list of source parts of the ToDo-list entry <A>entry</A>.168This is a triple of an object, a name of a filter/attribute, and a value to which169the attribute has to be set to activate the entry170</Description>171</ManSection>172173174<ManSection>175<Oper Arg="entry" Name="TargetPart" Label="for IsToDoListEntry"/>176<Returns>a list177</Returns>178<Description>179Returns the target part of the ToDo-list entry <A>entry</A>.180This is a triple of an object, a name of a filter/attribute, and a value to which the181specific filter/attribute should be set.182The third entry of the list might also be a function to which return value the183attribute is set.184</Description>185</ManSection>186187188<ManSection>189<Oper Arg="arg" Name="ProcessAToDoListEntry" Label="for IsToDoListEntry"/>190<Returns>a boolean191</Returns>192<Description>193Processes a ToDo-list entry, i.e. sets the information given in TargetPart194if the definitions in SourcePart are fulfilled.195Returns a function if the entry could be processed, false if not, and fail if196SourcePart or TargetPart weren't availible anymore.197</Description>198</ManSection>199200201<ManSection>202<Oper Arg="arg1,arg2,arg3,arg4" Name="ToDoListEntry" Label="for IsList, IsObject, IsString, IsObject"/>203<Returns>a ToDoListEntry204</Returns>205<Description>206The first argument must be a list consisting of two, three or four-tuples207where the first entry must be the object to which the attribute208given as a string in the second entry must be known to process this entry.209The second entry can also be a list of strings, in that case all the210attributes given as names must be known.211Also, in this case, only two entries in this tuple are allowed.212The third part can be a value or a list, consisting of a function followed213by arguments which will be computed by the time the attribute given214as second entry becomes known to the first entry.215If the second part is only a string, and there is a third entry in the tuple216the attribute is compared to the third entry.217One can set a comparating function as fourth entry, which must218take two entries and return false or true.219If the value of the attribute matches the (computed)220value in the third entry for all members of the list in the first argument221the attribute given as third argument, also by name, of the second argument222is set to the value of the fourth argument.223This can also be a list which has to be computed, or a function,224which retun value is used in this case.225</Description>226</ManSection>227228229<ManSection>230<Oper Arg="arg1,arg2" Name="ToDoListEntry" Label="for IsList, IsFunction"/>231<Returns>a ToDoListEntry232</Returns>233<Description>234The first argument is a list of three-tubles like above.235Once all preconditions become fulfilled236the function given as second argument is launched.237</Description>238</ManSection>239240241<ManSection>242<Oper Arg="entry,value" Name="SetTargetValueObject" Label="for IsToDoListEntry, IsObject"/>243<Returns>nothing244</Returns>245<Description>246If the given value of the target part is the return value of a function247this command sets the target value of the entry to a function.248This is done to keep proof tracking availible.249</Description>250</ManSection>251252253<ManSection>254<Oper Arg="entry,obj" Name="SetTargetObject" Label="for IsToDoListEntry, IsObject"/>255<Returns>nothing256</Returns>257<Description>258If the target object, i.e. the first entry of the target part, was given as259a function, this method can set this entry to the return value computed in260ProcessToDoListEntry. This happens atomatically, do not worry about it.261</Description>262</ManSection>263264265<ManSection>266<Oper Arg="sobj,source_prop,sval,tobj,target,tval" Name="ToDoListEntryWithContraposition" Label="for IsObject, IsString, IsBool, IsObject, IsString, IsBool"/>267<Returns>a ToDoListEntry268</Returns>269<Description>270Creates a ToDoListEntry which also installs a contraposition.271The arguments <A>source_prop</A> and <A>target</A> need to be272strings which name a property, and <A>sval</A> and273<A>tval</A> need to be274boolean values, i.e. true or false.275</Description>276</ManSection>277278279<ManSection>280<Attr Arg="arg" Name="DescriptionOfImplication" Label="for IsToDoListEntry"/>281<Returns>a list282</Returns>283<Description>284Has to be set to a string, which describes the reason for the conclusion.285If the ToDo-list entry is displayed, the given string will be displayed with a286because before it.287</Description>288</ManSection>289290291<ManSection>292<Oper Arg="arg1,arg2,arg3,arg4" Name="ToDoListEntryForEqualAttributes" Label="for IsObject, IsString, IsObject, IsString"/>293<Returns>a ToDoListEntry294</Returns>295<Description>296Creates a ToDoListEntry for two equal297attributes, which means that both values of the two attributes298will be propagated in both directions.299</Description>300</ManSection>301302303<ManSection>304<Oper Arg="arg1,arg2,arg3,arg4,arg5,arg6" Name="ToDoListEntryForEquivalentAttributes" Label="for IsObject, IsString, IsObject, IsObject, IsString, IsObject"/>305<Returns>a ToDoListEntry306</Returns>307<Description>308Creates a ToDoListEntry for two equivalent309attributes, which means that both values of the two attributes310will be propagated in both directions.311Please note that this one does NOT implement contrapositions.312</Description>313</ManSection>314315316</Section>317318319<Section Label="Chapter_ToDo-list_Section_Category">320<Heading>Category</Heading>321322<ManSection>323<Filt Arg="arg" Name="IsToDoList" Label="for IsObject"/>324<Returns><C>true</C> or <C>false</C>325</Returns>326<Description>327This is the category of ToDo-lists.328Every ToDo-list is an object of this category,329which basically contains the ToDo-lists.330</Description>331</ManSection>332333334</Section>335336337<Section Label="Chapter_ToDo-list_Section_Constructor">338<Heading>Constructor</Heading>339340<ManSection>341<Oper Arg="" Name="NewToDoList" />342<Returns>nothing343</Returns>344<Description>345Creates a new empty ToDo-list.346</Description>347</ManSection>348349350</Section>351352353<Section Label="Chapter_ToDo-list_Section_This_is_the_magic">354<Heading>This is the magic</Heading>355356<ManSection>357<Func Arg="arg" Name="Process_A_ToDo_List_Entry" />358<Returns>a boolean359</Returns>360<Description>361Gets a ToDo-list entry, which is a pair of a list of strings and a weak pointer object,362and processes it. If the action was done, it returns true, if not, it returns false, and it returns363fail if the action is not possible anymore due to deleted objects.364</Description>365</ManSection>366367368<ManSection>369<Attr Arg="A" Name="ProcessToDoList" Label="for IsObject"/>370<Returns>nothing371</Returns>372<Description>373This is the magic! This attribute is never set. Creating an ToDo-list entry installs374an ImmediateMethod for this attribute for the specific category of the object to which375ToDo-list is added, and the filter the entry contains.376It is then triggert if the filters become applicable, so the ToDo-list is processed377</Description>378</ManSection>379380381</Section>382383384<Section Label="Chapter_ToDo-list_Section_Methods_for_all_objects">385<Heading>Methods for all objects</Heading>386387<ManSection>388<Attr Arg="arg" Name="ToDoList" Label="for IsObject"/>389<Returns>A ToDo-list390</Returns>391<Description>392Returns the ToDo-list of an object, or creates a new one.393</Description>394</ManSection>395396397</Section>398399400<Section Label="Chapter_ToDo-list_Section_Proof_tracking">401<Heading>Proof tracking</Heading>402403This is a way to track proofs from ToDoLists.404Not only for debugging, but also for knowing how things work together.405<ManSection>406<Oper Arg="obj,name,val" Name="TraceProof" Label="for IsObject, IsString, IsObject"/>407<Returns>a tree408</Returns>409<Description>410If the object <A>obj</A> has the attribute <A>name</A>,411and its value is <A>val</A>, and the knowledge has412been obtained trough ToDoList-entries,413this method traces the way the property was set,414and returns a tree which describes the full way of how the attribute became known.415</Description>416</ManSection>417418419</Section>420421422<Section Label="Chapter_ToDo-list_Section_Maintainance">423<Heading>Maintainance</Heading>424425<ManSection>426<Oper Arg="arg" Name="ActivateToDoList" Label="for IsObject"/>427<Returns>nothing428</Returns>429<Description>430This operation activates ToDoLists for the argument.431</Description>432</ManSection>433434435<ManSection>436<Oper Arg="" Name="ActivateToDoList" />437<Returns>nothing438</Returns>439<Description>440This operation activates ToDoLists for all objects.441</Description>442</ManSection>443444445<ManSection>446<Oper Arg="arg" Name="DeactivateToDoList" Label="for IsObject"/>447<Returns>nothing448</Returns>449<Description>450This operation deactivates ToDoLists for the argument.451</Description>452</ManSection>453454455<ManSection>456<Oper Arg="" Name="DeactivateToDoList" />457<Returns>nothing458</Returns>459<Description>460This operation deactivates ToDoLists for all objects.461Note that it is not possible to activate ToDoList for a single object462while they are not activated.463ToDoListEntries will yet be stored for all objects that can have ToDoLists.464All objects created while ToDoLists are deactivated have by default no ToDoList.465</Description>466</ManSection>467468469<ManSection>470<Func Arg="arg" Name="ActivateWhereInfosInEntries" />471<Returns>nothing472</Returns>473<Description>474Stores the result of Where( 100 ) in an entry475if the entry is triggered. This is not activated476by default, since it might slow down the system.477</Description>478</ManSection>479480481<ManSection>482<Func Arg="arg" Name="DeactivateWhereInfosInEntries" />483<Returns>nothing484</Returns>485<Description>486Deactives the storage of the result of Where( 100 )487if an entry is triggered. This is the default.488</Description>489</ManSection>490491492</Section>493494495</Chapter>496497498499