23.12.2012 Views

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

SHOW MORE
SHOW LESS

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>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!