The Communications of the TEX Users Group Volume 30 ... - TUG
The Communications of the TEX Users Group Volume 30 ... - TUG
The Communications of the TEX Users Group Volume 30 ... - TUG
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
192 <strong>TUG</strong>boat, <strong>Volume</strong> <strong>30</strong> (2009), No. 2<br />
<strong>of</strong> definitions is taken to include a standard default<br />
set <strong>of</strong> infix operators as well as quantifiers. <strong>The</strong> default<br />
symbols may be easily replaced and with a little<br />
additional effort, default forms can be replaced. <strong>The</strong><br />
resulting language is unambiguous and possesses <strong>the</strong><br />
property that no term or formula can begin ano<strong>the</strong>r.<br />
Pro<strong>of</strong>Check minimizes <strong>the</strong> loss <strong>of</strong> syntactical<br />
freedom by striving to keep <strong>the</strong> syntactical restrictions<br />
as close as possible to <strong>the</strong> absolute requirements<br />
<strong>of</strong> logic and consistency.<br />
5 Pro<strong>of</strong> language<br />
<strong>The</strong> following <strong>TEX</strong> macros suffice to mark up a pro<strong>of</strong><br />
for checking. We are grateful to Karl Berry for his<br />
help in streamlining <strong>the</strong> first two <strong>of</strong> <strong>the</strong>se. <strong>The</strong> general<br />
pro<strong>of</strong> structure which <strong>the</strong>se macros implement<br />
is very similar to that defined in [1].<br />
\prop Any proposition, whe<strong>the</strong>r a <strong>the</strong>orem, a definition<br />
or an axiom, must be introduced by this<br />
macro. Its use requires Pro<strong>of</strong>Check to look for<br />
a pro<strong>of</strong>. Its syntax is \prop, followed by <strong>the</strong><br />
enumeration, followed by <strong>the</strong> proposition. For<br />
example:<br />
\prop 14.7 $(1 < 2)$<br />
<strong>The</strong> \prop macro must be at <strong>the</strong> beginning<br />
<strong>of</strong> a line. <strong>The</strong> enumeration is <strong>of</strong> <strong>the</strong> form n.m<br />
where n and m are positive integers with n representing<br />
<strong>the</strong> section or chapter number. <strong>The</strong><br />
proposition must be enclosed within <strong>TEX</strong> dollar<br />
signs. References in a pro<strong>of</strong> to o<strong>the</strong>r <strong>the</strong>orems<br />
use <strong>the</strong> same n.m style and not L A<strong>TEX</strong> labels.<br />
When re-arrangement <strong>of</strong> <strong>the</strong>orems necessitates<br />
renumbering, this is handled by a Pro<strong>of</strong>Check<br />
program called renum. This program recognizes<br />
L A<strong>TEX</strong> section macros so that unless <strong>the</strong> section<br />
counter is reset manually, consistency with<br />
L A<strong>TEX</strong> sectioning is maintained.<br />
\note This macro is used to introduce an assertion<br />
within <strong>the</strong> pro<strong>of</strong> which can be referred to later<br />
in <strong>the</strong> pro<strong>of</strong>. <strong>The</strong> assertion may be <strong>the</strong> result <strong>of</strong><br />
telescoping multiple lines <strong>of</strong> pro<strong>of</strong>, each having<br />
an optional justification. <strong>The</strong> Pro<strong>of</strong>Check syntax<br />
is \note, followed by <strong>the</strong> note enumeration,<br />
followed by <strong>the</strong> (possibly multi-line) assertion.<br />
Here <strong>the</strong> enumeration consists <strong>of</strong> a positive integer.<br />
\By This macro is used at <strong>the</strong> end <strong>of</strong> a line to introduce<br />
justification for <strong>the</strong> step. A note with a<br />
single line <strong>of</strong> assertion may be justified by one<br />
<strong>of</strong> <strong>the</strong> following:<br />
\By G (Given) signals an assertion which is to<br />
be accepted locally as a hypo<strong>the</strong>sis. It<br />
Bob Neveln and Bob Alps<br />
initiates a block <strong>of</strong> <strong>the</strong> pro<strong>of</strong> within which<br />
this hypo<strong>the</strong>sis is in effect.<br />
\By S (Set) indicates that <strong>the</strong> note is used to<br />
locally define a variable for use in <strong>the</strong> pro<strong>of</strong>.<br />
\By .n H .m (Hence) where n is <strong>the</strong> number<br />
<strong>of</strong> a note established using note m as a<br />
Given, ends <strong>the</strong> block initiated by note<br />
m. Such blocks are called Given-Hence<br />
blocks. A Hence justification is typically<br />
used to establish an assertion such as (p →<br />
q) where p is note m and q is note n.<br />
Notes with ei<strong>the</strong>r a single line or more than<br />
one line <strong>of</strong> assertion may be justified using o<strong>the</strong>r<br />
notes and a .m enumeration or o<strong>the</strong>r propositions<br />
and n.m enumeration with punctuation as<br />
shown in <strong>the</strong> sample pro<strong>of</strong>. More discussion on<br />
this syntax may be found in [4].<br />
\Bye in addition to introducing a justification, signals<br />
<strong>the</strong> end <strong>of</strong> a pro<strong>of</strong> and prints “Q.E.D.”.<br />
\linea, \lineb, ... <strong>The</strong>se begin a new line with<br />
increasing degrees <strong>of</strong> indentation. <strong>The</strong>y are not<br />
pro<strong>of</strong> macros per se but are used for any ma<strong>the</strong>matical<br />
expressions that need to go beyond one<br />
line and need indentation. At present <strong>the</strong> parser<br />
allows only <strong>the</strong>se.<br />
In section 7 <strong>the</strong> use <strong>of</strong> <strong>the</strong>se macros in a sample<br />
pro<strong>of</strong> is shown.<br />
6 Sample pro<strong>of</strong>: Reader view<br />
<strong>The</strong> simple pro<strong>of</strong> in figure 1 is taken from a development<br />
<strong>of</strong> <strong>the</strong> von Neumann model <strong>of</strong> <strong>the</strong> natural<br />
numbers, ω, in which each natural number is <strong>the</strong><br />
set <strong>of</strong> <strong>the</strong> preceding natural numbers. <strong>The</strong> <strong>the</strong>orem<br />
asserts that if y is an element <strong>of</strong> a natural number x<br />
<strong>the</strong>n y is a subset <strong>of</strong> x.<br />
<strong>The</strong> first line <strong>of</strong> <strong>the</strong> pro<strong>of</strong> defines a set A. This<br />
note should be easy to read except for possibly <strong>the</strong><br />
quantifier notation and <strong>the</strong> classifier notation. Notational<br />
changes are discussed in section 9. <strong>The</strong><br />
second note translates <strong>the</strong> definition in note 1 into<br />
a bi-conditional which is much more useful deductively.<br />
We <strong>of</strong>ten refer to steps that turn a definition<br />
into one or more implications as “unwrapping” steps.<br />
Explicit inclusion <strong>of</strong> such unwrapping steps is <strong>of</strong>ten<br />
key in getting a pro<strong>of</strong> to check. <strong>The</strong> stage is set for<br />
an induction pro<strong>of</strong>.<br />
<strong>The</strong> <strong>the</strong>orem 4.7 referred to is just <strong>the</strong> standard<br />
induction <strong>the</strong>orem:<br />
(∅ ∈ A∧ � x ∈ A(x ∈ A → scsrx ∈ A) → ω ⊂ A)<br />
where “scsr x” denotes <strong>the</strong> successor <strong>of</strong> x. Its two<br />
hypo<strong>the</strong>ses are <strong>the</strong> base case which in this pro<strong>of</strong> is<br />
established in note 3 and <strong>the</strong> universalization <strong>of</strong> <strong>the</strong>