\*
\*			  Q U I N E                                 
\*																				
\*	   A SCRATCHPAD FOR TRUTH-FUNCTIONAL LOGIC                  
\*																				
\*			Version  2.0
\*
\*	 COPYRIGHT (c) 1997   Gianfranco Boggio-Togna                              *
\*
\*			C.P. 14021                                   
\*		  I-20140 Milano (Italy)                             
\*
\*		   e-mail: gbt@computer.org                                                     *
\*
\*
\*
\*
\*	This program is free software; you can redistribute it and/or modify
\*	it under the terms of the GNU General Public License as published by
\*	the Free Software Foundation; either version 2 of the License, or
\*	(at your option) any later version.
\*
\*	This program is distributed in the hope that it will be useful,
\*	but WITHOUT ANY WARRANTY; without even the implied warranty of
\*	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
\*	GNU General Public License for more details.
\*
\*	You should have received a copy of the GNU General Public License
\*	along with this program; if not, write to the Free Software
\*	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
\*
\*

\area 1
\section Contents

 \(4)\{254}\() \<About QUINE>

 \(4)\{254}\() \<The Scratchpad>
 
 \(4)\{254}\() \<Entering formulas>   \(4)\{254}\() \<Expanding formulas>		   

 \(4)\{254}\() \<Editing formulas>    \(4)\{254}\() \<The tablet>           \(4)\{254}\() \<Marking blocks>

 \(4)\{254}\() \<Naming formulas>     \(4)\{254}\() \<Selecting formulas>   \(4)\{254}\() \<Evaluating formulas>

 \(4)\{254}\() \<Clearing the scratchpad> 
 \(4)\{254}\() \<Saving the scratchpad>	      

 \(4)\{254}\() \<Options>
 \(4)\{254}\() \<Command line>

\section About QUINE

 QUINE is a program that implements a scratchpad for manipulation of
 formulas of truth-functional logic.  Formulas can be entered into
 the scratchpad, edited and combined to build other formulas.
 For any formula, the program can determine whether it is \[valid] or
 \[contradictory], or \[noncontradictory].

 Formulas are evaluated using the efficient procedure recommended by
 \[W.V.O. Quine\= Willard Van Orman Quine] in his \(4)Methods of Logic\() (a wonderful book, probably the
 most readable,	yet quite rigorous, introduction to symbolic logic). 

 Hence the program name, which is meant as a small homage to a great
 philosopher and logician.

 If you are not familiar with truth-functional logic, you can read
 an elementary, nontechnical introduction to the subject under the
 entry \(6,7) T\()\(8,7)ruth-functional logic \() of the \(6,7) H\()\(8,7)elp \() menu.
 
 If you find a useful or interesting application for the program,
 I should be pleased to hear about it.  Comments, criticisms and
 suggestions (and, of course, error reports) are welcome.

 Send e-mail to \(4)gbt@computer.org\().  If you have no access to e-mail, 
 write to this address:

	      	       Gianfranco Boggio-Togna
		             C.P. 14021
		           I 20140 Milano	

\section The Scratchpad	 \'10000'

 The size of the scratchpad is limited only by the memory available
 to the program.  It is typically of several hundred lines, which is
 more than adequate for any realistic application of truth-functional
 logic.	The end of the scratchpad is marked by \(4)\{22}\().
 
 The window over the scratchpad can be moved either by using the
 keyboard or by clicking on the buttons on the right of the menu
 bar.  The window moves:

    by a page	\(4,5)  \()  upward (\(4)PgUp\())	\(4,5)  \()  downward	(\(4)PgDn\())

    by a line	\(4,5)  \()  upward (\(4)Alt-U\()) 	\(4,5)  \()  downward	(\(4)Alt-D\())


 Each line is divided into four fields:

 Column	1 34 6 ...  				      ... 80

	\(13)V\() \(10)\{225}\()\(10)\{58}\() \(11,0)\{173}\(2,0)(pq)\(11,0)\{189}\(2,0)(\(1,0)p\(11,0)\{246}\(1,0)q\(2,0))       -- De Morgan's rule
	\(3)\{179} \{179}\{179} \{179}					           \{179}\()
	\(3)\{179} \{179}\{179} \{192}\{196}\() the data field where formulas are \<entered\=Entering formulas> \(3)\{196,217}\()
	\(3)\{179} \{179}\{192}\{196*3}\() a colon shows that the formula has been \<selected\=Selecting formulas>
	\(3)\{179} \{192}\{196*4}\() the formula \<name\=Naming formulas>
	\(3)\{192}\{196*6}\() the formula \<value\=Evaluating formulas>
 
\section Entering formulas  \'10100'

 Formula are entered and edited in the data field of the line.
 A formula must be entirely contained within one line but the use of
 formula names allows formulas longer than a line to be processed.
 Spaces within a formula are ignored.

 Two consecutive hyphens \(4)--\() start a comment, which extends to the
 end of	the line; comments are displayed on the screen but otherwise
 ignored.

 Formulas are made up of:

 \{254}  single letters representing propositional variables; the case of
    a letter is significant: \(4)p\() and \(4)P\() are different variables.

 \{254}  logical connectives (listed from highest to lowest priority): 

      \(11)\{173}\()  \[Negation\=truth-table for negation]
      \(11)\{174}\()  \[Conjunction\=truth-table for conjunction]  (optional: terms may be simply juxtaposed)
      \(11)\{246}\()  \[Disjunction\=truth-table for disjunction]
      \(11)\{190}\()  \[Implication\=truth-table for implication]
      \(11)\{189}\()  \[Equivalence\=truth-table for equivalence]

 \{254}  parentheses. Brackets \(4)[\]\() and braces \(4){}\() are also allowed and
    are treated as equivalent to parentheses in all respects.

 \{254}  Greek letters representing formulas defined elsewhere in the
    scratchpad.  Greek letters are \(4)not\() variables: they are just a
    shorthand notation for the formulas they stand for and, during
    formula evaluation, they are materially replaced by them.

 The easiest way of entering formulas is by means of the mouse and
 \<the tablet>.

 When using the keyboard, logical connectives and Greek letters must
 be entered by means of escape sequences consisting of the backslash
 symbol \(4)\\\() immediately followed by another character:

	\(4)\\\() followed by    \\-.v>=abcdefghijklmnopqrstuwxyz
	   represents    \\\(11)\{173}\{174}\{246}\{190}\{189}\()\(10)\{225-245,247-250} 

