private void addToProofSteps(ProofStep step)
{
if (!proofSteps.Contains(step))
{
proofSteps.Insert(0, step);
}
else
{
proofSteps.Remove(step);
proofSteps.Insert(0, step);
}
List<ProofStep> predecessors = step.getPredecessorSteps();
for (int i = predecessors.Count - 1; i >= 0; i--)
{
addToProofSteps(predecessors[i]);
}
}
}