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############################################################################# ## ## ToDoListEntry.gd ToolsForHomalg package ## ## Copyright 2007-2012, Mohamed Barakat, University of Kaiserslautern ## Sebastian Gutsche, RWTH-Aachen University ## Markus Lange-Hegermann, RWTH-Aachen University ## ## Entries for ToDo-Lists. ## ############################################################################# DeclareCategory( "IsToDoListEntry", IsObject ); DeclareGlobalVariable( "TODO_LIST_ENTRIES" ); ################################## ## ## Methods and properties ## ################################## DeclareFilter( "IsProcessedEntry", IsToDoListEntry ); DeclareFilter( "HasSetAttributeOfObject", IsToDoListEntry ); DeclareProperty( "RemoveContrapositions", IsToDoListEntry ); DeclareFilter( "PreconditionsDefinitelyNotFulfilled", IsToDoListEntry ); #! @Description #! Adds the ToDo-list entry <A>E</A> to the #! ToDo-lists of it's source objects and creates a new one, if this is needed. #! This function might be called with lists of entries #! @Arguments E #! @ChapterInfo ToDo-list, ToDo-list entries DeclareOperation( "AddToToDoList", [ IsToDoListEntry ] ); DeclareOperation( "AddToToDoList", [ IsList ] ); #! @Description #! Returns the a list of source parts of the ToDo-list entry <A>entry</A>. #! This is a triple of an object, a name of a filter/attribute, and a value to which #! the attribute has to be set to activate the entry #! @Returns a list #! @Arguments entry #! @ChapterInfo ToDo-list, ToDo-list entries DeclareOperation( "SourcePart", [ IsToDoListEntry ] ); #! @Description #! Returns the target part of the ToDo-list entry <A>entry</A>. #! This is a triple of an object, a name of a filter/attribute, and a value to which the #! specific filter/attribute should be set. #! The third entry of the list might also be a function to which return value the #! attribute is set. #! @Returns a list #! @Arguments entry #! @ChapterInfo ToDo-list, ToDo-list entries DeclareOperation( "TargetPart", [ IsToDoListEntry ] ); #! @Description #! Processes a ToDo-list entry, i.e. sets the information given in TargetPart #! if the definitions in SourcePart are fulfilled. #! Returns a function if the entry could be processed, false if not, and fail if #! SourcePart or TargetPart weren't availible anymore. #! @Returns a boolean #! @ChapterInfo ToDo-list, ToDo-list entries DeclareOperation( "ProcessAToDoListEntry", [ IsToDoListEntry ] ); #! @Description #! The first argument must be a list consisting of two, three or four-tuples #! where the first entry must be the object to which the attribute #! given as a string in the second entry must be known to process this entry. #! The second entry can also be a list of strings, in that case all the #! attributes given as names must be known. #! Also, in this case, only two entries in this tuple are allowed. #! The third part can be a value or a list, consisting of a function followed #! by arguments which will be computed by the time the attribute given #! as second entry becomes known to the first entry. #! If the second part is only a string, and there is a third entry in the tuple #! the attribute is compared to the third entry. #! One can set a comparating function as fourth entry, which must #! take two entries and return false or true. #! If the value of the attribute matches the (computed) #! value in the third entry for all members of the list in the first argument #! the attribute given as third argument, also by name, of the second argument #! is set to the value of the fourth argument. #! This can also be a list which has to be computed, or a function, #! which retun value is used in this case. #! @Returns a ToDoListEntry #! @ChapterInfo ToDo-list, ToDo-list entries DeclareOperation( "ToDoListEntry", [ IsList, IsObject, IsString, IsObject ] ); #! @Description #! The first argument is a list of three-tubles like above. #! Once all preconditions become fulfilled #! the function given as second argument is launched. #! @Returns a ToDoListEntry #! @ChapterInfo ToDo-list, ToDo-list entries DeclareOperation( "ToDoListEntry", [ IsList, IsFunction ] ); #! @Description #! If the given value of the target part is the return value of a function #! this command sets the target value of the entry to a function. #! This is done to keep proof tracking availible. #! @Returns nothing #! @Arguments entry,value #! @ChapterInfo ToDo-list, ToDo-list entries DeclareOperation( "SetTargetValueObject", [ IsToDoListEntry, IsObject ] ); #! @Description #! If the target object, i.e. the first entry of the target part, was given as #! a function, this method can set this entry to the return value computed in #! ProcessToDoListEntry. This happens atomatically, do not worry about it. #! @Returns nothing #! @Arguments entry,obj #! @ChapterInfo ToDo-list, ToDo-list entries DeclareOperation( "SetTargetObject", [ IsToDoListEntry, IsObject ] ); #! @Description #! Creates a ToDoListEntry which also installs a contraposition. #! The arguments <A>source_prop</A> and <A>target</A> need to be #! strings which name a property, and <A>sval</A> and #! <A>tval</A> need to be #! boolean values, i.e. true or false. #! @Returns a ToDoListEntry #! @Arguments sobj,source_prop,sval,tobj,target,tval #! @ChapterInfo ToDo-list, ToDo-list entries DeclareOperation( "ToDoListEntryWithContraposition", [ IsObject, IsString, IsBool, IsObject, IsString, IsBool ] ); #! @Description #! Has to be set to a string, which describes the reason for the conclusion. #! If the ToDo-list entry is displayed, the given string will be displayed with a #! because before it. #! @Returns a list #! @ChapterInfo ToDo-list, ToDo-list entries DeclareAttribute( "DescriptionOfImplication", IsToDoListEntry ); #! @Description #! Creates a ToDoListEntry for two equal #! attributes, which means that both values of the two attributes #! will be propagated in both directions. #! @Returns a ToDoListEntry #! @ChapterInfo ToDo-list, ToDo-list entries DeclareOperation( "ToDoListEntryForEqualAttributes", [ IsObject, IsString, IsObject, IsString ] ); #! @Description #! Creates a ToDoListEntry for two equivalent #! attributes, which means that both values of the two attributes #! will be propagated in both directions. #! Please note that this one does NOT implement contrapositions. #! @Returns a ToDoListEntry #! @ChapterInfo ToDo-list, ToDo-list entries DeclareOperation( "ToDoListEntryForEquivalentAttributes", [ IsObject, IsString, IsObject, IsObject, IsString, IsObject ] ); DeclareAttribute( "TrowProofTrackingObject", IsToDoListEntry ); DeclareGlobalFunction( "ToDoLists_Process_Entry_Part" ); DeclareOperation( "ToDoLists_Move_To_Target_ToDo_List", [ IsToDoListEntry ] ); DeclareOperation( "ToDoList_Is_Sane_Entry", [ IsToDoListEntry ] ); DeclareGlobalFunction( "ToolsForHomalg_ProcessToDoListEquivalencesAndContrapositions" ); DeclareGlobalFunction( "ToolsForHomalg_RemoveContrapositionFromBothToDoLists" ); DeclareGlobalFunction( "ToolsForHomalg_CheckASourcePart" );