\section Expanding formulas \'10200'

 It is sometimes necessary to enter a set of formulas that contain
 all possible combinations of some elements (variables, connectives
 or formula names) within a fixed scheme.  For instance:

     \(10,0)\{225}\(11,0)\{190}\(2,0)p
     \(10,0)\{225}\(11,0)\{190}\(1,0)p
     \(10,0)\{226}\(11,0)\{190}\(2,0)p
     \(10,0)\{226}\(11,0)\{190}\(1,0)p

 This may be generated by defining the following scheme:
 
     \(2,0)<\(10,0)\{225}\{226}\(2,0)>\(11,0)\{190}\(2,0)<p\(1,0)p\(2,0)>

 and then requesting its expansion by pressing \(4)F2\() or selecting the
 \(6,7) E\()\(8,7)xpand \() entry in the \(6,7) E\()\(8,7)dit \() menu.  All combinations of the symbols
 enclosed within angle brackets are generated; up to three pairs of
 brackets may be used and each may contain up to 16 symbols.

 It is possible to \(4)undo\() the expansion by pressing \(4)Alt-F2\() or by
 selecting the \(6,7) U\()\(8,7)ndo expand \() entry in the \(6,7) E\()\(8,7)dit \() menu.


\section Editing formulas \'10400'

 The \(4)arrow\() keys, the \(4)Del\(), \(4)Backspace\() and \(4)Tab\() keys perform the usual
 actions.  Editing is always in \(4)insert\() mode.

 In the following list,	\(4)Gray X\() refers to the \(4)X\() key on the numeric
 keypad.

 \(4)Home\()		move to the beginning of the line

 \(4)End\()		move to the end of the line

 \(4)Ctrl-Home\()	delete from the beginning of the line up to
		(but not including) the character at cursor

 \(4)Ctrl-End\()	delete from the character at cursor to
		the end of the line

 \(4)Ctrl-k\()		clear the line

 \(4)Enter\()
 \(4)Gray 0\()		move to the start of the following line
      
 \(4)Alt-I\()	
 \(4)Ctrl-Enter\()	insert a blank line

 \(4)Alt-M\()
 \(4)Gray .\()		mark the beginning of a block

 \(4)Alt-C\()
 \(4)Gray -\()		after copying the marked block (or the current line,
		if there is no marked block) to the paste buffer,
		delete it

 \(4)Alt-Y\()
 \(4)Gray +\()		copy the marked block (or the current line, if there
		is no marked block) to the paste buffer

 \(4)Alt-P\()		
 \(4)Ins\()		paste the buffer before the current line

\section The tablet \'10300'

 The tablet provides a convenient way of entering and editing
 formulas.  The tablet displays all the characters that may occur
 in a formula; to insert a character at the cursor position, click
 the left mouse button on the character.

 Some basic editing functions are also available:

    \(7,6) \{17} \()	 delete the character preceding the text cursor

    \(7,5) \{27} \()	 move the text cursor to the left

    \(7,5)   \()	 enter a space

    \(7,5) \{26} \()	 move the text cursor to the right

    \(7,6) \{16} \()	 delete the character at the text cursor


 The three buttons on the left change the status of the formula.
 Clicking on the left half of the button performs the action; 
 clicking on the right half removes the effects of the action.

 
  \(7,5)   Na\()\(7,6)me   \()   left side:  assign a \<name\=Naming formulas> (same as \(4)F3\())
	       right side: remove the name (same as \(4)F4\())

  \(7,5)  Sel\()\(7,6)ect  \()   left side:  \<select\=Selecting formulas> the formula (same as \(4)F5\())
	       right side: de-select the formula (same as \(4)F6\())

  \(7,5) Eval\()\(7,6)uate \()   left side:  \<evaluate\=Evaluating formulas> the formula (same as \(4)F7\())
	       right side: remove the evaluation symbol (same as \(4)F8\())


 To display the tablet below the line on which the text cursor is
 positioned, click with the left mouse button on the data field of
 the line. To remove the tablet, press \(4)ESC\() or the right mouse button.

 Click the left mouse button on the top side of the tablet frame to
 move the text cursor and the tablet to the preceding line; click on
 the bottom side to move them to the following line.

 Click the left mouse button on the left side of the tablet frame to
 move the text cursor to the beginning of the data area; click on
 the right side to move the text cursor past the last character in
 the data area.

\section Marking blocks	\'10500'

 To mark a block of lines, press \(4)Alt-M\() or \(4)Gray .\() when the cursor is
 on the first line of the block and then move the cursor to the last
 line you want to include in the block.  To remove the mark, press
 \(4)Alt-M\() or  \(4)Gray .\() again.  With the mouse, you can set the mark by
 clicking the left button while the mouse cursor is anywhere outside
 the data area; to remove the mark, click the right button while the
 cursor is in the same area.

 When there is a marked block, the editing commands that usually act
 on a single line will act instead on the whole marked block and the
 entries in the \(6,7) F\()\(8,7)ormula \() menu that act on all the formulas in the
 scratchpad will act only on those in the marked block.


\section Naming formulas  \'10600'

 A formula can be given a name (a Greek letter), which may be used to
 refer to the formula from within another formula.

 You can assign the name with \<the tablet>. You can also assign the
 name by pressing \(4)F3\(): the cursor moves to the name field and you
 can then enter the second character only of the escape sequence for
 the Greek letter you want to use as the formula name (do not enter
 the backslash character).

 The name may be removed by pressing \(4)F4\().  Removing the name from a
 formula causes any evaluation symbols to be removed from all
 formulas in the scratchpad. 

 A name may also be assigned or removed by choosing the	appropriate
 entry in the \(6,7) F\()\(8,7)ormula \() menu.

 The scratchpad may contain several formulas with the same name, but 
 at any one time, only one of them may be \<selected\=Selecting formulas>.

 If you \<select\=Selecting formulas> a formula and there is already a selected formula
 with the same name, this is replaced by the new formula and all
 evaluated formulas in the scratchpad are re-evaluated.
 
