Description: A set equals the union of its singleton. Theorem 8.2 of Quine p. 53.
The User manually input on a mmj2 Proof Worksheet, without labels, all
steps of unisnALT except 1, 11, 15, 21, and 30. With execution of the
mmj2 unification command, mmj2 could find labels for all steps except
for 2, 12, 16, 22, and 31 (and the then non-existing steps 1, 11, 15,
21, and 30). mmj2 could not find reference theorems for those five steps
because the hypothesis field of each of these steps was empty and none
of those steps unifies with a theorem in set.mm. Each of these five
steps is a semantic variation of a theorem in set.mm and is 2-step
provable. mmj2 does not have the ability to automatically generate the
semantic variation in set.mm of a theorem in a mmj2 Proof Worksheet
unless the theorem in the Proof Worksheet is labeled with a 1-hypothesis
deduction whose hypothesis is a theorem in set.mm which unifies with the
theorem in the Proof Worksheet. The stepprover.c program, which invokes
mmj2, has this capability. stepprover.c automatically generated steps 1,
11, 15, 21, and 30, labeled all steps, and generated the RPN proof of
unisnALT . Roughly speaking, stepprover.c added to the Proof
Worksheet a labeled duplicate step of each non-unifying theorem for each
label in a text file, labels.txt, containing a list of labels provided
by the User. Upon mmj2 unification, stepprover.c identified a label for
each of the five theorems which 2-step proves it. For unisnALT , the
label list is a list of all 1-hypothesis propositional calculus
deductions in set.mm. stepproverp.c is the same as stepprover.c except
that it intermittently pauses during execution, allowing the User to
observe the changes to a text file caused by the execution of particular
statements of the program. (Contributed by Alan Sare, 19-Aug-2016)(Proof modification is discouraged.)(New usage is discouraged.)