final Emptiness emptiness = new Emptiness(g, EPresence.EMPTY, EPresence.NONEMPTY, EPresence.EMPTY, EPresence.EMPTY);
final FirstRootAnalysis first = new FirstRootAnalysis(g, emptiness, false);
final RootAnalysis roots = new RootAnalysis(g);
final int emptyIndex = stm_nodes.getGetEmptySequence(s, g).getIndex();
// we model this as "replace every root node that is not the first root element with the empty sequence"
g.processReachableNodes(new NodeProcessor<Object>() {
@Override
public Object process(ChoiceNode n) {
EBooleanLattice r = roots.get(n.getIndex());
if (r.definitelyNot()) {
return this;