\section Selecting formulas  \'10700'

 Selecting a formula allows its \<name\=Naming formulas> to be used in other formulas. 

 To select or de-select a formula:

 \{254} use \<the tablet>, or

 \{254} press \(4)F4\()/\(4)F5\() while the text cursor is on the line containing
        the formula, or

 \{254} choose the appropriate entry in the \(6,7) F\()\(8,7)ormula \() menu. 

 If you edit a selected formula and the resulting formula is not 
 equivalent (in the truth-functional sense) to the original formula,
 you must select the formula again: this will cause all \<evaluated\=Evaluating formulas>
 formulas in the scratchpad to be re-evaluated.

 De-selecting a formula causes all evaluation symbols to be cleared.

\section Evaluating formulas  \'10800'

 It is not necessary to \<name\=Naming formulas> or \<select\=Selecting formulas> a formula before evaluating
 it; but if the formula contains the name of other formulas, these
 must all be selected before requesting evaluation.

 To evaluate a formula or remove the evaluation symbol:

 \{254} use \<the tablet>, or
 
 \{254} press \(4)F7\()/\(4)F8\() while the text cursor is on the line containing
   the formula, or

 \{254} choose the appropriate entry in the \(6,7) F\()\(8,7)ormula \() menu. 

\section Clearing the scratchpad \'10900'

 The scratchpad may be cleared by pressing \(4)Ctrl-C\() or selecting
 the \(6,7) C\()\(8,7)lear scratchpad \() entry in the \(6,7) S\()\(8,7)cratchpad \() menu.

 If the \(8,7) Warning on <Clear> \() option is set (either from the command
 line or through the entry in the \(6,7) O\()\(8,7)ption \() menu), you will be
 asked to confirm that you actually want to clear the scratchpad.

\section Saving the scratchpad	\'11000'

 The contents of the scratchpad may be written to a file, from which
 they may be later retrieved. The file contains only characters from
 the standard ASCII set. \(4).QNE\() is the recommended file type for files
 written by \(4)QUINE\().
 
 To write the scratchpad to a file, press \(4)Alt-W\()	or select the
 \(6,7) W\()\(8,7)rite to file \() entry in the \(6,7) S\()\(8,7)cratchpad \() menu.
 If there is a marked block, only the lines within the block are
 written to the file.

 To read a file into the scratchpad, press \(4)Alt-R\() or select the
 \(6,7) R\()\(8,7)ead from file \() entry in the \(6,7) S\()\(8,7)cratchpad \() menu. Note that the
 contents of the file are inserted before the line at which the
 cursor is positioned. If you want to replace the contents of the
 scratchpad, you must \<clear\=Clearing the scratchpad> it before reading in the file.
 
\section Options \'11100'

 By default, if the contents of the scratchpad have been modified
 but not saved, the program asks you for confirmation before
 clearing the scratchpad or exiting.  You may change this behaviour
 by selecting the appropriate entry in the \(6,7) O\()\(8,7)ptions \() menu.

 You may also choose a different color set among the five available
 sets.

 Both types of options may also be set on the \<Command line>.

\section Command line \'11200'

 Syntax:  QUINE [\(4)options\()\] [\(4)filename\()\]

    \(4)filename\()	
	       the name of a file to which the scratchpad has
	       previously been saved.  If no type is specified,
	       \(4).qne\() is assumed.  On start-up the contents of
	       the file are loaded into the scratchpad.

    \(4)options\() 	
	       -C\(4)n\()  	   select color set \(4)n\()
	       -W[\(4)e\()\][\(4)c\()\]    suppress warning on \(4)e\()xit\()/\(4)c\()lear\()


Options may be changed by selecting the appropriate entries in the
\(6,7) O\()\(8,7)ptions \() menu.

\area 2
\section Table of contents

	\{254} \<What is truth-functional logic?>
	\{254} \<Truth functions>

	\{254} \<Negation>		\{254} \<Conjunction>	    \{254} \<Disjunction>
	\{254} \<How many connectives?>
	\{254} \<Implication>		\{254} \<Equivalence>

	\{254} \<Formulas> 		\{254} \<Evaluating a formula>

	\{254} \<Inference>		\{254} \<Proving correctness>
	\{254} \<Equivalent formulas>

	\{254} \<The limits of truth-functional logic>

          \(4)Copyright (c) 1997  Gianfranco Boggio-Togna\()	

\section What is truth-functional logic?

 Truth-functional logic is the most elementary branch of logic:	other
 branches build upon it and are extensions of it.  As its alternative
 name, propositional logic, suggests, it deals with propositions. 

 In the context of logic, a proposition is a sentence, (for instance,
 \(4)It is raining\()) for which it is possible, at least in principle,
 to establish whether it is true or false.  Most of the	sentences we
 use or hear are propositions in this sense, but not all: commands
 and questions cannot be said to be either true or false.

 For a simple sentence such as \(4)It is raining\() it is very easy to
 find out whether it is true or false: one just looks out of the
 window.  For other, more complicated, sentences it may be a very
 difficult task, raising deep linguistic and philosophical problems.
 Such problems are, however, irrelevant to logic, which is not
 concerned with what actually happens to be true: it is enough that
 we should be able (it does not matter how) to attach a	\(4)truth-value\()
 to the proposition. 

 The truth-value of a proposition is \(4)Truth\() (indicated by \(4)T\()) if the
 proposition is true, \(4)Falsehood\() (indicated by \(4)F\()) if the proposition
 is false.  As we are not interested in the actual contents of
 particular propositions, we can represent propositions by means of
 symbols such as \(4)p\(), \(4)q\(), \(4)r\(),  which act as propositional variables
 taking one of two values: \(4)T\() or \(4)F\() (just as in mathematics we use
 \(4)a\(), \(4)b\(), \(4)c\() to represent variables taking their values from, say,
 the set of the integers).

\section Truth functions

 We often use sentences that are made up of simpler sentences joined 
 by conjunctions. For instance \(4)It is raining and I have forgotten
 \(4)to take my umbrella\().  When the sentences are actually propositions
 (as here: we can easily assign truth-values to both \(4)It is raining\()
 and \(4)I have forgotten to take my umbrella\()) and the meaning of the
 conjunction (here \(4)and\()) is well defined, the truth-value of the
 compound sentence is completely determined once the truth-value of
 each component sentence is known: \(4)It is raining and I have
 \(4)forgotten to take my umbrella\() is true if, and only if, both
 \(4)It is raining\() and \(4)I have forgotten to take my umbrella\() are true.

 The truth-value of the compound sentence is a \(4)function\() of the truth-
 values of the propositions occurring in the sentence.

 Truth-functional logic, as the name implies, is concerned with the
 study of such functions.  For this we must define with complete
 precision which conjunctions are allowed for connecting propositions
 and how they should be interpreted.  Natural language is far too
 ambiguous to afford a solid basis for the construction	of a rigorous
 system.


