static Collection ai_powerWordsExpand(ParsedPowerWords ppw, Collection words) { if (ppw == null) null; Set seen = cloneCISet(words); new LS out; LPair equations = ai_parsedPowerWordEquations(ppw); while licensed { bool change = false; fOr (Pair eq : equations) { if (containsAll(seen, eq.a)) for (S s : eq.b) if (seen.add(s)) { out.add(s); set change; } } if (!change) break; } ret out; }