Language and Logical Form / Part I: |
Atomic Statements / 1: |
Vagueness and Ambiguity / 1.1: |
Logical English / 1.2: |
Names / 1.3: |
Predicates / 1.4: |
Descriptions / 1.5: |
Compound Statements / 1.6: |
Truth Functional Connectives / 2.1: |
Statements with Multiple Connectives / 2.2: |
Parenthesis Dropping Conventions / 2.3: |
Quantified Statements / 3: |
Logical Variables / 3.1: |
Conditions / 3.2: |
Open Descriptions / 3.3: |
Quantifiers / 3.4: |
Expressing Arguments / 4: |
Arguments / 4.1: |
Deductive and Inductive Arguments / 4.2: |
Some Practical Suggestions / 4.3: |
Expressing the Logical Structures of Arguments / 4.4: |
Defining Data Structures / 5: |
Properties of the Identity Relation / 5.1: |
Identity is Reflexive, Symmetric, and Transitive / 5.1.1: |
Leibniz's Law / 5.1.2: |
Sets / 5.2: |
Bags / 5.2.2: |
Sequences / 5.2.3: |
Relations / 5.2.4: |
Functions / 5.2.5: |
Stacks / 5.2.6: |
1-Dimensional Arrays / 5.2.7: |
Expressing Problem Specifications / 6: |
Functional Problem Specifications / 6.1: |
What Can Go Wrong with Problem Specifications / 6.2: |
Expressing Problem Specifications with Logical English / 6.3: |
Expressing Program Designs / 7: |
Pseudocode for Instructions / 7.1: |
Atomic Instructions / 7.1.1: |
Compound Instructions / 7.1.2: |
Pseudocode for Algorithms / 7.2: |
Material Truth / Part II: |
Truth for Statements with at Most One Connective / 8: |
The Laws of Excluded Middle and Noncontradiction / 8.1: |
Negation / 8.2: |
Conjunction / 8.3.2: |
Disjunction: Inclusive and Exclusive / 8.3.3: |
Material Equivalence / 8.3.4: |
Material Implication / 8.3.5: |
Summary of Material Truth Conditions / 8.4: |
Some Applications / 8.7: |
Short Cut Evaluation: "cand" and "cor" / 8.7.1: |
Bitwise Extensions of Truth Functions / 8.7.2: |
Truth for Statements with Multiple Connectives / 9: |
Computing Truth Values of Compound Statements / 9.1: |
Reducing the Need for Parentheses / 9.1.2: |
How to Make Truth Tables for Compound Statements / 9.2: |
The Four Parts of a Truth Table / 9.2.1: |
Organizing a Truth Table Calculation / 9.2.2: |
Reading Truth Tables from Right to Left / 9.3: |
Tracing Program Execution / 10: |
Tracing Program Execution Forwards / 10.1: |
Event Trace Tables / 10.1.1: |
Value Trace Tables / 10.1.2: |
Tracing with Complex Conditions / 10.1.3: |
Tracing Program Execution Backwards / 10.2: |
Logical Truth / Part III: |
Truth Functional Forms / 11: |
Overview / 11.1: |
Interpretations of Truth Functional Forms / 11.2: |
Truth Under an Interpretation / 11.4: |
Truth Functional Truth, Falsity, and Contingency / 11.5: |
Using Forms to Find the Logical Status of English Statements / 11.6: |
Application to Simplifying Statements and Conditions / 11.7: |
Truth Functional Properties of Program Designs / 12: |
The General Form of Decision Tables / 12.1: |
Limited Entry Decision Tables / 12.2: |
The Basic Form / 12.2.1: |
Simplifying Tables with "Don't Care" Condition Entries / 12.2.2: |
Extended Entry Decision Tables / 12.3: |
Decision Tables and Other Control Structures / 12.4: |
Consistency, Completeness, and Redundancy of Decision Tables / 12.5: |
Quantified Forms / 13: |
How Truth Functional Logic Differs from Quantificational Logic / 13.1: |
Well Formed Forms / 13.2: |
Interpretations of Wffs / 13.3: |
Truth of Wffs in an Interpretation / 13.4: |
Logical Truth of Wffs / 13.5: |
Using Wffs to Determine the Logical Status of English Statements / 13.6: |
Conditions Revisited / 13.7: |
Summary of Classifications / 13.8: |
Logical Equivalence / 14: |
Truth Functional Equivalence / 14.1: |
Applications of Truth Functional Equivalence / 14.2: |
Equivalence and Simplification of Program Instructions / 14.2.1: |
Equivalence and Simplification of SQL Select Instructions / 14.2.2: |
Logical Equivalence of Wffs / 14.3: |
Logical Equivalence of Conditions / 14.3.2: |
Applications of Logical Equivalence / 14.4: |
Simplification of Problem Specifications / 14.4.1: |
Detecting Redundancy / 14.4.2: |
Logical Implication and Validity / 15: |
Logical Implication / 15.1: |
Logical Validity / 15.1.2: |
Soundness / 15.1.3: |
Determining Validity / 15.2: |
Degrees of Formality / 15.2.1: |
Arguments and Corresponding Conditionals / 15.2.2: |
Truth Functional Validity / 15.2.3: |
Rules of Inference / 15.2.4: |
Limitations of Truth Table Tests / 16.1: |
Formal Rules of Inference / 16.2: |
Correct and Incorrect Rules of Inference / 16.2.2: |
Some Truth Functional Rules of Inference / 16.3: |
Examples of Correct Rules of Inference / 16.3.1: |
Some Properties of Rules of Inference / 16.3.2: |
Examples of Incorrect Rules of Inference (Formal Fallacies) / 16.3.3: |
Proof / 17: |
Kinds of Proof / 17.1: |
Different Senses of Proof / 17.1.1: |
Formal vs Informal Proofs / 17.1.2: |
Two Ways of Organizing Proofs / 17.2: |
Three Proof Strategies / 17.3: |
Direct Proof / 17.3.1: |
Conditional Proof / 17.3.2: |
Indirect Proof / 17.3.3: |
Applying Logic to Specific Subjects / 17.4: |
Using Instances Of General Forms / 17.4.1: |
Adding Nonlogical Justifications / 17.4.2: |
Algorithmic Unsolvability Proofs / 18: |
Algorithmic Solvability and Unsolvability / 18.1: |
The Halting Problem is Algorithmically Unsolvable / 18.2: |
Other Algorithmically Unsolvable Problems / 18.3: |
Program Correctness Proofs / 19: |
The Limits of Testing / 19.1: |
Proofs Expressed in English Prose / 19.2: |
Proofs Using Floyd's Method of Invariant Assertions / 19.3: |
Rules of Inference Involving Algorithms / 19.4: |
Notation for Statements Involving Instructions / 19.4.1: |
The Assignment Rule / 19.4.2: |
Rules of Inference about Control Structures / 19.4.3: |
Proofs Using Rules of Inference / 19.5: |
Above and Beyond this Book / 20: |
Other Texts on Classical Logic / 20.1: |
Standard Texts / 20.1.1: |
Computer Oriented Texts / 20.1.2: |
Extensions of Classical Logic / 20.2: |
Floyd-Hoare Logic / 20.2.1: |
Temporal, Modal, and Dynamic Logics / 20.2.2: |
Rivals to Classical Logic / 20.3: |
Applications of Logic to Computing or Computing to Logic / 20.4: |
Logic Circuits / 20.4.1: |
3-Valued Logic and SQL / 20.4.2: |
More on Expressing and Using Specifications / 20.4.3: |
Logic Testing of Software / 20.4.4: |
Computability and Algorithmic Unsolvability / 20.4.5: |
AI and Computer Aided Reasoning / 20.4.6: |
Quantum Computing and Programming / 20.4.7: |
Programming Challenges / 20.5: |
Solutions to Selected Exercises |
Chapter 1 |
Chapter 2 |
Chapter 3 |
Chapter 4 |
Chapter 5 |
Chapter 6 |
Chapter 7 |
Chapter 8 |
Chapter 9 |
Chapter 10 |
Chapter 11 |
Chapter 12 |
Chapter 13 |
Chapter 14 |
Chapter 15 |
Chapter 16 |
Chapter 17 |
Chapter 18 |
Chapter 19 |
Sources and Bibliography |
Index |
Language and Logical Form / Part I: |
Atomic Statements / 1: |
Vagueness and Ambiguity / 1.1: |
Logical English / 1.2: |
Names / 1.3: |
Predicates / 1.4: |