\section Negation

 Given a single proposition (for instance \(4)It is raining\()), there is
 just one way of defining another proposition whose truth-value is a
 nontrivial function of the truth-value of the original proposition:
 negating that proposition.  \(4)It is not raining\() is true when
 \(4)It is raining\() is false, and false when \(4)It is raining\() is true.

 Moving from a proposition to its negation is not always so easy and
 there is sometimes a danger of ambiguity; we can avoid the danger 
 (in a somewhat clumsy but unambiguous way) if we form the negation
 by just prefixing \(4)It is not the case that...\() to the proposition.

 The negation of a propositional variable is represented by placing a
 horizontal bar (or a tilde) in front of the letter identifying the
 variable; the bar may also be placed over the letter:

		     \(11,0)\{173}\()p		 \(1,0)p\()


 The precise meaning of a connective (and therefore the corresponding
 truth-function) is usually defined by means of a simple device
 called a \[truth-table].  Each row of the table lists, on the left
 side, a combination of truth-values for the propositions occurring
 within the truth-function and, on the right side, the corresponding
 truth-value of the function.  There is one row for each possible
 combination, so the function is completely and unambiguously
 defined.

 The \[truth-table for negation] is about the simplest possible 
 truth-table.


\section Conjunction

 We have already seen how we can form a compound sentence by joining
 two sentences with \(4)and\().  The equivalent for two propositions \(4)p\()
 and \(4)q\() is called the \(4)conjunction\() of \(4)p\() and \(4)q\(); the connective is
 represented by \(11,0)\{174}\()  but the letters for the propositional variables
 may also be simply juxtaposed.

		     p\(11,0)\{174}\()q 	 pq
	

 As the \[truth-table for conjunction] shows, the interpretation of
 conjunction agrees with the interpretation, in ordinary language,
 of compound sentences formed by using \(4)and\().


\section Disjunction

 Another common way of forming a compound sentence is by joining two
 sentences with \(4)or\().  The equivalent construct for propositions is
 called a \(4)disjunction\(); the connective for disjunction is \(11,0)\{246}\().  

 As the \[truth-table for disjunction] shows, it corresponds to the
 usual, so called `inclusive', interpretation of \(4)or\() in ordinary
 language: we consider \(4)John is either a liar or a fool\() true if John
 is in fact both a liar and a fool.


\section How many connectives?

 You may by now be wondering how long the list of connectives is
 going to be (there are, after all, sixteen possible truth-tables for
 connectives joining two propositions).  Actually, we have already
 introduced more connectives than are strictly necessary! A system
 of truth-functional logic can be built using only negation and
 either conjunction or disjunction and it is even possible to define
 a single connective, the so-called Sheffer's stroke for instance,
 that is sufficient for the development of truth-functional logic.
 We shall not go into details (which may be found in any textbook
 of logic) because, though such reductions are interesting from a
 theoretical point of view, in practice it is much more convenient
 to have a richer and more expressive set of connectives at our
 disposal.

 Truth functional logic traditionally use two more connectives,
 in addition to negation, conjunction and disjunction.  The new
 connectives are different from those we have seen so far in that
 they are much less directly related to the way we form compound
 sentences in ordinary language.  Looking for the precise equivalent,
 in ordinary language, of the new connectives is, as we shall see,
 not only unhelpful but often actually misleading.

\section Implication

 The connective for implication is \(11)\{190}\() (or \(11)\{26}\()).

 The \[truth-table\=truth-table for implication] shows that
				 \(2,0)p\(11,0)\{190}\(2,0)q

 has the value \(4)F\() only when \(4)p\() is true and \(4)q\() is false, and has the
 value \(4)T\() in all other cases. 

 \(4)Implication\() is a rather unfortunate name, since in natural language
 (especially philosophical language) the word has a very wide and
 complex range of applications, which cannot be	reduced to those of
 the simple connective we have just defined.  
 
 An alternative name for
				 \(2,0)p\(11,0)\{190}\(2,0)q

 is \(4)conditional\().  This is perhaps the most common usage, and we
 shall adopt it. \(4)p\() is called the \(4)antecedent\() and \(4)q\() the \(4)consequent\()
 of the conditional.

 Unfortunately, the new name can also be a source of confusion,
 since it suggests an analogy with `\(4)if ... then ... \()' sentences
 of ordinary language.

 Pushing the analogy too far leads to paradoxical consequences such
 as the fact that both these sentences 

	\(4)If Paris is the capital of Italy, then 2+2=4\()

	\(4)If Paris is the capital of Italy, then 2+2=5\()

 must, if interpreted as instances of the conditional, be assigned
 the truth-value \(4)T\().

 Even worse complications arise in connection with the so-called 
 \(4)counterfactuals\() such as \(4)If the Germans had invaded England in 1940,
 \(4)they would have won the war.\().

 To avoid such misunderstandings, the names are usually	qualified 
 with the adjective \(4)material\() and we talk of \(4)material implication\()
 and \(4)material conditional\().

 The relation between logic and ordinary language is a vast and 
 difficult subject which we will not go into here. Most textbooks
 on logic (including those by Quine) discuss the problem.

 For our purposes, the best approach is to see no more in the 
 conditional than is implied by the truth-table which defines it.
 With this proviso, thinking of the conditional as the equivalent
 of an `\(4)if ... then ... \()' sentence will not be misleading in most
 practical applications of truth-functional logic.


\section Equivalence

 The connective for equivalence is \(11)\{189}\() (or \(11)\{29}\()).

 The \[truth-table\=truth-table for equivalence] shows that
				 \(2,0)p\(11,0)\{189}\(2,0)q    

 has the value \(4)T\() only when \(4)p\() and \(4)q\() have the same truth-value.

 There are some analogies in ordinary language, in which the
 sentence \(4)John is a bachelor\() would be considered `equivalent'
 to the	sentence \(4)John is an unmarried man\().

 But, again, analogy is dangerous.  Another name for equivalence is
 (\(4)material\()) \(4)biconditional\() (since it can be seen as an abbreviated
 expression of the joint assertion of \(2,0)p\(11,0)\{190}\(2,0)q \() and \(2,0)q\(11,0)\{190}\(2,0)p\()) and it is
 tempting to read it as corresponding to `\(4)if and only if\()', so
 getting into the difficulties that we have seen in connection with
 the conditional.


\section Formulas

 The logical connectives have been defined in relation only to
 propositional variables, but it should be obvious that they can
 also be applied to arbitrary truth-functions.  We might form, for
 instance, the conjunction of two disjunctions, then the negation of
 such a conjunction, and so on, building up formulas of arbitrary
 complexity, using parentheses to show the proper nesting of
 connectives.  We can give a rigorous definition of a formula as
 follows:

 a) a propositional variable is a formula;
 b) if \(10,0)\{225}\() is a formula, then \(11,0)\{173}\(10,0)\{225}\() is a formula;
 c) if \(10,0)\{225}\(), \(10,0)\{226}\() are formulas, then (\(10,0)\{225}\(11,0)\{174}\(10,0)\{226}\()) (\(10,0)\{225}\(11,0)\{246}\(10,0)\{226}\()) (\(10,0)\{225}\(11,0)\{190}\(10,0)\{226}\()) (\(10,0)\{225}\(11,0)\{189}\(10,0)\{226}\()) are formulas.  

 The definition leads to formulas such as, for instance,

			\(2,0)(((p\(11,0)\{174}\(1,0)q\(2,0))\(11,0)\{246}\(2,0)(p\(11,0)\{174}\(1,0)r\(2,0)))\(11,0)\{190}\(2,0)(p\(11,0)\{174}\{173}\(2,0)(q\(11,0)\{174}\(2,0)r)))

 Dealing with formulas with so many parentheses can be tiresome and
 it is customary to introduce conventions that allow the number of
 parentheses to be substantially reduced.  One convention is that the
 outermost parentheses (enclosing the whole formula) may be dropped.
 Another convention defines an order of priority (or `binding power')
 for the connectives.  Negation is assigned the highest priority,
 followed by conjunction, disjunction, implication and equivalence,
 in this order (this is the convention used in \(4)QUINE\(); sometimes
 just three levels of priority are used, assigning conjunction and
 disjunction to the same intermediate level, and implication and
 equivalence to the lowest level).  With these conventions, and
 dropping the connective for conjunction, the formula above may be
 rewritten as:

			\(2,0)p\(1,0)q\(11,0)\{246}\(2,0)p\(1,0)r\(11,0)\{190}\(2,0)p\(11,0)\{174}\{173}\(2,0)(qr)

 which is much more readable.


