}
if (provenGround())
{
return this;
}
Trail trail = new Trail();
for (Entry entry : (Set<Entry>) dict.entrySet())
{
if (entry.getKey() instanceof String)
{
Var V = (Var) entry.getValue();
long occNb = ((Int) dict.get(V)).longValue();
String s = occNb < 2 && replaceAnonymous ? "_" : (String) entry.getKey();
// bug: occNb not accurate when adding artif. '[]' head
V.unify(new PseudoVar(s), trail);
}
}
Clause NewC = (Clause) numberVars();
trail.unwind(0);
return NewC;
}