The information required to record a derivation is, minimally, the leaf formulae, and each inferred formula with references to its parent formulae. More detailed information that may be recorded and useful includes: the role of each formula; the name of the inference rule used in each inference step; sufficient details of each inference step to deterministically reproduce the inference; and the semantic relationships of inferred formulae with respect to their parents.
A derivation written in the TPTP language is a list of annotated formulae. Each leaf formula should have a file record, and each inferred formula has an inference record. (This is a description of an ordinary derivation - the TPTP language can do more than this.)
%--------------------------------------------------------------------
fof(3,axiom,(
grade(john) = f ),
file('CreatedEqual.p',john_failed)).
fof(4,axiom,(
? [X3] :
( human(X3)
& grade(X3) = a ) ),
file('CreatedEqual.p',someone_got_an_a)).
fof(5,axiom,(
a != f ),
file('CreatedEqual.p',distinct_grades)).
fof(7,conjecture,(
? [X3] :
( human(X3)
& X3 != john ) ),
file('CreatedEqual.p',someone_not_john)).
fof(8,negated_conjecture,(
~ ? [X3] :
( human(X3)
& X3 != john ) ),
inference(assume_negation,[status(cth)],[7])).
cnf(14,plain,
( grade(john) = f ),
inference(split_conjunct,[status(thm)],[3])).
fof(16,plain,
( human(esk1_0)
& grade(esk1_0) = a ),
inference(skolemize,[status(sab)],[4])).
cnf(17,plain,
( grade(esk1_0) = a ),
inference(split_conjunct,[status(thm)],[16])).
cnf(18,plain,
( human(esk1_0) ),
inference(split_conjunct,[status(thm)],[16])).
cnf(19,plain,
( a != f ),
inference(split_conjunct,[status(thm)],[5])).
fof(22,negated_conjecture,(
! [X3] :
( ~ human(X3)
| X3 = john ) ),
inference(fof_nnf,[status(thm)],[8])).
cnf(24,negated_conjecture,
( X1 = john
| ~ human(X1) ),
inference(split_conjunct,[status(thm)],[22])).
cnf(25,negated_conjecture,
( john = esk1_0 ),
inference(spm,[status(thm)],[24,18,theory(equality)])).
cnf(28,plain,
( f = a ),
inference(rw,[status(thm)],[inference(rw,[status(thm)],[17,25,theory(equality)]),14,theory(equality)])).
cnf(29,plain,
( $false ),
inference(sr,[status(thm)],[28,19,theory(equality)])).
%--------------------------------------------------------------------
Once the syntax is OK, go back to SystemOnTSTP and choose IDV as the System. That'll render your derivation DAG and provide access to a lot of postprocessing tools.