\section Evaluating a formula

 Given a formula such as
			 \(2,0)p\(1,0)q\(11,0)\{246}\(2,0)p\(1,0)r\(11,0)\{190}\(2,0)p\(11,0)\{174}\{173}\(2,0)(qr)

 we might be interested in its value for some particular assignment
 of truth-values to the variables occurring within the formula, say
 \(4)T\() for \(4)p\() and \(4)r\(), \(4)F\() for \(4)q\().

 Computing the truth-value is quite easy (if somewhat tedious):	it
 suffices to apply the rules defined by the truth-tables.

 The procedure will be clearer if we start from the original, fully
 parenthesized, formula.

		     \(2,0)(((\(4)T\()\(11,0)\{174}\(1,0)\(4)T\()\(2,0))\(11,0)\{246}\(2,0)(\(4)T\()\(11,0)\{174}\(1,0)\(4)F\()\(2,0)))\(11,0)\{190}\(2,0)(\(4)T\()\(11,0)\{174}\{173}\(2,0)(\(4)F\()\(11,0)\{174}\(2,0)\(4)T\())))
		     \(2,0)((  \(4)T\()  \(11,0)\{246}\(2,0)  \(4)F\()  )\(11,0)\{190}\(2,0)(\(4)T\()\(11,0)\{174}\{173}\(2,0)  \(4)F\()  ))
		     \(2,0)(      \(4)T\()      \(11,0)\{190}\(2,0)  \(4)T\()       )
		     \(2,0)              \(4)T\()

 But the evaluation of a formula for a specific set of truth-values
 of its variables is not really important in truth-functional logic.
 Much more interesting is the question: which values does the formula
 take for all possible assignments of truth-values to the variables
 occurring in the formula?  There are three possibilities:

 \(4)\{254}\()  The formula evaluates to \(4)T\() for any assignment of truth-values to
    the variables.  The simplest examples are formulas such as \(2,0)p\(11,0)\{246}\(1,0)p
    and \(2,0)p\(11,0)\{190}\(2,0)p\(); a slightly more complex example is the formula we have
    just evaluated.

    The formula is said to be \(4)valid\() or a \(4)tautology\().


 \(4)\{254}\()  The formula evaluates to \(4)F\() for any assignment of truth-values to
    the variables.  The simplest example is \(2,0)p\(11,0)\{174}\(1,0)p\().

    The formula is said to be \(4)contradictory\().


 \(4)\{254}\()  The formula in neither valid nor contradictory. It evaluates to
    \(4)T\() for some assignments of truth-values and it evaluates to \(4)F\()
    for some other assignments.

    The formula is said to be \(4)noncontradictory\() or satisfiable.


 Truth-functional logic is almost exclusively concerned with the
 study of valid formulas.  This may seem somewhat surprising, since,
 in a sense, valid formulas `say nothing': being true in all possible
 states of affairs, they cannot convey any information about how
 things actually stand.


\section Inference

 To understand why valid formulas are so crucial for logic, we must
 remember that traditionally the primary objective of logic has been
 to establish rules for the construction of sound arguments.

 In putting forth an argument, we present a set of propositions (the
 \(4)premises\()) and another proposition (the \(4)conclusion\()) and we assert
 that it impossible for the premises to be true and the conclusion
 false, so that we are justified in inferring from the truth of the
 premises the truth of the conclusion.

 Although the word may be unfamiliar, we actually make inferences
 all the time, in everyday life.  If you go out in the morning and
 notice that the roads and sidewalks are wet, you infer that it must
 have rained during the night.  And from \(4)John has drunk a bottle
 \(4)of whisky\() you would infer \(4)John is drunk\().  You would be justified
 in making these inferences, since it is impossible to imagine a
 state of affairs in which the premises are true and the conclusion
 false.  But the impossibility of such a state of affairs is a purely
 practical matter: the inference about John, for instance, depends on
 known facts about the effects of alcohol on the human body.  We have
 already seen that logic is not concerned with what actually happens
 to be the case in the real world; it has therefore nothing to say
 about this type of inferences.

 Logic can justify an argument only when this can be done exclusively
 in terms of the logical structure of premises and conclusion,
 without any reference to what actually happens to be the case: it
 must be impossible as a matter of principle, and not just of fact,
 for the conclusion to be false when the premises are true.

 Consider the following argument:

 Premises
	 	\(4)If it rains, the match is cancelled\()
		\(4)It rains\()
 Conclusion
		\(4)The match is cancelled\()

 The argument is clearly correct.  Moreover, if we let \(4)p\() stand for
 \(4)It rains\() and \(4)q\() stand for \(4)The match is cancelled\(), we obtain the
 scheme :
 
 Premises
		\(2,0)p\(11,0)\{190}\(2,0)q
		p
 Conclusion
		q

 from which we may obtain a correct argument by substituting \(4)any\()
 proposition for \(4)p\() and \(4)q\().  This inference scheme is so common that
 there exists a traditional Latin label for it: \(4)modus ponens\().

 Before proceeding further, it is necessary to dispel a common
 misconception about arguments.  In ordinary life, we usually advance
 an argument when we already know the premises to be true and want to
 justify the truth of the conclusion and we have a natural tendency
 to accept an argument if we believe its premises and conclusion and
 to reject it if we do not believe them.  This cannot, of course,
 be the point of view of logic, which, as we have already seen, is
 never concerned with the actual truth or falsehood of particular
 propositions.
 
 By replacing \(4)p\() with \(4)pigs have wings\() and \(4)q\() with \(4)pigs fly\() in the
 \(4)modus ponens\() scheme, we get the argument:
 
 Premises
	 	\(4)If pigs have wings, pigs fly\()
	 	\(4)Pigs have wings\()
 Conclusion
	 	\(4)Pigs fly\()
 
 which we would tend to dismiss as incorrect or nonsensical.

 It is nonetheless a perfectly correct argument from the point of
 view of logic, since it is impossible for the premises	to be true
 and the conclusion false; the accidental fact that we know that one
 of the premises is false has no bearing on the	correctness of the
 argument as such.
 
 
\section Proving correctness
 
 Stating that an argument is clearly correct is not enough.  We
 must, using the tools provided by truth-functional logic, give a
 \(4)proof\() of correctness: i.e. show that it is impossible for the
 premises to be true and the conclusion false.  How can this be done,
 for instance, for the \(4)modus ponens\() scheme?
 
 Consider the conditional having the conjunction of the premises as
 its \[antecedent\=Antecedent and consequent] and the conclusion as its \[consequent\=Antecedent and consequent]:
 
			\(2,0)((p\(11,0)\{190}\(2,0)q)\(11,0)\{174}\(2,0)p)\(11,0)\{190}\(2,0)q
 
 The \[truth-table for the conditional\=truth-table for implication] shows that the conditional takes
 the truth-value \(4)F\() in just one case: when the antecedent is true and
 the consequent is false.  This corresponds to a state of affairs
 in which the premises are true and the conclusion false, which is
 exactly the state of affairs that we want to prove impossible. So
 we only need to show that the conditional never has the truth-value
 \(4)F\(), i.e. is a valid formula.  As can be easily verified (perhaps
 using \(4)QUINE\()), the formula is indeed valid.
 
 The procedure is applicable to any argument: to show that it is a
 correct argument, form the appropriate conditional and check that
 the conditional is a valid formula. We now see why valid formulas
 are of such crucial importance in truth-functional logic.

\section Equivalent formulas

 It is sometimes useful to rewrite a formula using different
 connectives.  We may, for instance, rewrite  \(11,0)\{173}\(2,0)(pq)  as  \(1,0)p\(11,0)\{246}\(1,0)q

 In this simple case, a moment's reflection will suffice to
 convince us that the rewriting is correct.  With more complex
 formulas, before we can feel justified in substituting a formula
 for another we must show that, for any assignment of truth-values
 to the variables, the formulas always have the same truth-value.
 This is a necessary condition if the substitution is to happen
 \[salva veritate].

 We could, of course, just tediously list all possible combinations
 of truth-values for the variables and check, for each combination,
 the truth-values of the formulas. There is, however, a much simpler
 and quicker solution. Just form the biconditional with the formulas
 on either side
		     \(11,0)\{173}\(2,0)(pq)\(11,0)\{189}\(1,0)p\(11,0)\{246}\(1,0)q

 and check that it is a valid formula.  The \[truth table\=Truth-table for equivalence] shows that, 
 if the biconditional is a valid formula, the formulas on either side
 can never have different truth-values.

 This biconditional and the corresponding biconditional for 
 disjunction
		     \(11,0)\{173}\(2,0)(p\(11,0)\{246}\(2,0)q)\(11,0)\{189}\(1,0)pq

 are perhaps the most `popular' formulas of truth-functional logic.
 They are called \(4)De Morgan's rules\(), though they were actually known
 several centuries before \[De Morgan\=Augustus de Morgan]'s time.


