Propositional calculus
The propositional calculus[a] is a branch of logic.[1] It is also called propositional logic,[2] statement logic,[1] sentential calculus,[3] sentential logic,[1] or sometimes zeroth-order logic.[4][5] It deals with propositions[1] (which can be true or false)[6] and relations between propositions,[7] including the construction of arguments based on them.[8] Compound propositions are formed by connecting propositions by logical connectives representing the truth functions of conjunction, disjunction, implication, biconditional, and negation.[9][10][11][12] Some sources include other connectives, as in the table below.
Not to be confused with Propositional analysis.
Unlike first-order logic, propositional logic does not deal with non-logical objects, predicates about them, or quantifiers. However, all the machinery of propositional logic is included in first-order logic and higher-order logics. In this sense, propositional logic is the foundation of first-order logic and higher-order logic.
Propositional logic is typically studied with a formal language, in which propositions are represented by letters, which are called propositional variables. These are then used, together with symbols for connectives, to make compound propositions. Because of this, the propositional variables are called atomic formulas of a formal zeroth-order language.[10][2] While the atomic propositions are typically represented by letters of the alphabet,[10] there is a variety of notations to represent the logical connectives. The following table shows the main notational variants for each of the connectives in propositional logic.
The most thoroughly researched branch of propositional logic is classical truth-functional propositional logic,[1] in which formulas are interpreted as having precisely one of two possible truth values, the truth value of true or the truth value of false.[15] The principle of bivalence and the law of excluded middle are upheld. By comparison with first-order logic, truth-functional propositional logic is considered to be zeroth-order logic.[4][5]
Solvers[edit]
One notable difference between propositional calculus and predicate calculus is that satisfiability of a propositional formula is decidable.[109] Deciding satisfiability of propositional logic formulas is an NP-complete problem. However, practical methods exist (e.g., DPLL algorithm, 1962; Chaff algorithm, 2001) that are very fast for many useful cases. Recent work has extended the SAT solver algorithms to work with propositions containing arithmetic expressions; these are the SMT solvers.