Propositional calculus
In logic and mathemat.css, a propositional calculus (or a sentential calculus) is a formal system that represents the materials and the principles of propositional logic (or 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 propositions.
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 axioms.
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 language. In addition a semant.css is given which defines truth and valuations (or interpretations). It allows us to determine which wffs are valid, that is, are theorems.
The 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 operators or logical connectives. 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.
Contents
- 1 Abstraction and application
- 2 Generic description of a propositional calculus
- 3 Example 1. Simple axiom system
- 4 Example 2. Natural deduction system
- 5 Proofs in propositional calculus
- 6 Soundness and completeness of the rules
- 7 Graphical calculi
- 8 Other logical calculi
- 9 References
- 10 See also
- 11 External links
- 12 Document history
Abstraction and application[edit]
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[edit]
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 variables. Syntactically speaking, these are the most basic elements of the formal language <math>\mathcal{L}</math>, otherwise referred to as atomic formulas 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 symbols or logical connectives. The set <math>\Omega\!</math> is partitioned 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 values 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 formulas or wffs, is inductively or recursively 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 rules when they acquire logical applications.
- The iota set <math>\Iota\!</math> is a finite set of initial points that are called axioms when they receive logical interpretations.
Example 1. Simple axiom system[edit]
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 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[edit]
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 theorems 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).
Basic and Derived Argument Forms | ||
---|---|---|
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[edit]
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[edit]
- To be shown that A → A.
- One possible proof of this may be arranged as follows:
Example of a Proof | ||
---|---|---|
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 |
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[edit]
The crucial properties of this set of rules are that they are sound and 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 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 semant.css 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 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[edit]
(For most logical systems, 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 semant.css 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[edit]
(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_{1}, E_{2}, ...
- (b)Define a series G_{n} of sets (G_{0}, G_{1} ... ) inductively, as follows. (i)G_{0} = G. (ii) If {G_{k}, E_{(k+1)}} proves A, then G_{(k+1)} = G_{k}. (iii) If {G_{k}, E_{(k+1)}} does not prove A, then G_{(k+1)} = {G_{k}, E_{(k+1)}}
- (c)Define G* as the union of all the G_{n}. (That is, G* is the set of all the sentences that are in any G_{n}).
- (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_{n} 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_{n}, 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.
Another outline for a completeness proof[edit]
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.
N7hEcG <a href="http://mrrabtbdzizn.com/">mrrabtbdzizn</a>, [url=http://tmgbdqkhqxbz.com/]tmgbdqkhqxbz[/url], [link=http://yhhorfhskowa.com/]yhhorfhskowa[/link], http://ohgdehottqvr.com/
Graphical calculi[edit]
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 graphs 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 graphs 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 traversing the graph.
Other logical calculi[edit]
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 terms, variables, predicates, and quantifiers, 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 log.css 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 log.css often require calculational devices quite distinct from propositional calculus.
References[edit]
- 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.
- Chang, C.C., and Keisler, H.J. (1973), Model Theory, North-Holland, Amsterdam, Netherlands.
- Kohavi, Zvi (1978), Switching and Finite Automata Theory, 1st edition, McGraw–Hill, 1970. 2nd edition, McGraw–Hill, 1978.
- Korfhage, Robert R. (1974), Discrete Computational Structures, Academic Press, New York, NY.
- Lambek, J. and Scott, P.J. (1986), Introduction to Higher Order Categorical Logic, Cambridge University Press, Cambridge, UK.
- Mendelson, Elliot (1964), Introduction to Mathematical Logic, D. Van Nostrand Company.
See also[edit]
Logical levels[edit]
Building blocks[edit]
Related top.css[edit]
Related works[edit]
External links[edit]
- Klement, Kevin C. (2006), "Propositional Logic", in James Fieser and Bradley Dowden (eds.), Internet Encyclopedia of Philosophy, Eprint.
- forall x: an introduction to formal logic, by P.D. Magnus, covers formal semant.css and proof theory for sentential logic.
Document history[edit]
Portions of the above article were adapted from the following sources under the GNU Free Documentation License, under other applicable licenses, or by permission of the copyright holders.