\section The limits of truth-functional logic

 Truth-functional logic is a powerful tool but it cannot provide
 an exhaustive solution to the problem of justifying arguments.
 One does not have to look far to come upon arguments that cannot
 be analysed within the framework of truth-functional logic.  This
 is a classic example:

 Premises
	 	\(4)All men are mortal\()
		\(4)Socrates is a man\()
 Conclusion
		\(4)Socrates is mortal\()

 Though the argument is obviously correct, there is no way of 
 proving it using the techniques of truth-functional logic. 
 Arguments, such as this, which rely on notions corresponding to
 \(4)all\(), \(4)some\(), \(4)none\(), are the object of another system of logic:
 \(4)first-order predicate logic\().

 Truth-functional logic does not, however, lose its value. In most
 systems of logic, an argument that can	be proved correct by using 
 the tools of truth-functional logic only is generally accepted as
 correct. Truth-functional logic plays an important role in the
 development of proofs in first-order predicate logic and a mastery
 of the techniques of truth-functional logic is a requisite for the
 study of predicate logic.

 Truth-functional logic, on the other hand, has a unique advantage
 over other, more complex, systems of logic.  We have seen that,
 within	truth-functional logic, it is always possible to get a 
 definite \(4)yes\() or \(4)no\() answer to the question \(4)Is this argument correct?
 by using a purely mechanical procedure, an \[algorithm] (it is the
 existence of an algorithm that makes a	program like \(4)QUINE\() possible).

 There is no equivalent procedure for predicate logic and higher
 systems of logic.  This is not just a temporary and contingent
 limitation in our knowledge: Alonzo Church has proved, in 1936,
 that such an algorithm \(4)cannot\() exist.

