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.).