private void calcualteProofSteps()
{
proofSteps = new List<ProofStep>();
addToProofSteps(finalStep);
// Move all premises to the front of the
// list of steps
int to = 0;
for (int i = 0; i < proofSteps.Count; i++)
{
if (proofSteps[i] is ProofStepPremise)
{
ProofStep m = proofSteps[i];
proofSteps.RemoveAt(i);
proofSteps.Insert(to, m);
to++;
}
}
// Move the Goals after the premises
for (int i = 0; i < proofSteps.Count; i++)
{
if (proofSteps[i] is ProofStepGoal)
{
ProofStep m = proofSteps[i];
proofSteps.RemoveAt(i);
proofSteps.Insert(to, m);
to++;
}
}
// Assign the step #s now that all the proof
// steps have been unwound
for (int i = 0; i < proofSteps.Count; i++)
{
proofSteps[i].setStepNumber(i + 1);
}
}