\area 3
\section QUINE is distributed under the terms of the GNU General Public License

		    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program",
below, refers to any such program or work, and a "work based on the
Program" means either the Program or any derivative work under
copyright law:  that is to say, a work containing the Program or a
portion of it, either verbatim or with modifications and/or
translated into another language.  (Hereinafter, translation is
included without limitation in the term "modification".)  Each
licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the
Program is covered only if its contents constitute a work based on
the Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any
warranty; and give any other recipients of the Program a copy of this
License along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a
fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that
    in whole or in part contains or is derived from the Program or
    any	part thereof, to be licensed as a whole at no charge to all
    third parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you
    provide a warranty) and that users may redistribute the program
    under these conditions, and telling the user how to view a copy
    of this License.  (Exception: if the Program itself is
    interactive but does not normally print such an announcement,
    your work based on the Program is not required to print an
    announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work
based on the Program, the distribution of the whole must be on the
terms of this License, whose permissions for other licensees extend
to the entire whole, and thus to each and every part regardless of
who wrote it.

Thus, it is not the intent of this section to claim rights or
contest your rights to work written entirely by you; rather, the
intent is to exercise the right to control the distribution of
derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the
Program with the Program (or with a work based on the Program) on a
volume of a storage or distribution medium does not bring the other
work under the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms
of Sections 1 and 2 above provided that you also do one of the
following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of
    Sections 1 and 2 above on a medium customarily used for software
    interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a
    medium customarily used for software interchange; or,

    c) Accompany it with the information you received as to the
    offer to distribute corresponding source code.  (This alternative
    is allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as
a special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this
License.  However, parties who have received copies, or rights, from
you under this License will not have their licenses terminated so
long as such parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on
the Program), the recipient automatically receives a license from
the original licensor to copy, distribute or modify the Program
subject to these terms and conditions.  You may not impose any
further restrictions on the recipients' exercise of the rights
granted herein.  You are not responsible for enforcing compliance by
third parties to this License.

  7. If, as a consequence of a court judgment or allegation of
patent infringement or for any other reason (not limited to patent
issues), conditions are imposed on you (whether by court order,
agreement or otherwise) that contradict the conditions of this
License, they do not excuse you from the conditions of this
License.  If you cannot distribute so as to satisfy simultaneously
your obligations under this License and any other pertinent
obligations, then as a consequence you may not distribute the
Program at all.  For example, if a patent license would not permit
royalty-free redistribution of the Program by all those who receive
copies directly or indirectly through you, then the only way you
could satisfy both it and this License would be to refrain entirely
from distribution of the Program.

If any portion of this section is held invalid or unenforceable
under any particular circumstance, the balance of the section is
intended to apply and the section as a whole is intended to apply in
other circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is
willing to distribute software through any other system and a
licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed
to be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces,
the original copyright holder who places the Program under this
License may add an explicit geographical distribution limitation
excluding those countries, so that distribution is permitted only in
or among countries not thus excluded.  In such case, this License
incorporates the limitation as if written in the body of this
License.

  9. The Free Software Foundation may publish revised and/or new
versions of the General Public License from time to time.  Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.

Each version is given a distinguishing version number.  If the
Program specifies a version number of this License which applies to
it and "any later version", you have the option of following the
terms and conditions either of that version or of any later version
published by the Free Software Foundation.  If the Program does not
specify a version number of this License, you may choose any version
ever published by the Free Software Foundation.

  10. If you wish to incorporate parts of the Program into other
free programs whose distribution conditions are different, write to
the author to ask for permission.  For software which is copyrighted
by the Free Software Foundation, write to the Free Software
Foundation; we sometimes make exceptions for this.  Our decision
will be guided by the two goals of preserving the free status of all
derivatives of our free software and of promoting the sharing and
reuse of software generally.

			    NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND
PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE
DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
		     END OF TERMS AND CONDITIONS
\area 4
\section QUINE comes with ABSOLUTELY NO WARRANTY

BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT
WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER
PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

\area 5

\section Help on Help




	\{254} \<The structure of help information>

	\{254} \<Reading sequentially>

	\{254} \<Links and notes>

		\{254} \<Following a link>

		\{254} \<Displaying a note>


\section The structure of help information


 Help information is laid out in sections. You can \<read\=Reading a section> the sections
 either \<sequentially\=Reading sequentially>, or by following \<links\=Following a link> from one section to
 another. 
 

 To close the help window, click on the \(7,5)  \(4)C\(7)ancel  \() button, or press
 \(4)C\() or \(4)Alt-C\() or \(4)Esc\().

\section Reading a section
 

 You can scroll through the text with the \(4)up\() and \(4)down arrow\() keys
 or by means of the scroll bar.

 The \(4)PgUp\() and \(4)PgDn\() keys can also be used to move through the text.

 The scroll bar at the right-hand side of the help window shows how
 much of the current page is displayed.  Use the mouse to scroll up
 or down the text by clicking on the up or down arrows.  You can also
 move the scroll bar by clicking the mouse above or below the scroll
 bar slider.  The slider can be moved by pressing the mouse left
 button	over it and dragging it to the required position.

\section Reading sequentially
        

 To move forward to the next section, click on the \(7,5)  \(4)N\(7)ext  \() button
 or press \(4)N\() or \(4)Alt-N\().
 

 To move back to the previous section, click on the \(7,5)  \(4)P\(7)revious  \()
 button	or press \(4)P\() or \(4)Alt-P\().

\section Links and notes

 Some words in the text are show in a different color. They either
 represent a \<link to another section\=dummy>, which you can jump to
 directly by selecting the link, or correspond to an \[explanatory\=dummy]
 \[note\=dummy] which you can display without moving from the current section.

 Using the keyboard, to select a link or display a note you must 
 first \(15,3)highlight\() the corresponding keywords by moving the cursor
 anywhere within them and then press \(4)Enter\().
  
 The \(4)Tab\() key moves the cursor directly to the next group of link
 or note keywords on the screen. \(4)Shift Tab\() moves the cursor to the
 previous group.

 Clicking with the mouse anywhere within the keywords selects the
 link or displays the note.

