| noop | no operation | |
| assign(variable, makro) | assigns the value of makro to variable | same as variable:=makro |
| variable:= makro | assigns the value of makro to variable | assign(variable, makro) |
| while makro1 do makro2 endwhile | ||
| if makro1 then makro2 else makro3 endif | ||
| for variable in makro1 do makro2 endfor | value of makro may be any set or number | |
| write(makro), writeln(makro) | ||
| {makro1,...,makron} | denotes the set whose elements are makro1,...,makron | |
| [makro1,...,makron] | denotes the list whose elements are makro1,...,makron | |
| forall(variable in makro1, makro2) | true iff makro2 holds for all variables in makro1 which is expected to evaluate to a set or list | |
| forsome(variable in makro1, makro2) | true iff makro2 holds for some variable in makro1 which is expected to evaluate to a set or list | |
| unique(variable in makro1, makro2) | if there is exactly one variable in makro1 with makro2, then results to this element; nil otherwise | |
| setofall(variable in makro1, makro2) | result is the set of all variable in makro1 such that makro2 | |
| equal(makro1, makro2) | true iff makro1 and makro2 denote the same entity | |
| elementof(makro1, makro2) | true iff the entity denoted by makro1 is an element of the set or list denoted by makro2 | |
| lt(makro1, makro2) | result is true iff the element / number denoted by makro1is smaller than the element / number denoted by makro2 | same as <(makro1,makro2); works for both elements (w.r.t. the order of the structure) or numbers |
| <(makro1,makro2) | result is true iff the element / number denoted by makro1is smaller than the element / number denoted by makro2 | same as lt(makro1, makro2); works for both elements (w.r.t. the order of the structure) or numbers |
| gt(makro1, makro2) | result is true iff the element / number denoted by makro1is larger than the element / number denoted by makro2 | same as >(makro1,makro2); works for both elements (w.r.t. the order of the structure) or numbers |
| >(makro1,makro2) | result is true iff the element / number denoted by makro1is larger than the element / number denoted by makro2 | same as gt(makro1, makro2); works for both elements (w.r.t. the order of the structure) or numbers |
| leq(makro1, makro2) | result is true iff the element / number denoted by makro1is smaller than the element / number denoted by makro2 | same as <=(makro1,makro2); works for both elements (w.r.t. the order of the structure) or numbers |
| <=(makro1,makro2) | result is true iff the element / number denoted by makro1is smaller than or equal to the element / number denoted by makro2 | same as leq(makro1, makro2); works for both elements (w.r.t. the order of the structure) or numbers |
| geq(makro1, makro2) | result is true iff the element / number denoted by makro1is larger than or equal to the element / number denoted by makro2 | same as >=(makro1,makro2); works for both elements (w.r.t. the order of the structure) or numbers |
| >=(makro1,makro2) | result is true iff the element / number denoted by makro1is larger than or equal to the element / number denoted by makro2 | same as geq(makro1, makro2); works for both elements (w.r.t. the order of the structure) or numbers |
| and(makro1,...,makron) | ||
| or(makro1,...,makron) | ||
| not(makro) | ||
| subset(makro1,makro2) | makro1, makro2 may be numbers (will be regarded as sets in the sense of ordinals) | |
| setunion(makro) | makro evaluates to a set, who's elements will be the factors of the union (numbers will be regarded as sets in the sense of ordinals) | |
| setminus(makro1,makro2) | makro1, makro2 may be numbers (will be regarded as sets in the sense of ordinals) | |
| setintersect(makro) | makro evaluates to a set, who's elements will be the factors of the intersection (numbers will be regarded as sets in the sense of ordinals) | |
| structures | results in the set of all structures in the current workspace | |
| morphismsets | results in the set of all morphismsets in the current workspace | |
| congruencesets(makro) | results in the set of all congruencesets for the structure denoted by makro in the current workspace | |
| substructuresets(makro) | results in the set of all substructuresets for the structure denoted by makro in the current workspace | |
| structurebyname(makro) | denotes the structure whose name is denoted by makro | |
| elementbyname(makro1,makro2) | denotes the element whose name is denoted by makro2 in the structure makro1 | |
| structurebynumber(makro) | ||
| elementbynumber(makro1,makro2) | denotes the element whose number is denoted by makro2 in the structure makro1 | |
| "...", '...' | strings | |
| lambda(variable1,...,variablen) makro endlambda | denotes a function in the variables variable1,...,variablen. makro is only evaluated in a "apply"-makro with the correct number of arguments. | |
| apply(makro,makro1,...,makron) | denotes the result of applying the lambda-makro / morphism / congruence
/ algebraic operation / algebraic relation denoted by makro to the arguments denoted by makro1,...,makron. The number
n of arguments must be identical with the number of variables in the
lambda-makro / morphism / congruence or the arity of the algebraic
operation / relation, respectively; alternatively, if makro denotes
an algebraic relation or operation, it may be called with only one
argument which denotes a list of the arguments: apply(makro,[makro1,...,makron]) |
makro may denote a morphism, in which case the result is the image of makro1 (the sole argument) under the morphism denoted by makro; the short form is makro(makro1,...,makro2) |
| makro(makro1,...,makron) | denotes the result of applying the lambda-makro / morphism / congruence / relation / operation denoted by makro to the arguments denoted by makro1,...,makron. The number n of argeuments must be identical with the number of variables in the lambda-makro / morphism / congruence / relation / operation; same as apply(makro,makro1,...,makron) or makro([makro1,...,makron]) if makro denotes a relation or operation | makro may denote a morphism, in which case the result is the image of makro1 (the sole argument) under the morphism denoted by makro; the long form is apply(makro, makro1,...,makro2) |
| unquote(makro) | parses and evaluates the string denoted by makro | |
| sum(makro1,...,makron) | same as +(makro1,...,makron) | result is integer if all arguments are, result is real if all arguments are |
| +(makro1,...,makron) | same as sum(makro1,...,makron) | result is integer if all arguments are, result is real if all arguments are |
| difference(makro1,...,makron) | same as -(makro1,...,makron) | result is integer if all arguments are, result is real if all arguments are |
| -(makro1,...,makron) | same as difference(makro1,...,makron) | result is integer if all arguments are, result is real if all arguments are |
| product(makro1,...,makron) | same as *(makro1,...,makron) | result is integer if all arguments are, result is real if all arguments are |
| *(makro1,...,makron) | same as product(makro1,...,makron) | result is integer if all arguments are, result is real if all arguments are |
| quotient(makro1,...,makron) | same as /(makro1,...,makron) | result is integer if all arguments are, result is real if all arguments are |
| /(makro1,...,makron) | same as quotient(makro1,...,makron) | result is integer if all arguments are, result is real if all arguments are |
| div(makro1,...,makron) | result is integer if all arguments are, result is undefined otherwise | |
| concat(makro1,...,makron) | concatenates the strings denoted by makro1,...,makron | |
| min(makro1,...,makron) | makro1,...,makron denote elements of the same structure | |
| max(makro1,...,makron) | makro1,...,makron denote elements of the same structure | |
| inf(makro1,...,makron) | makro1,...,makron denote elements of the same structure | |
| sup(makro1,...,makron) | makro1,...,makron denote elements of the same structure | |
| meetpcomp(makro) | result is the Meet-pseudo-complement (largest element wich meets to bottom element) of the element denoted by makro | makro denotes an element of a structure |
| joinpcomp(makro) | result is the Join-pseudo-complement (smallest element which joins to top) of the element denoted by makro | makro denotes an element of a structure |
| minofset(makro) | makro denotes a set of elements of the same structure | |
| maxofset(makro) | makro denotes a set of elements of the same structure | |
| infofset(makro) | makro denotes a set of elements of the same structure | |
| supofset(makro) | makro denotes a set of elements of the same structure | |
| tostring(makro) | value of makro as a string | |
| prepare(makro) | updates the relation- and operation-tables of the structure denoted by makro | |
| moveelement(makro,makro1,makro2) | moves the element denoted by makro to the with makro1 pixels to the left and makro2 pixels below the top-left corner of the parent-structure | |
| deleteelement(makro) | deletes the element denoted by makro from its parent-structure | |
| renameelement(makro1,makro2) | changes the name of the element denoted by makro1 to the value of makro2 (expected to be a string) | |
| addelement(makro1,makro2,makro3,makro4) | adds an element with the name makro2 to the structure denoted by makro1 at the coordinates makro3 to the left and makro4 below the top-left corner of the structures client-area | |
| addrelation(makro1,makro2) | sets the element denoted by makro1 in relation with the element denoted by makro2 | makro1 and makro2 must denote elements of the same structure |
| deleterelation(makro1,makro2) | deletes the relation(-pair) connecting the element denoted by makro1 in relation with the element denoted by makro2, if there is such a pair | makro1 and makro2 must denote elements of the same structure |
| card(makro) | the number of elements in the set / list denoted by makro | |
| indexof(makro1,makro2) | the position of the value of makro2 in the set / list makro1 | result is 0 for the first position, 1 for the second etc., -1 if the set does not contain the value of makro2, and -2 if some of the elements of the set or the value of makkro2 are undefined |
| item(makro1, makro2) | the element of the set / list denoted by makro1 at position makro2 | the first element is item(makro1,0), the second is item(makro1,1) etc. |
| copystructure(makro) | result denotes a copy of the structure denoted by makro | |
| renamestructure(makro1, makro2) | changes the name of the structure denoted by makro1 to the string denoted by makro2 | |
| addstructure(makro) | adds a structure by the name of the string denoted by makro to the current workspace | |
| congruencesetbynumber(makro1,makro2) | denotes the congruence-set for the structure denoted by makro1 with number makro2 | |
| substructuresetbynumber(makro1, makro2) | denotes the substructure-set for the structure denoted by makro1 with number makro2 | |
| morphismsetbynumber(makro) | denotes the morphism-set with the number makro in the current workspace | |
| congruencesetbyname(makro) | denotes the congruence-set with the name makro in the current workspace | |
| substructuresetbyname(makro) | denotes the substructure-set with the name makro in the current workspace | |
| morphismsetbyname(makro) | denotes the morphism-set with the name makro in the current workspace | |
| % ... % | comment, not parsed or interpreted | |
| highlight(makro) | Highlights the element denoted by makro | if makro denotes a set / list of elements, each element in the list is highlighted |
| uppercovers(makro) | Result is the set of upper covers of the element denoted by makro | |
| lowercovers(makro) | Result is the set of lower covers of the element denoted by makro | |
| upset(makro) | Result is the up-set of the element or set of elements denoted by makro | |
| downset(makro) | Result is the down-set of the element set of elements denoted by makro | |
| prompt(makro) | Prompts the user for an input-string; makro denotes the string displayed in the dialog-window; result is the string entered by the user | |
| listprompt(makro1,makro2) | Prompts the user to select an item from the list / set denoted by makro2; makro1 denotes the string displayed in the dialog-window; result is the item selected by the user | |
| tonumber(variable,makro) | tries to evaluate the string denoted by makro as a number which is the assigned to the variable; result is true if makro denotes a number | |
| cascade | arranges the client-windows of the current workspace in a cascade | |
| tilehorizontally | arranges the client-windows of the current workspace in a horizontal tiling | |
| tilevertically | arranges the client-windows of the current workspace in a vertical tiling | |
| bringtofront(makro) | brings the client-window denoted by makro to the front of the current workspace | |
| additem(makro1,makro2) | adds the object denoted by makro2 to the set / list denoted by makro1 | |
| setitem(makro1,makro2,makro3) | replaces the object with index denoted by makro2 in the set / list denoted by makro1 by the object denoted by makro3 | the value of the set / list changes when setitem is performed |
| removeitem(makro1,makro2) | removes the item with index denoted by makro2 from the set / list denoted by makro1 | |
| emptyset | result is the empty set / list | |
| morphismset(makro1,makro2,makro3,makro4) | calculates and displays the set of all morphisms in the category denoted by makro3, of type denoted by makro4 from the structure denoted by makro1 to the structure denoted by makro2 | makro3 denotes a list or set. Each element of this list is either a preservation-property in morphismcategories, a pair (list of length 2) of operations, relations or elements, where the first component of the pair belongs to the structure denoted by makro1 and the second component belongs to the structure denoted by makro2, or a string which is the name of a filter-makro |
| congruenceset(makro1,makro2) | calculates and displays the set of all congruences in the category denoted by makro2 for the structure denoted by makro1 | makro2 denotes a list or set. Each element of this list is either a preservation-property in morphismcategories (presbottom and prestop are ignored), a pair of elements, an operation from the structure denoted by makro1, or a string which is the name of a filter-makro |
| substructureset(makro1,makro2,makro3,makro4,makro5) | calculates and displays the set of all substructures in the category denoted by makro2 for the structure denoted by makro1. If makro3 denotes the boolean value true, then only down-sets are selected; if makro4 denotes the boolean value true, then only up-sets are selected; if makro5 denotes the boolean value true, then only convex sets are selected. | makro2 denotes a list or set. Each element of this list is either a preservation-property in morphismcategories, an operation defined on the structure denoted by makro1, or a string which is the name of a filter-makro |
| morphismsetbreak(makro1,makro2,makro3,makro4,makro5) | calculates and displays the set of all morphisms in the category denoted by makro3, of type denoted by makro4 from the structure denoted by makro1 to the structure denoted by makro2; the calculation is aborted as soon as the Makro denoted by makro5 evaluates to true | makro3 denotes a list or set. Each element of this list is either a preservation-property in morphismcategories, a pair (list of length 2) of operations, relations or elements, where the first component of the pair belongs to the structure denoted by makro1 and the second component belongs to the structure denoted by makro2, or a string which is the name of a filter-makro |
| congruencesetbreak(makro1,makro2,makro3) | calculates and displays the set of all congruences in the category denoted by makro2 for the structure denoted by makro1; the calculation is aborted as soon as the Makro denoted by makro3 evaluates to true | makro2 denotes a list or set. Each element of this list is either a preservation-property in morphismcategories (presbottom and prestop are ignored), a pair of elements, an operation from the structure denoted by makro1, or a string which is the name of a filter-makro |
| substructuresetbreak(makro1,makro2,makro3,makro4,makro5,makro6) | calculates and displays the set of all substructures in the category denoted by makro2 for the structure denoted by makro1. If makro3 denotes the boolean value true, then only down-sets are selected; if makro4 denotes the boolean value true, then only up-sets are selected; if makro5 denotes the boolean value true, then only convex sets are selected; the calculation is aborted as soon as the Makro denoted by makro6 evaluates to true | makro2 denotes a list or set. Each element of this list is either a preservation-property in morphismcategories, an operation defined on the structure denoted by makro1, or a string which is the name of a filter-makro |
| morphismcategories | result is the set of all preservation-properties for morphisms | contains (in this order) presorder, presmeet, presjoin, presbottom, prestop, presmeetcomp, presjoincomp |
| presorder | denotes the preservation-property (for morphisms) of preserving the order-relation | |
| presmeet | denotes the preservation-property (for morphisms) of preserving the meet | |
| presjoin | denotes the preservation-property (for morphisms) of preserving the join | |
| presbottom | denotes the preservation-property (for morphisms) of preserving the bottom-element | |
| prestop | denotes the preservation-property (for morphisms) of preserving the top-element | |
| presmeetcomp | denotes the preservation-property (for morphisms) of preserving the meet-pseudocomplement | |
| presjoincomp | denotes the preservation-property (for morphisms) of preserving the join-pseudocomplement | |
| morphall | denotes the morphism-type of all morphisms | same as 0 |
| morphmono | denotes the morphism-type of mono-morphisms | same as 1 |
| morphepi | denotes the morphism-type of epi-morphisms | same as 2 |
| morphembed | denotes the morphism-type of homomorphic embeddings | same as 3 |
| morphbiject | denotes the morphism-type of bijective homomorphisms | same as 4 |
| morphiso | denotes the morphism-type of iso-morphisms | same as 5 |
| asstructure(makro1) | calculates and displays the collection denoted by makro1 as structure; makro1 may denote either a set of morphisms, congruences or substructures | |
| quotientstructure(makro1) | calculates and displays the quotient under the congruence denoted by makro1, where the carrier is taken as the carrier of makro1 | makro1 may be a morphism, in which case the congruence is the kernel of the morphism (as congruence on the source) |
| true | denotes the (extended) boolean value true | same as yes or any number greater than 0 |
| false | denotes the (extended) boolean value false | same as no or any number not greater than 0 |
| yes | denotes the (extended) boolean value true | same as true or any number greater than 0 |
| no | denotes the (extended) boolean value false | same as false or any number not greater than 0 |
| undefined | denotes the (extended) boolean value undefined | same as nil |
| nil | denotes the (extended) boolean value undefined | same as undefined |
| directproduct(makro1,...,makron) | calculates and displays the direct product of the structures denoted by makro1,...,makron | |
| isorder(makro1) | true iff the structure denoted by makro1 is a partial order, i.e. iff the relation on the structure is anti-symmetric | |
| ismeetsemilattice(makro1) | true iff the structure denoted by makro1 is a meet-semilattice | |
| isjoinsemilattice(makro1) | true iff the structure denoted by makro1 is a join-semilattice | |
| ismodular(makro1) | true iff the structure denoted by makro1 is modular | |
| isdistributive(makro1) | true iff the structure denoted by makro1 is distributive | |
| hasmeetpcomp(makro1) | true iff the structure denoted by makro1 has meet-pseudocomplements | |
| hasjoinpcomp(makro1) | true iff the structure denoted by makro1 has join-pseudocomplements | |
| chainlength(makro1) | result is the maximal length of a chain in the structure denoted by makro1 | |
| antichainlength(makro1) | result is the maximal length of an antichain in the structure denoted by makro1 | |
| autoarrange(makro1) | same action as clicking the auto-arrange-button for the structure denoted by makro1 | |
| skindown(makro1) | same action as clicking the skin-down-button for the structure denoted by makro1 | |
| bringtowindow(makro1) | same action as clicking the "bring to window"-button for the structure denoted by makro1 | |
| operationbyname(makro1,makro2) | result is the algebraic operation with the name denoted by makro2 defined on the structure denoted by makro1 | |
| operationbynumber(makro1,makro2) | result is the algebraic operation with the number denoted by makro2 defined on the structure denoted by makro1 | |
| relationbyname(makro1,makro2) | result is the algebraic relation with the name denoted by makro2 defined on the structure denoted by makro1 | |
| relationbynumber(makro1,makro2) | result is the algebraic relation with the number denoted by makro2 defined on the structure denoted by makro1 | |
| addtooperations(makro1,makro2,makro3,makro4) | returns a new operation with name makro2, arity makro3 and notation denoted by makro4 which is added to the structure denoted by makro1 | |
| addtorelations(makro1,makro2,makro3,makro4) | returns a new relation with name makro2, arity makro3 and notation denoted by makro4 which is added to the structure denoted by makro1 | |
| source(makro1) | returns the structure which the object denoted by makro1 lives in or is defined on or is a part of | makro1 may denote an element, a subset, a congruence, a relation, an operation, a morphism or sets of some of the above |
| target(makro1) | returns the structure which the object denoted by makro1 has as co-domain or target | makro1 may denote an element, a subset, a congruence, a relation, an operation, a morphism or sets of some of the above; if makro1 denotes a morphism or a set of morphisms, then the target structure of this morphism(-set) is returned; in all other cases, the value of target(makro1) is the same as that of source(makro1) |
| setvalue(makro1,makro2,makro3) | makro1 denotes an (algebraic) operation or relation, which is returned as result; the value of this algebraic object for the arguments in the list denoted by makro2 is set to the value denoted by makro3 | makro3 must denote an element of the appropriate structure, if makro1 denotes an operation, and a boolean value or a non-negative integer if makro1 denotes a relation |
| arity(makro) | makro1 denotes an (algebraic) operation or relation whose arity is returned as a result | |
| relations(makro) | makro denotes a structure whose algebraic relations are returned as a list | |
| operations(makro) | makro denotes a structure whose algebraic operations are returned as a list | |
| appendtolist(makro1,makro2) | result is the list denoted by makro1 with the object denoted by makro2 appended | |
| insertintolist(makro1,makro2,makro3) | result is the list denoted by makro1 with the object denoted by makro3 inserted at position denoted by makro2 | makro2 denotes a number |
| removefromlist(makro1,makro2) | result is the list denoted by makro1 with the object at position makro2 removed | makro2 denotes a number |
| count(makro) | returns the length (number of list entries) in the list denoted by makro | |
| replaceinlist(makro1,makro2,makro3) | replaces the first occurrence of the object denoted by makro2 in the list denoted by makro1 by the object denoted by makro3 | |
| replaceinlistitem(makro1,makro2,makro3) | result is a copy of the set / list denoted by makro1 where the object with the index denoted by makro2 is replaced by the object denoted by makro3 | the original set is not changed |
| compatible(makro1,makro2) | makro1 and makro2 denote either two algebraic operations or an algebraic operation and an algebraic relation which are defined on the same structure; result is true if the algebraic objects are compatible | |
| release(makro) | releases the object which is assigned as value to the variable whose name is denoted by makro | Be careful using this makro, since the objects which are released are actually destroyed and no longer available in the current workspace |
| close(makro) | Destroys the object denoted by makro | Be careful using this makro, since the objects which are closed are actually destroyed and no longer available in the current workspace; if v is a variable bound in the current makro-execution, close(v) is the same as release("v") |
| next(makro1,makro2) | returns the entry in the list / set denoted by makro1 following irectly after the object denoted by makro2 | |
| usemakro(makro) | evaluates the code in the makro-editor with the name denoted by makro | |
| nameof(makro) | returns the name / string-value of the object denoted by makro | makro may denote an element, structure, operation, relation, morphism, congruence, list etc.; if makro denotes a string, then the string itself is the result; if makro denotes a number, then this number as a string is the result |
| isnil(makro) | returns true if the object denoted by makro is not defined (or the Null-pointer etc.) | |
| break(makro) | interrupts the execution of the makros and displays the string denoted by makro as well as a list of the locally bound variables in a window | the user may chose to continue the execution to the next break, disable all future breaks for this execution or abort the execution |
| setstarttime(makro) | sets the value of the variable makro to the current time value | internally, time values are double precision numbers and may therefore be compared; the higher the number, the longer the time that was measured |
| gettime(makro) | result is the amount of time between the moment where the variable makro was initialized using setstarttime(makro) and the current time | internally, time values are double precision numbers and may therefore be compared; the higher the number, the longer the time that was measured |
| timeasstring(makro) | first, amount of time between the moment where the variable makro was initialized using setstarttime(makro) and the current time is measured, and this time value is then transformed into the format '...h...m...s' | same as gettime except for the output format;
typically used with setstarttime and write: setstarttime(delta_t); ... write(timeasstring(delta_t)); |
| deletealgebraicobject(makro) | deletes the algebraic object (operation or relation) from denoted by makro from the structure it belongs to; result is the structure | there is no check whether the algebraic object appears in expressions; careless use may result in nil-pointers |
| asaset(makro) | result is the object denoted by makro regarded as a pure set; e.g. if makro denotes a structure, write(asaset(makro)) will write the list of elements of this structure, whereas write(makro) writes only the name of the structure | since numbers are sets, write(asaset(3)) produces the output {0,1,2} |
| global(makro) | creates a new global variable with the name denoted by makro; if makro already is the name of a local variable then the result is its value, otherwise the result is nil | makro denotes a string (the name of the variable) |
| local(makro) | creates a new local variable with the name denoted by makro; if makro already is the name of a global variable then the result is its value, otherwise the result is nil | makro denotes a string (the name of the variable) |
| isglobal(makro) | result is true if makro denotes the name of a global variable | makro denotes a string (the name of the variable) |
| islocal(makro) | result is true if makro denotes the name of a local variable | makro denotes a string (the name of the variable) |
| isdefined(makro1,makro2) | result is true if the algebraic operation denoted by makro1 is defined for the arguments in the list denoted by makro2 | makro2 denotes a list of elements; if this list has not the right number of elements (arity of the algebraic operaion denoted by makro1), the result is false; the same holds if the elements in the list do not belong to the carrier of the operation |
| asstructureplus(makro1) | calculates and displays the set of morphisms denoted by makro1 as structure | asstructureplus differs from asstructure for morphism-sets insofar that asstructureplus includes all the operations and relations, even those that were not included in the category to calculate the set in the first place |
| extractsubstructure(makro1,makro2,makro3) | extracts the subset denoted by makro1 as a new substructure equipped with operations and relations from the list denoted by makro2; the name of the new structure is the string denoted by makro3 | makro1 is a list (e.g. an item from a substructure-set constructed before-hand) of elements all stemming from the same structure; makro2 is a list of operations and relations, again stemming from the same structure as the elements in the list denoted by makro1 |
Statements are separated by semicolon (;).
Makros are interpreted top down, so a variable referred to must be assigned a value in a preceding statement (unless the variable is bound as in "for x in 5 do ..." or "lambda(x,y) +(x,x,y)").
Numbers are integers or reals.
Any unknown token (string) is interpreted as a variable.
Function calls are always by value and not by name, therefore the value assigned to a variable is not necessarily changed if this variable is used as an argument to some lambda-makro.
Syntax is case-sensitive, i.e. s and S are not the same token.
Two algebraic operations f (n-ary) and g (m-ary) are called compatible if for all x11,...,x1n,...,xm1,...,xmn
f(g(x11,...,xm1),...,g(x1n,...,xmn))=g(f(x11,...,x1n),...,f(xm1,...,xmn))
An algebraic operation f (n-ary) and an algebraic relation R (m-ary) are called compatible if for all x11,...,x1n,...,xm1,...,xmn
[R(x11,...,xm1) and ... and R(x1n,...,xmn)] implies R(f(x11,...,x1n),...,f(xm1,...,xmn))
Warning: Using Makros, the user may perform actions which would not be possible using just the graphical interface of Order. E.g., elements may be deleted anytime using the deleteelement-Makro, even if the structure already has child-windows (morphism-, congruence- or substructure-sets, expression-editors etc.).