Non-terminal nodes in the directed acyclic graph stored in the database are also called combinations. It is possible to extend the definition of a non-terminal node by adding an instance of an existing node to the non-terminal node with an associated boolean operation of union; this is done by the i (instance) command. To start with, such an instance has an identity matrix stored in the arc; the user needs to separately edit the arc to move the instance to some other location. If the non-terminal node being extended does not exist, it is created first.
The instance command provides the simplest way to create a reference to another node. Instances of a whole list of nodes can be added to a non-terminal node by way of the group g command. If instances of a list of nodes with non-union boolean operations is to be added to a non-terminal node, the region r command accepts a list of (operation, name) pairs, where the single lower case character ``u'' indicates union, ``-'' indicates subtraction, and ``+'' indicates intersection. The first operation specified is not significant. An example of this command might be: r non-terminal u node1 - node2 + node3 For historical reasons, there is no explicit grouping possible, occasionally forcing the user to create intermediate non-terminal nodes to allow the realization of the desired boolean formula. It is also important to note that for the same reasons there is an implicit grouping between union terms, i.e. u n1 - n2 + n3 u n4 - n5 is evaluated as (n1 - n2 + n3) union (n4 - n5) rather than ((((n1 - n2) + n3) union n4) - n5) Therefore, you can think of the solids on either side of the union operators as surrounded by parentheses. The order of the region members is critical, and must be scrutinized when members are added or deleted from a region. The order can be printed out using the l or cat commands.