// This is a comment. // Comments out exactly one line.
// We're proving that (P and Q) and R implies every combination.
// The first non-comment line must be the logical implication you're proving.
P /\ Q /\ R => (P /\ Q) /\ (Q /\ R) /\ (P /\ R)
// Blank lines don't count.
// The second non-comment line must be the assumption.
P /\ Q /\ R
// The following lines should have a (true) proposition followed by
// whitespace, with AT LEAST ONE TAB, followed by a justification.
// A justification is a rule name or abbreviation applied to line number(s).
// /\ is left-associative, so this requires associativity of /\.
P /\ (Q /\ R) Assoc(8)
// If the fact you're using is the immediately previous one,
// you can leave out the line number.
P Simplify
Q /\ R Simplify(14)
// You can use the full rule name or the abbreviation.
Q S
R S(18)
// Multiple line numbers are separated by commas.
P /\ Q Conj(17, 20)
Q /\ R Conj(20, 21)
P /\ R Conj(17, 21)
(P /\ Q) /\ (Q /\ R) Conj(23, 24)
// The proof ends when you reach the goal.
(P /\ Q) /\ (Q /\ R) /\ (P /\ R) Conj(26, 25)