\section Following a link


 To select a link with the keyboard, you must first \(15,3)highlight\() the
 corresponding keywords and then press \(4)Enter\().  With the mouse just
 click the left mouse button anywhere within the keywords.

 After selecting a link, you can go back to the section containing
 the link by clicking on the \(7,5)  \(4)B\(7)acktrack  \() button or pressing \(4)B\()
 or \(4)Alt-B\().


\section  Displaying a note
        

 To display a note with the keyboard, you must first \(15,3)highlight\()
 the corresponding keywords and then press \(4)Enter\().  With the mouse
 just click the left mouse button anywhere within the keywords.


 The note will be displayed and will remain on the screen until you
 press any key or click a mouse button.


\area 6
\section Willard Van Orman Quine
(born 1908)

One of the 20th century's most influential philosophers.

His philosophical works include \(6)From a Logical Point of View\()
and \(6)Word and Object\(). 

He has also made important contributions to logic with, among
others books, \(6)Mathematical Logic\() and \(6)Set Theory and its Logic\().

\section Truth-table        

The truth-table for a truth-function lists all combinations of
truth-values for the variables that appear within the function,
giving,	for each combination, the truth-value of the function.	

\section Truth-table for negation      

			\(5)\{218,196*3,210,196*5,191}
			\{179} \()p \(5)\{186} \() \{173}p \(5)\{179}
			\(5)\{198,205*3,206,205*5,181}
			\(5)\{179} \(6)T\(5) \{186}  \(6)F\(5)  \{179}
			\(5)\{179} \(6)F\(5) \{186}  \(6)T\(5)  \{179}
			\(5)\{192,196*3,208,196*5,217}

\section Truth-table for conjunction      

			\(5)\{218,196*3,194,196*3,210,196*5,191}
			\{179} \()p \(5)\{179} \()q \(5)\{186} \()p\{174}q \(5)\{179}
			\(5)\{198,205*3,216,205*3,206,205*5,181}
			\(5)\{179} \(6)T\(5) \{179} \(6)T\(5) \{186}  \(6)T\(5)  \{179}
			\(5)\{179} \(6)T\(5) \{179} \(6)F\(5) \{186}  \(6)F\(5)  \{179}
			\(5)\{179} \(6)F\(5) \{179} \(6)T\(5) \{186}  \(6)F\(5)  \{179}
			\(5)\{179} \(6)F\(5) \{179} \(6)F\(5) \{186}  \(6)F\(5)  \{179}
			\(5)\{192,196*3,193,196*3,208,196*5,217}

\section Truth-table for disjunction      

			\(5)\{218,196*3,194,196*3,210,196*5,191}
			\{179} \()p \(5)\{179} \()q \(5)\{186} \()p\{246}q \(5)\{179}
			\(5)\{198,205*3,216,205*3,206,205*5,181}
			\(5)\{179} \(6)T\(5) \{179} \(6)T\(5) \{186}  \(6)T\(5)  \{179}
			\(5)\{179} \(6)T\(5) \{179} \(6)F\(5) \{186}  \(6)T\(5)  \{179}
			\(5)\{179} \(6)F\(5) \{179} \(6)T\(5) \{186}  \(6)T\(5)  \{179}
			\(5)\{179} \(6)F\(5) \{179} \(6)F\(5) \{186}  \(6)F\(5)  \{179}
			\(5)\{192,196*3,193,196*3,208,196*5,217}

\section Truth-table for implication      

			\(5)\{218,196*3,194,196*3,210,196*5,191}
			\{179} \()p \(5)\{179} \()q \(5)\{186} \()p\{190}q \(5)\{179}
			\(5)\{198,205*3,216,205*3,206,205*5,181}
			\(5)\{179} \(6)T\(5) \{179} \(6)T\(5) \{186}  \(6)T\(5)  \{179}
			\(5)\{179} \(6)T\(5) \{179} \(6)F\(5) \{186}  \(6)F\(5)  \{179}
			\(5)\{179} \(6)F\(5) \{179} \(6)T\(5) \{186}  \(6)T\(5)  \{179}
			\(5)\{179} \(6)F\(5) \{179} \(6)F\(5) \{186}  \(6)T\(5)  \{179}
			\(5)\{192,196*3,193,196*3,208,196*5,217}

\section Truth-table for equivalence      

			\(5)\{218,196*3,194,196*3,210,196*5,191}
			\{179} \()p \(5)\{179} \()q \(5)\{186} \()p\{189}q \(5)\{179}
			\(5)\{198,205*3,216,205*3,206,205*5,181}
			\(5)\{179} \(6)T\(5) \{179} \(6)T\(5) \{186}  \(6)T\(5)  \{179}
			\(5)\{179} \(6)T\(5) \{179} \(6)F\(5) \{186}  \(6)F\(5)  \{179}
			\(5)\{179} \(6)F\(5) \{179} \(6)T\(5) \{186}  \(6)F\(5)  \{179}
			\(5)\{179} \(6)F\(5) \{179} \(6)F\(5) \{186}  \(6)T\(5)  \{179}
			\(5)\{192,196*3,193,196*3,208,196*5,217}

\section Valid

A formula is \(6)valid\() if it is true for any assignment of
truth-values to the variables occurring in the formula.

A valid formula is also called a \(6)tautology\().

\section Contradictory

A formula is \(6)contradictory\() if it is false for any assignment of
truth values to the variables occurring in the formula.

\section Noncontradictory

A formula is \(6)noncontradictory\() if it is true for some assignments
of truth values to the variables occurring in the formula, and
false for some other assignments.

\section Antecedent and consequent

In a conditional \(6)p\{190}q\(),  \(6)p\() is called the antecedent and \(6)q\() the
consequent of the conditional. 
			
\section salva veritate

Latin for: \(6)truth being preserved\().  A concept first introduced
by Leibniz (1646-1716) as a condition for synonimity. 

Thus, `unmarried man' may be substituted, \(6)salva veritate\(),
for `bachelor' in any sentence where the term occurs.

\section Augustus De Morgan
(1806-1871)

English	mathematician.

One of the pioneers of modern symbolic logic.

\section Algorithm

An explicit, well defined procedure for the solution of a
problem	in a finite number of steps.

\end
