Negation can only be performed if a universe is known against the completion of a set of nodes is performed. This is the case only for graph functors, in which the set of graph nodes represents this universe. Negation is performed by a loop over the universe, skipping those nodes which are the neighbor set of the predicate. In rule tests for bitset predicates. They also have a universe which consists of all nodes the bits refer to.
Negation is performed by a bitset complement.
In rule transformations. Then in the code an edge of the denoted graph is deleted, not added.