40,440 bytes added
, 21:44, 22 May 2007
In [[mathematical logic]], a '''propositional calculus''' ('''sentential calculus''') is a [[formal system]] that represents the materials and the principles of ''propositional logic'' (''sentential logic''). Propositional logic is a domain of formal subject matter that is, up to [[isomorphism]], constituted by the structural relationships of mathematical objects called ''[[proposition (mathematics)|proposition]]s''.
In general terms, a calculus is a [[formal system]] that consists of a set of syntactic expressions (''well-formed formulas'' or ''wffs''), a distinguished subset of these expressions, plus a set of transformation rules that define a [[binary relation]] on the space of expressions.
When the expressions are interpreted for mathematical purposes, the transformation rules are typically intended to preserve some type of [[semantic equivalence relation]] among the expressions. In particular, when the expressions are intepreted as a [[logical system]], the [[semantic equivalence]] is typically intended to be [[logical equivalence]]. In this setting, the transformation rules can be used to derive logically equivalent expressions from any given expression. These derivations include as special cases (1) the problem of ''simplifying'' expressions and (2) the problem of deciding whether a given expression is equivalent to an expression in the distinguished subset, typically interpreted as the subset of logical ''[[axiom]]s''.
The set of axioms may be empty, a nonempty finite set, a countably infinite set, or given by axiom schemata. A [[formal grammar]] recursively defines the expressions and well-formed formulas (wffs) of the [[formal language|language]]. In addition a [[semantics]] is given which defines truth and valuations (or interpretations). It allows us to determine which wffs are valid, that is, are [[theorem]]s.
The [[formal language|language]] of a propositional calculus consists of (1) a set of primitive symbols, variously referred to as ''atomic formulas'', ''placeholders'', ''proposition letters'', or ''variables'', and (2) a set of operator symbols, variously interpreted as ''[[logical operator]]s'' or ''[[logical connective]]s''. A ''well-formed formula'' (''wff'') is any atomic formula or any formula that can be built up from atomic formulas by means of operator symbols.
The following outlines a standard propositional calculus. Many different formulations exist which are all more or less equivalent but differ in (1) their language, that is, the particular collection of primitive symbols and operator symbols, (2) the set of axioms, or distingushed formulas, and (3) the set of transformation rules that are available.
==Abstraction and application==
Although it is possible to construct an abstract formal calculus that has no immediate practical use and next to nothing in the way of obvious applications, the very name ''calculus'' indicates that this species of formal system owes its origin to the utility of its prototypical members in practical calculation. Generally speaking, any mathematical calculus is designed with the intention of representing a given domain of formal objects, and typically with the aim of facilitating the computations and inferences that need to be carried out in this representation. Thus some idea of the intended denotation, the formal objects that the formulas of the calculus are intended to denote, is given in advance of developing the calculus itself.
Viewed over the course of its historical development, a formal calculus for any given subject matter normally arises through a process of gradual abstraction, stepwise refinement, and trial-and-error synthesis from the array of informal notational systems that inform prior use, each of which covers the object domain only in part or from a particular angle.
==Generic description of a propositional calculus==
A '''propositional calculus''' is a [[formal system]] <math>\mathcal{L} = \mathcal{L}\ (\Alpha,\ \Omega,\ \Zeta,\ \Iota)</math>, whose formulas are constructed in the following manner:
* The ''alpha set'' <math>\Alpha\!</math> is a finite set of elements called ''proposition symbols'' or ''[[propositional variable]]s''. Syntactically speaking, these are the most basic elements of the formal language <math>\mathcal{L}</math>, otherwise referred to as ''[[atomic formula]]s'' or ''terminal elements''. In the examples to follow, the elements of <math>\Alpha\!</math> are typically the letters ''p'', ''q'', ''r'', and so on.
* The ''omega set'' <math>\Omega\!</math> is a finite set of elements called ''[[operator|operator symbols]]'' or ''[[logical connective]]s''. The set <math>\Omega\!</math> is [[partition]]ed into disjoint subsets as follows:
::: <math>\Omega = \Omega_0 \cup \Omega_1 \cup \ldots \cup \Omega_j \cup \ldots \cup \Omega_m \,.</math>
: In this partition, <math>\Omega_j\!</math> is the set of operator symbols of ''[[arity]]'' <math>j\!</math>.
: In the more familiar propositional calculi, <math>\Omega\!</math> is typically partitioned as follows:
::: <math>\Omega_1 = \{ \lnot \} \,,</math>
::: <math>\Omega_2 \subseteq \{ \land, \lor, \rightarrow, \leftrightarrow \} \,.</math>
: A frequently adopted option treats the constant [[logical value]]s as operators of arity zero, thus:
::: <math>\Omega_0 = \{0,\ 1 \} \,.</math>
: Some writers use the [[tilde]] (~) instead of (¬) and some use the [[ampersand]] (&) instead of (∧). Notation varies even more for the set of logical values, with symbols like {false, true}, {F, T}, {0, 1}, and {<math>\bot</math>, <math>\top</math>} all being seen in various contexts.
* Depending on the precise formal grammar or the grammar formalism that is being used, syntactic auxiliaries like the left parenthesis, "(", and the right parentheses, ")", may be necessary to complete the construction of formulas.
The ''language'' of <math>\mathcal{L}</math>, also known as its set of ''formulas'', ''[[well-formed formula]]s'' or ''[[wff]]s'', is [[mathematical induction|inductively]] or [[recursive]]ly defined by the following rules:
# Base. Any element of the alpha set <math>\Alpha\!</math> is a formula of <math>\mathcal{L}</math>.
# Step (a). If ''p'' is a formula, then ¬''p'' is a formula.
# Step (b). If ''p'' and ''q'' are formulas, then (''p'' ∧ ''q''), (''p'' ∨ ''q''), (''p'' → ''q''), and (''p'' ↔ ''q'') are formulas.
# Close. Nothing else is a formula of <math>\mathcal{L}</math>.
Repeated applications of these rules permits the construction of complex formulas. For example:
# By rule 1, ''p'' is a formula.
# By rule 2, ¬''p'' is a formula.
# By rule 1, ''q'' is a formula.
# By rule 3, (¬''p'' ∨ ''q'') is a formula.
* The ''zeta set'' <math>\Zeta\!</math> is a finite set of ''transformation rules'' that are called ''[[inference rule]]s'' when they acquire logical applications.
* The ''iota set'' <math>\Iota\!</math> is a finite set of ''initial points'' that are called ''[[axiom]]s'' when they receive logical interpretations.
==Example 1. Simple axiom system==
Let <math>\mathcal{L}_1 = \mathcal{L}\ (\Alpha,\ \Omega,\ \Zeta,\ \Iota)</math>, where <math>\Alpha,\ \Omega,\ \Zeta,\ \Iota</math> are defined as follows:
* The alpha set <math>\Alpha \!</math> is a finite set of symbols that is large enough to supply the needs of a given discussion, for example:
::: <math>\Alpha = \{p, q, r, s, t, u \} \,.</math>
Of the three connectives for conjunction, disjunction, and implication (∧, ∨, and →), one can be taken as primitive and the other two can be defined in terms of it and negation (¬). Indeed, all of the logical connectives can be defined in terms of a [[sole sufficient operator]]. The biconditional (↔) can of course be defined in terms of conjunction and implication, with a ↔ b defined as (a → b) ∧ (b → a).
Adopting negation and implication as the two primitive operations of a propositional calculus is tantamount to having the omega set <math>\Omega = \Omega_1 \cup \Omega_2</math> partition as follows:
::: <math>\Omega_1 = \{ \lnot \} \,,</math>
::: <math>\Omega_2 = \{ \rightarrow \} \,.</math>
An axiom system discovered by [[Jan Łukasiewicz|Jan Lukasiewicz]] formulates a propositional calculus in this language as follows:
::* <math>p \to (q \to p)</math>
::* <math>(p \to (q \to r)) \to ((p \to q) \to (p \to r))</math>
::* <math>(\neg p \to \neg q) \to (q \to p)</math>
The inference rule is [[modus ponens]], from p, (p → q), infer q. Then a ∨ b is defined as ¬a → b, and a ∧ b is defined as ¬(a → ¬b).
==Example 2. Natural deduction system==
Let <math>\mathcal{L}_2 = \mathcal{L}\ (\Alpha,\ \Omega,\ \Zeta,\ \Iota)</math>, where <math>\Alpha,\ \Omega,\ \Zeta,\ \Iota</math> are defined as follows:
* The alpha set <math>\Alpha \!</math> is a finite set of symbols that is large enough to supply the needs of a given discussion, for example:
::: <math>\Alpha = \{p, q, r, s, t, u \} \,.</math>
* The omega set <math>\Omega = \Omega_1 \cup \Omega_2</math> partitions as follows:
::: <math>\Omega_1 = \{ \lnot \} \,,</math>
::: <math>\Omega_2 = \{ \land, \lor, \rightarrow, \leftrightarrow \} \,.</math>
In the following example of a propositional calculus,
the transformation rules are intended to be interpreted as the inference rules of a so-called ''[[natural deduction system]]''. The particular system presented here has no initial points, which means that its interpretation for logical applications derives its [[theorem]]s from an empty axiom set.
* The set of initial points is empty, that is, <math>\Iota = \varnothing \,.</math>
* The set of transformation rules, <math>\Zeta ,\!</math>, is described as follows:
Our propositional calculus has ten inference rules. These rules allow us to derive other true formulae given a set of formulae that are assumed to be true. The first nine simply state that we can infer certain wffs from other wffs. The last rule however uses hypothetical reasoning in the sense that in the premise of the rule we temporarily assume an (unproven) hypothesis to be part of the set of inferred formulae to see if we can infer a certain other formula. Since the first nine rules don't do this they are usually described as ''non-hypothetical'' rules, and the last one as a ''hypothetical'' rule.
; [[Reductio ad absurdum]] (negation introduction) : From (''p''→''q''), (''p''→ ¬''q''), infer ¬''p''.
; [[Double negative elimination]] : From ¬¬''p'', infer ''p''.
; [[Conjunction introduction]] : From ''p'' and ''q'', infer (''p'' ∧ ''q'').
; [[Conjunction elimination]] : From (''p'' ∧ ''q''), infer ''p''
: From (''p'' ∧ ''q''), infer ''q''.
; [[Disjunction introduction]] : From ''p'', infer (''p'' ∨ ''q'')
: From ''p'', infer (''q'' ∨ ''p'').
; [[Disjunction elimination]] : From (''p'' ∨ ''q''), (''p'' → ''r''), (''q'' → ''r''), infer ''r''.
; [[Biconditional introduction]] : From (''p'' → ''q''), (''q'' → ''p''), infer (''p'' ↔ ''q'').
;[[Biconditional elimination]] : From (''p'' ↔ ''q''), infer (''p'' → ''q'');
: From (''p'' ↔ ''q''), infer (''q'' → ''p'').
;[[Modus ponens]] (conditional elimination) : From ''p'', (''p'' → ''q''), infer ''q''.
; [[Conditional proof]] (conditional introduction) : If accepting ''p'' allows a proof of ''q'', infer (''p'' → ''q'').
<span id="propcalc_table"></span>
{| align="center" border="1" cellpadding="6" cellspacing="1" style="background:lightcyan; width:100%"
! align="center" bgcolor="paleturquoise" colspan="3" | Basic and Derived Argument Forms
|- style="background:paleturquoise"
! Name
! Sequent
! Description
|-
| Modus Ponens
| ((''p'' → ''q'') ∧ ''p'') ├ ''q''
| if ''p'' then ''q''; ''p''; therefore ''q''
|-
| Modus Tollens
| ((''p'' → ''q'') ∧ ¬''q'') ├ ¬p
| if ''p'' then ''q''; not ''q''; therefore not ''p''
|-
| Hypothetical Syllogism
| ((''p'' → ''q'') ∧ (''q'' → ''r'')) ├ (''p'' → ''r'')
| if ''p'' then ''q''; if ''q'' then ''r''; therefore, if ''p'' then ''r''
|-
| Disjunctive Syllogism
| ((''p'' ∨ ''q'') ∧ ¬''p'') ├ ''q''
| Either ''p'' or ''q''; not ''p''; therefore, ''q''
|-
| Constructive Dilemma
| ((''p'' → ''q'') ∧ (''r'' → ''s'') ∧ (''p'' ∨ ''r'')) ├ (''q'' ∨ ''s'')
| If ''p'' then ''q''; and if ''r'' then ''s''; but either ''p'' or ''r''; therefore either ''q'' or ''s''
|-
| Destructive Dilemma
| ((''p'' → ''q'') ∧ (''r'' → ''s'') ∧ (¬''q'' ∨ ¬''s'')) ├ (¬''p'' ∨ ¬''r'')
| If ''p'' then ''q''; and if ''r'' then ''s''; but either not ''q'' or not ''s''; therefore either not ''p'' or not ''r''
|-
| Simplification
| (''p'' ∧ ''q'') ├ ''p''
| ''p'' and ''q'' are true; therefore ''p'' is true
|-
| Conjunction
| ''p'', ''q'' ├ (''p'' ∧ ''q'')
| ''p'' and ''q'' are true separately; therefore they are true conjointly
|-
| Addition
| ''p'' ├ (''p'' ∨ ''q'')
| ''p'' is true; therefore the disjunction (''p'' or ''q'') is true
|-
| Composition
| ((''p'' → ''q'') ∧ (''p'' → ''r'')) ├ (''p'' → (''q'' ∧ ''r''))
| If ''p'' then ''q''; and if ''p'' then ''r''; therefore if ''p'' is true then ''q'' and ''r'' are true
|-
| De Morgan's Theorem (1)
| ¬(''p'' ∧ ''q'') ├ (¬''p'' ∨ ¬''q'')
| The negation of (''p'' and ''q'') is equiv. to (not ''p'' or not ''q'')
|-
| De Morgan's Theorem (2)
| ¬(''p'' ∨ ''q'') ├ (¬''p'' ∧ ¬''q'')
| The negation of (''p'' or ''q'') is equiv. to (not ''p'' and not ''q'')
|-
| Commutation (1)
| (''p'' ∨ ''q'') ├ (''q'' ∨ ''p'')
| (''p'' or ''q'') is equiv. to (''q'' or ''p'')
|-
| Commutation (2)
| (''p'' ∧ ''q'') ├ (''q'' ∧ ''p'')
| (''p'' and ''q'') is equiv. to (''q'' and ''p'')
|-
| Association (1)
| (''p'' ∨ (''q'' ∨ ''r'')) ├ ((''p'' ∨ ''q'') ∨ ''r'')
| ''p'' or (''q'' or ''r'') is equiv. to (''p'' or ''q'') or ''r''
|-
| Association (2)
| (''p'' ∧ (''q'' ∧ ''r'')) ├ ((''p'' ∧ ''q'') ∧ ''r'')
| ''p'' and (''q'' and ''r'') is equiv. to (''p'' and ''q'') and ''r''
|-
| Distribution (1)
| (''p'' ∧ (''q'' ∨ ''r'')) ├ ((''p'' ∧ ''q'') ∨ (''p'' ∧ ''r''))
| ''p'' and (''q'' or ''r'') is equiv. to (''p'' and ''q'') or (''p'' and ''r'')
|-
| Distribution (2)
| (''p'' ∨ (''q'' ∧ ''r'')) ├ ((''p'' ∨ ''q'') ∧ (''p'' ∨ ''r''))
| ''p'' or (''q'' and ''r'') is equiv. to (''p'' or ''q'') and (''p'' or ''r'')
|-
| Double Negation
| ''p'' ├ ¬¬''p''
| ''p'' is equivalent to the negation of not ''p''
|-
| Transposition
| (''p'' → ''q'') ├ (¬''q'' → ¬''p'')
| If ''p'' then ''q'' is equiv. to if not ''q'' then not ''p''
|-
| Material Implication
| (''p'' → ''q'') ├ (¬''p'' ∨ ''q'')
| If ''p'' then ''q'' is equiv. to either not ''p'' or ''q''
|-
| Material Equivalence (1)
| (''p'' ↔ ''q'') ├ ((''p'' → ''q'') ∧ (''q'' → ''p''))
| (''p'' is equiv. to ''q'') means, (if ''p'' is true then ''q'' is true) and (if ''q'' is true then ''p'' is true)
|-
| Material Equivalence (2)
| (''p'' ↔ ''q'') ├ ((''p'' ∧ ''q'') ∨ (¬''q'' ∧ ¬''p''))
| (''p'' is equiv. to ''q'') means, either (''p'' and ''q'' are true) or ( both ''p'' and ''q'' are false)
|-
| Exportation
| ((''p'' ∧ ''q'') → ''r'') ├ (''p'' → (''q'' → ''r''))
| from (if ''p'' and ''q'' are true then ''r'' is true) we can prove (if ''q'' is true then ''r'' is true, if ''p'' is true)
|-
| Importation
| (''p'' → (''q'' → ''r'')) ├ ((''p'' ∧ ''q'') → ''r'')
|
|-
| Tautology
| ''p'' ├ (''p'' ∨ ''p'')
| ''p'' is true is equiv. to ''p'' is true or ''p'' is true
|-
| Tertium non datur (Law of Excluded Middle)
| ├ (''p'' ∨ ¬ ''p'')
| ''p'' or not ''p'' is true
|}
==Proofs in propositional calculus==
One of the main uses of a propositional calculus, when interpreted for logical applications, is to determine relations of logical equivalence between propositional formulas. These relationships are determined by means of the available transformation rules, sequences of which are called ''derivations'' or ''proofs''.
In the discussion to follow, a proof is presented as a sequences of numbered lines, with each line consisting of a single formula followed by a ''reason'' or ''justification'' for introducing that formula. Each premiss of the argument, that is, an assumption introduced as a hypothesis of the argument, is listed at the beginning of the sequence and is marked as a "premiss" in lieu of other justification. The conclusion is listed on the last line. A proof is complete if every line follows from previous ones by the correct application of a transformation rule. (For a contrasting approach, see [[proof-trees]]).
===Example of a proof===
* To be shown that ''A'' → ''A''.
* One possible proof of this may be arranged as follows:
<br>
{| align="center" border="1" cellpadding="6" cellspacing="1" style="background:lightcyan; width:100%"
! align="center" bgcolor="paleturquoise" colspan="3" | Example of a Proof
|- style="background:paleturquoise"
! Number
! Formula
! Reason
|-
| 1 || ''A'' || premiss
|-
| 2 || ''A'' ∨ ''A'' || From (1) by disjunction introduction
|-
| 3 || (''A'' ∨ ''A'') ∧ ''A'' || From (1) and (2) by conjunction introduction
|-
| 4 || ''A'' || From (3) by conjunction elimination
|-
| 5 || ''A'' ├ ''A'' || Summary of (1) through (4)
|-
| 6 || ├ ''A'' → ''A'' || From (5) by conditional proof
|}
<br>
Interpret ''A'' ├ ''A'' as "Assuming ''A'', infer ''A''". Read ├ ''A'' → ''A'' as "Assuming nothing, infer that ''A'' implies ''A''," or "It is a tautology that ''A'' implies ''A''," or "It is always true that ''A'' implies ''A''."
==Soundness and completeness of the rules==
The crucial properties of this set of rules are that they are ''[[soundness|sound]]'' and ''[[completeness|complete]]''. Informally this means that the rules are correct and that no other rules are required. These claims can be made more formal as follows.
We define a ''truth assignment'' as a [[function (mathematics)|function]] that maps propositional variables to '''true''' or '''false'''. Informally such a truth assignment can be understood as the description of a possible [[state of affairs]] (or [[possible world]]) where certain statements are true and others are not. The semantics of formulae can then be formalized by defining for which "state of affairs" they are considered to be true, which is what is done by the following definition.
We define when such a truth assignment ''A'' satisfies a certain [[Well-formed formula|wff]] with the following rules:
* ''A'' satisfies the propositional variable ''P'' [[iff]] ''A''(''P'') = '''true'''
* ''A'' satisfies ¬φ iff ''A'' does not satisfy φ
* ''A'' satisfies (φ ∧ ψ) iff ''A'' satisfies both φ and ψ
* ''A'' satisfies (φ ∨ ψ) iff ''A'' satisfies at least one of either φ or ψ
* ''A'' satisfies (φ → ψ) iff it is not the case that ''A'' satisfies φ but not ψ
* ''A'' satisfies (φ ↔ ψ) iff ''A'' satisfies both φ and ψ or satisfies neither one of them
With this definition we can now formalize what it means for a formula φ to be implied by a certain set ''S'' of formulae. Informally this is true if in all worlds that are possible given the set of formulae ''S'' the formula φ also holds. This leads to the following formal definition: We say that a set ''S'' of wffs ''semantically entails'' (or ''implies'') a certain wff φ if all truth assignments that satisfy all the formulae in ''S'' also satisfy φ.
Finally we define ''syntactical entailment'' such that φ is syntactically entailed by ''S'' iff we can derive it with the inference rules that were presented above in a finite number of steps. This allows us to formulate exactly what it means for the set of inference rules to be sound and complete:
; '''Soundness''' : If the set of wffs ''S'' syntactically entails wff φ then ''S'' semantically entails φ
; '''Completeness''' : If the set of wffs ''S'' semantically entails wff φ then ''S'' syntactically entails φ
For the above set of rules this is indeed the case.
===Sketch of a soundness proof===
(For most [[logical system]]s, this is the comparatively "simple" direction of proof)
Notational conventions: Let "''G''" be a variable ranging over sets of sentences. Let "''A''", "''B''", and "''C''" range over sentences. For "''G'' syntactically entails ''A''" we write "''G'' proves ''A''". For "''G'' semantically entails ''A''" we write "''G'' implies ''A''".
We want to show: (''A'')(''G'')(If ''G'' proves ''A'' then ''G'' implies ''A'')
We note that "''G'' proves ''A''" has an inductive definition, and that gives us the immediate resources for demonstrating claims of the form "If ''G'' proves ''A'' then ..." So our proof proceeds by induction.
*I. Basis. Show: If ''A'' is a member of ''G'' then ''G'' implies ''A''
*[II. Basis. Show: If ''A'' is an axiom, then ''G'' implies ''A'']
*III. Inductive step:
::(a) Assume for arbitrary ''G'' and ''A'' that if ''G'' proves ''A'' then ''G'' implies ''A''. (If necessary, assume this for arbitrary ''B'', ''C'', etc. as well)
::(b) For each possible application of a rule of inference to ''A'', leading to a new sentence ''B'', show that ''G'' implies ''B''.
NB. Basis Step II can be omitted for the above calculus, which is a [[natural deduction]] system and so has no axioms. Basically, it involves showing that each of the axioms is a (semantic) logical truth.
The Basis step(s) demonstrate(s) that the simplest provable sentences from G are also implied by ''G'', for any ''G''. (The is simple, since the semantic fact that a set implies any of its members, is also trivial.) The Inductive step will systematically cover all the further sentences that might be provable--by considering each case where we might reach a logical conclusion using an inference rule--and shows that if a new sentence is provable, it is also logically implied. (For example, we might have a rule telling us that from "''A''" we can derive "''A'' or ''B''". In III.(a) We assume that if ''A'' is provable it is implied. We also know that if A is provable then "''A'' or ''B''" is provable. We have to show that then "''A'' or ''B''" too is implied. We do so by appeal to the semantic definition and the assumption we just made. ''A'' is provable from ''G'', we assume. So it is also implied by ''G''. So any semantic valuation making all of ''G'' true makes ''A'' true. But any valuation making A true makes "''A'' or ''B''" true, by the defined semantics for "or". So any valuation which makes all of ''G'' true makes "''A'' or ''B''" true. So "''A'' or ''B''" is implied.) Generally, the Inductive step will consist of a lengthy but simple [[case-by-case analysis]] of all the rules of inference, showing that each "preserves" semantic implication.
By the definition of provability, there are no sentences provable other than by being a member of ''G'', an axiom, or following by a rule; so if all of those are semantically implied, the deduction calculus is sound.
===Sketch of completeness proof===
(This is usually the much harder direction of proof.)
We adopt the same notational conventions as above.
We want to show: If ''G'' implies ''A'', then ''G'' proves ''A''. We proceed by [[contraposition]]: We show instead that If ''G'' does '''not''' prove ''A'' then ''G'' does '''not''' imply ''A''.
*I. ''G'' does not prove ''A''. (Assumption)
*II. If ''G'' does not prove ''A'', then we can construct an (infinite) "Maximal Set", ''G''*, which is a superset of ''G'' and which also does not prove ''A''.
**(a)Place an "ordering" on all the sentences in the language. (e.g., alphabetical ordering), and number them ''E''<sub>1</sub>, ''E''<sub>2</sub>, ...
**(b)Define a series ''G''<sub>''n''</sub> of sets (''G''<sub>0</sub>, ''G''<sub>1</sub> ... ) inductively, as follows. (i)''G''<sub>0</sub> = ''G''. (ii) If {''G''<sub>''k''</sub>, ''E''<sub>(''k''+1)</sub>} proves ''A'', then ''G''<sub>(''k''+1)</sub> = ''G''<sub>''k''</sub>. (iii) If {''G''<sub>''k''</sub>, ''E''<sub>(''k''+1)</sub>} does '''not''' prove ''A'', then ''G''<sub>(k+1)</sub> = {''G''<sub>''k''</sub>, ''E''<sub>(''k''+1)</sub>}
**(c)Define ''G''* as the union of all the ''G''<sub>''n''</sub>. (That is, ''G''* is the set of all the sentences that are in any ''G''<sub>''n''</sub>).
**(d) It can be easily shown that (i) ''G''* contains (is a superset of) ''G'' (by (b.i)); (ii) ''G''* does not prove ''A'' (because if it proves ''A'' then some sentence was added to some ''G''<sub>''n''</sub> which caused it to prove ''A''; but this was ruled out by definition); and (iii) ''G''* is a "Maximal Set" (with respect to ''A''): If ''any'' more sentences whatever were added to ''G''*, it ''would'' prove ''A''. (Because if it were possible to add any more sentences, they should have been added when they were encountered during the construction of the ''G''<sub>''n''</sub>, again by definition)
*III. If ''G''* is a Maximal Set (wrt ''A''), then it is "truth-like". This means that it contains the sentence "''C''" only if it does ''not'' contain the sentence not-''C''; If it contains "''C''" and contains "If ''C'' then ''B''" then it also contains "''B''"; and so forth.
*IV. If ''G''* is truth-like there is a "''G''*-Canonical" valuation of the language: one that makes every sentence in ''G''* true and everything outside ''G''* false while still obeying the laws of semantic composition in the language.
*V. A ''G''*-canonical valuation will make our original set ''G'' all true, and make ''A'' false.
*VI. If there is a valuation on which ''G'' are true and ''A'' is false, then ''G'' does not (semantically) imply ''A''.
[[Q.E.D.|QED]]
===Another outline for a completeness proof===
If a formula is a [[tautology]], then there is a [[truth table]] for it which shows that each valuation yields the value true for the formula. Consider such a valuation. By mathematical induction on the length of the subformulas, show that the truth or falsity of the subformula follows from the truth or falsity (as appropriate for the valuation) of each propositional variable in the subformula. Then combine the lines of the truth table together two at a time by using "(P is true implies S) implies ((P is false implies S) implies S)". Keep repeating this until all dependencies on propositional variables have been eliminated. The result is that we have proved the given tautology. Since every tautology is provable, the logic is complete.
==Alternative calculus==
It is possible to define another version of propositional calculus, which defines most of the syntax of the logical operators by means of axioms, and which uses only one inference rule.
===Axioms===
Let φ, χ and ψ stand for well-formed formulas. (The wff's themselves would not contain any Greek letters, but only capital Roman letters, connective operators, and parentheses.) Then the axioms are as follows:
<br>
{| align="center" border="1" cellpadding="6" cellspacing="1" style="background:lightcyan; width:100%"
! align="center" bgcolor="paleturquoise" colspan="3" | Axioms
|- style="background:paleturquoise"
! Name
! Axiom Schema
! Description
|-
| THEN-1
| φ → (χ → φ)
| Add hypothesis χ, implication introduction
|-
| THEN-2
| (φ → (χ → ψ)) → ((φ → χ) → (φ → ψ))
| Distribute hypothesis φ over implication
|-
| AND-1
| φ ∧ χ → φ
| Eliminate conjunction
|-
| AND-2
| φ ∧ χ → χ
|
|-
| AND-3
| φ → (χ → (φ ∧ χ))
| Introduce conjunction
|-
| OR-1
| φ → φ ∨ χ
| Introduce disjunction
|-
| OR-2
| χ → φ ∨ χ
|
|-
| OR-3
| (φ → ψ) → ((χ → ψ) → (φ ∨ χ → ψ))
| Eliminate disjunction
|-
| NOT-1
| (φ → χ) → ((φ → ¬χ) → ¬ φ)
| Introduce negation
|-
| NOT-2
| φ → (¬φ → χ)
| Eliminate negation
|-
| NOT-3
| φ ∨ ¬φ
| Excluded middle, classical logic
|-
| IFF-1
| (φ ↔ χ) → (φ → χ)
| Eliminate equivalence
|-
| IFF-2
| (φ ↔ χ) → (χ → φ)
|
|-
| IFF-3
| (φ → χ) → ((χ → φ) → (φ ↔ χ))
| Introduce equivalence
|}
<br>
Axiom THEN-2 may be considered to be a "distributive property of implication with respect to implication." <br />
Axioms AND-1 and AND-2 correspond to "conjunction elimination". The relation between AND-1 and AND-2 reflects the commutativity of the conjunction operator. <br />
Axiom AND-3 corresponds to "conjunction introduction." <br />
Axioms OR-1 and OR-2 correspond to "disjunction introduction." The relation between OR-1 and OR-2 reflects the commutativity of the disjunction operator. <br />
Axiom NOT-1 corresponds to "reductio ad absurdum." <br />
Axiom NOT-2 says that "anything can be deduced from a contradiction." <br />
Axiom NOT-3 is called "[[law of excluded middle|tertium non datur]]" ([[Latin]]: "a third is not given") and reflects the semantic valuation of propositional formulae: a formula can have a truth-value of either true or false. There is no third truth-value, at least not in classical logic. [[Intuitionistic logic]]ians do not accept the axiom NOT-3. <br />
=== Inference rule ===
The inference rule is [[modus ponens]]:
* <math> \phi, \ \phi \rightarrow \chi \vdash \chi </math>.
=== Meta-inference rule ===
Let a demonstration be represented by a sequence, with hypotheses to the left of the turnstile and the conclusion to the right of the turnstile. Then the [[deduction theorem]] can be stated as follows:
: ''If the sequence''
::<math> \phi_1, \ \phi_2, \ ... , \ \phi_n, \ \chi \vdash \psi </math>
: ''has been demonstrated, then it is also possible to demonstrate the sequence''
::<math> \phi_1, \ \phi_2, \ ..., \ \phi_n \vdash \chi \rightarrow \psi </math>.
This deduction theorem (DT) is not itself formulated with propositional calculus: it is not a theorem of propositional calculus, but a theorem about propositional calculus. In this sense, it is a meta-theorem, comparable to theorems about the soundness or completeness of propositional calculus.
On the other hand, DT is so useful for simplifying the syntactical proof process that it can be considered and used as another inference rule, accompanying modus ponens. In this sense, DT corresponds to the natural [[conditional proof]] inference rule which is part of the first version of propositional calculus introduced in this article.
The converse of DT is also valid:
: ''If the sequence''
::<math> \phi_1, \ \phi_2, \ ..., \ \phi_n \vdash \chi \rightarrow \psi </math>
: ''has been demonstrated, then it is also possible to demonstrate the sequence''
::<math> \phi_1, \ \phi_2, \ ... , \ \phi_n, \ \chi \vdash \psi </math>
in fact, the validity of the converse of DT is almost trivial compared to that of DT:
: ''If''
:: <math> \phi_1, \ ... , \ \phi_n \vdash \chi \rightarrow \psi </math>
: ''then''
:: 1: <math> \phi_1, \ ... , \ \phi_n, \ \chi \vdash \chi \rightarrow \psi </math>
:: 2: <math> \phi_1, \ ... , \ \phi_n, \ \chi \vdash \chi </math>
: ''and from (1) and (2) can be deduced''
:: 3: <math> \phi_1, \ ... , \ \phi_n, \ \chi \vdash \psi </math>
: ''by means of modus ponens, Q.E.D.''
The converse of DT has powerful implications: it can be used to convert an axiom into an inference rule. For example, the axiom AND-1,
: <math> \vdash \phi \wedge \chi \rightarrow \phi </math>
can be transformed by means of the converse of the deduction theorem into the inference rule
: <math> \phi \wedge \chi \vdash \phi </math>
which is [[conjunction elimination]], one of the ten inference rules used in the first version (in this article) of the propositional calculus.
===Example of a proof===
The following is an example of a (syntactical) demonstration, involving only axioms THEN-1 and THEN-2: <br>
'''Prove:''' ''A'' → ''A'' (Reflexivity of implication).<br>
'''Proof:'''
:1. (''A'' → ((''B'' → ''A'') → ''A'')) → ((''A'' → (''B'' → ''A'')) → (''A'' → ''A''))
::Axiom THEN-2 with φ = ''A'', χ = ''B'' → ''A'', ψ = ''A''
:2. ''A'' → ((''B'' → ''A'') → ''A'')
::Axiom THEN-1 with φ = ''A'', χ = ''B'' → ''A''
:3. (''A'' → (''B'' → ''A'')) → (''A'' → ''A'')
::From (1) and (2) by modus ponens.
:4. ''A'' → (''B'' → ''A'')
::Axiom THEN-1 with φ = ''A'', χ = ''B''
:5. ''A'' → ''A''
::From (3) and (4) by modus ponens.
==Graphical calculi==
{{main|Logical graph}}
It is possible to generalize the definition of a formal language from a set of finite sequences over a finite basis to include many other sets of mathematical structures, so long as they are built up by finitary means from finite materials. What's more, many of these families of formal structures are especially well-suited for use in logic.
For example, there are many families of [[graph (mathematics)|graph]]s that are close enough analogues of formal languages that the concept of a calculus is quite easily and naturally extended to them. Indeed, many species of graphs arise as ''[[parse graph]]s'' in the syntactic analysis of the corresponding families of text stuctures. The exigencies of practical computation on formal languages frequently demand that text strings be converted into [[pointer structure]] renditions of parse graphs, simply as a matter of checking whether strings are wffs or not. Once this is done, there are many advantages to be gained from developing the graphical analogue of the calculus on strings. The mapping from strings to parse graphs is called ''[[parsing]]'' and the inverse mapping from parse graphs to strings is achieved by an operation that is called ''[[graph traversal|traversing]]'' the graph.
==Other logical calculi==
Propositional calculus is about the simplest kind of logical calculus in any current use. (Aristotelian "syllogistic" calculus, which is largely supplanted in modern logic, is in ''some'' ways simpler — but in other ways more complex — than propositional calculus.) It can be extended in several ways.
The most immediate way to develop a more complex logical calculus is to introduce rules that are sensitive to more fine-grained details of the sentences being used. When the "atomic sentences" of propositional logic are broken up into [[singular term|terms]], [[variable]]s, [[predicate]]s, and [[quantifier]]s, they yield [[first-order logic]], or first-order predicate logic, which keeps all the rules of propositional logic and adds some new ones. (For example, from "All dogs are mammals" we may infer "If Rover is a dog then Rover is a mammal.)
With the tools of first-order logic it is possible to formulate a number of theories, either with explicit axioms or by rules of inference, that can themselves be treated as logical calculi. [[Arithmetic]] is the best known of these; others include [[set theory]] and [[mereology]].
[[Modal logic]] also offers a variety of inferences that cannot be captured in propositional calculus. For example, from "Necessarily ''p''" we may infer that ''p''. From ''p'' we may infer "It is possible that ''p''".
[[Many-valued logic]]s are those allowing sentences to have values other than ''true'' and ''false''. (For example, ''neither'' and ''both'' are standard "extra values"; "continuum logic" allows each sentence to have any of an infinite number of "degrees of truth" between ''true'' and ''false''.) These logics often require calculational devices quite distinct from propositional calculus.
==References==
* [[Frank Markham Brown|Brown, Frank Markham]] (2003), ''Boolean Reasoning: The Logic of Boolean Equations'', 1st edition, Kluwer Academic Publishers, Norwell, MA. 2nd edition, Dover Publications, Mineola, NY, 2003.
* [[C.C. Chang|Chang, C.C.]], and [[H.J. Keisler|Keisler, H.J.]] (1973), ''Model Theory'', North-Holland, Amsterdam, Netherlands.
* [[Zvi Kohavi|Kohavi, Zvi]] (1978), ''Switching and Finite Automata Theory'', 1st edition, McGraw–Hill, 1970. 2nd edition, McGraw–Hill, 1978.
* [[Robert R. Korfhage|Korfhage, Robert R.]] (1974), ''Discrete Computational Structures'', Academic Press, New York, NY.
* [[Joachim Lambek|Lambek, J.]] and [[P.J. Scott|Scott, P.J.]] (1986), ''Introduction to Higher Order Categorical Logic'', Cambridge University Press, Cambridge, UK.
* [[Elliot Mendelson|Mendelson, Elliot]] (1964), ''Introduction to Mathematical Logic'', D. Van Nostrand Company.
==See also==
===Logical levels===
* [[Zeroth order logic]]
* [[First order logic]]
* [[Second order logic]]
* [[Higher order logic]]
===Building blocks===
{{col-begin}}
{{col-break}}
* [[Exclusive disjunction]]
* [[Logical conjunction]]
* [[Logical disjunction]]
* [[Logical equality]]
{{col-break}}
* [[Logical implication]]
* [[Logical NAND]]
* [[Logical NNOR]]
* [[Negation]]
{{col-end}}
===Related topics===
{{col-begin}}
{{col-break}}
* [[Ampheck]]
* [[Boolean algebra]]
* [[Boolean algebra topics]]
* [[Boolean domain]]
* [[Boolean function]]
* [[Boolean logic]]
* [[Boolean-valued function]]
* [[Categorical logic]]
* [[Combinational logic]]
{{col-break}}
* [[Combinatory logic]]
* [[Conceptual graph]]
* [[Disjunctive syllogism]]
* [[Entitative graph]]
* [[Existential graph]]
* [[Frege's propositional calculus]]
* [[Implicational propositional calculus]]
* [[Intuitionistic propositional calculus]]
* [[Laws of Form]]
{{col-break}}
* [[Logical graph]]
* [[Logical value]]
* [[Minimal negation operator]]
* [[Multigrade operator]]
* [[Operation (mathematics)|Operation]]
* [[Parametric operator]]
* [[Peirce's law]]
* [[Symmetric difference]]
* [[Truth table]]
{{col-end}}
===Related works===
* [[Douglas Hofstadter|Hofstadter, D.R.]], ''[[Gödel, Escher, Bach]]''
==External links==
* [[Kevin C. Klement|Klement, Kevin C.]] (2006), "Propositional Logic", in James Fieser and Bradley Dowden (eds.), ''[[Internet Encyclopedia of Philosophy]]'', [http://www.iep.utm.edu/p/prop-log.htm Eprint].
* [http://www.ltn.lv/~podnieks/mlog/ml2.htm Introduction to Mathematical Logic]
* [http://www.visualstatistics.net/Scaling/Propositional%20Calculus/Elements%20of%20Propositional%20Calculus.htm Elements of Propositional Calculus]
* ''[http://www.fecundity.com/logic/ forall x: an introduction to formal logic]'', by P.D. Magnus, covers formal semantics and proof theory for sentential logic.
==Document history==
* Some content adapted from the [http://www.getwiki.net/ GetWiki] article [http://www.getwiki.net/-Propositional_Calculus&oldid=1695 "Propositional calculus"] under the [[GNU Free Documentation License]].
<!--via GetWiki: Propositional calculus
revision as of 11:58, 29 Nov 2006 by Jon Awbrey
//-->
* Some content adapted from the [http://www.wikinfo.org/ Wikinfo] article [http://www.wikinfo.org/index.php?title=Propositional_calculus&oldid=28000 "Propositional calculus"] under the [[GNU Free Documentation License]].
<!--via Wikinfo: Propositional calculus
revision as of 18:34, 19 November 2006 by Jon Awbrey
//-->
* Some content adapted from the [http://en.wikipedia.org/ Wikipedia] article [http://en.wikipedia.org/w/index.php?title=Propositional_calculus&oldid=74069381 "Propositional calculus"] under the [[GNU Free Documentation License]].
<!--via Wikipedia: Propositional calculus
revision as of 03:44, 6 September 2006 by Jon Awbrey
//-->