}
public void recursiveSubstitute(MathCollection mathCollection) { // CLARIFY
Vector<Branch> branchVector = getBranchVector(false, Function.WITH);
Edit e = new Edit(tokenList);
Collections.reverse(branchVector);
for (Branch branch : branchVector) {
Argument first = branch.firstChild();
if (first==null) return;
for (int i=1; i<branch.size(); i++) {
e.setCurrent(first);
e.substitute(branch.getChild(i));
}
e.replace(branch, first);
}
}