Propositional formula
In propositional logic, a propositional formula is a type of syntactic formula which is well formed and has a truth value. If the values of all variables in a propositional formula are given, it determines a unique truth value. A propositional formula may also be called a propositional expression, a sentence, or a sentential formula.
A propositional formula is constructed from simple propositions, such as "five is greater than three" or propositional variables such as P and Q, using connectives such as NOT, AND, OR, or IMPLIES; for example:
 (P AND NOT Q) IMPLIES (P OR Q).
In mathematics, a propositional formula is often more briefly referred to as a "proposition", but, more precisely, a propositional formula is not a proposition but a formal expression that denotes a proposition, a formal object under discussion, just like an expression such as "x + y" is not a value, but denotes a value. In some contexts, maintaining the distinction may be of importance.
Contents
 1 Propositions
 2 An algebra of propositions, the propositional calculus
 3 Propositional connectives
 4 More complex formulas
 5 Inductive definition
 6 Parsing formulas
 7 Wellformed formulas (wffs)
 8 Reduced sets of connectives
 9 Normal forms
 10 Impredicative propositions
 11 Propositional formula with "feedback"
 12 Historical development
 13 Footnotes
 14 References
Propositions
For the purposes of the propositional calculus, propositions (utterances, sentences, assertions) are considered to be either simple or compound.^{[1]} Compound propositions are considered to be linked by sentential connectives, some of the most common of which are "AND", "OR", "IF … THEN …", "NEITHER … NOR …", "… IS EQUIVALENT TO …" . The linking semicolon ";", and connective "BUT" are considered to be expressions of "AND". A sequence of discrete sentences are considered to be linked by "AND"s, and formal analysis applies a recursive "parenthesis rule" with respect to sequences of simple propositions (see more below about wellformed formulas).
 For example: The assertion: "This cow is blue. That horse is orange but this horse here is purple." is actually a compound proposition linked by "AND"s: ( ("This cow is blue" AND "that horse is orange") AND "this horse here is purple" ) .
Simple propositions are declarative in nature, that is, they make assertions about the condition or nature of a particular object of sensation e.g. "This cow is blue", "There's a coyote!" ("That coyote IS there, behind the rocks.").^{[2]} Thus the simple "primitive" assertions must be about specific objects or specific states of mind. Each must have at least a subject (an immediate object of thought or observation), a verb (in the active voice and present tense preferred), and perhaps an adjective or adverb. "Dog!" probably implies "I see a dog" but should be rejected as too ambiguous.
 Example: "That purple dog is running", "This cow is blue", "Switch M31 is closed", "This cap is off", "Tomorrow is Friday".
For the purposes of the propositional calculus a compound proposition can usually be reworded into a series of simple sentences, although the result will probably sound stilted.
Relationship between propositional and predicate formulas
The predicate calculus goes a step further than the propositional calculus to an "analysis of the inner structure of propositions"^{[3]} It breaks a simple sentence down into two parts (i) its subject (the object (singular or plural) of discourse) and (ii) a predicate (a verb or possibly verbclause that asserts a quality or attribute of the object(s)). The predicate calculus then generalizes the "subjectpredicate" form (where  symbolizes concatenation (stringing together) of symbols) into a form with the following blanksubject structure " ___predicate", and the predicate in turn generalized to all things with that property.
 Example: "This blue pig has wings" becomes two sentences in the propositional calculus: "This pig has wings" AND "This pig is blue", whose internal structure is not considered. In contrast, in the predicate calculus, the first sentence breaks into "this pig" as the subject, and "has wings" as the predicate. Thus it asserts that object "this pig" is a member of the class (set, collection) of "winged things". The second sentence asserts that object "this pig" has an attribute "blue" and thus is a member of the class of "blue things". One might choose to write the two sentences connected with AND as:
 pW AND pB
The generalization of "this pig" to a (potential) member of two classes "winged things" and "blue things" means that it has a truthrelationship with both of these classes. In other words, given a domain of discourse "winged things", either we find p to be a member of this domain or not. Thus we have a relationship W (wingedness) between p (pig) and { T, F }, W(p) evaluates to { T, F } where { T, F } is the set of the boolean values "true" and "false". Likewise for B (blueness) and p (pig) and { T, F }: B(p) evaluates to { T, F }. So we now can analyze the connected assertions "B(p) AND W(p)" for its overall truthvalue, i.e.:
 ( B(p) AND W(p) ) evaluates to { T, F }
In particular, simple sentences that employ notions of "all", "some", "a few", "one of", etc. are treated by the predicate calculus. Along with the new function symbolism "F(x)" two new symbols are introduced: ∀ (For all), and ∃ (There exists …, At least one of … exists, etc.). The predicate calculus, but not the propositional calculus, can establish the formal validity of the following statement:
 "All blue pigs have wings but some pigs have no wings, hence some pigs are not blue".
Identity
Tarski asserts that the notion of IDENTITY (as distinguished from LOGICAL EQUIVALENCE) lies outside the propositional calculus; however, he notes that if a logic is to be of use for mathematics and the sciences it must contain a "theory" of IDENTITY.^{[4]} Some authors refer to "predicate logic with identity" to emphasize this extension. See more about this below.
An algebra of propositions, the propositional calculus
An algebra (and there are many different ones), loosely defined, is a method by which a collection of symbols called variables together with some other symbols such as parentheses (, ) and some subset of symbols such as *, +, ~, &, ∨, =, ≡, ∧, ￢ are manipulated within a system of rules. These symbols, and wellformed strings of them, are said to represent objects, but in a specific algebraic system these objects do not have meanings. Thus work inside the algebra becomes an exercise in obeying certain laws (rules) of the algebra's syntax (symbolformation) rather than in semantics (meaning) of the symbols. The meanings are to be found outside the algebra.
For a wellformed sequence of symbols in the algebra —a formula— to have some usefulness outside the algebra the symbols are assigned meanings and eventually the variables are assigned values; then by a series of rules the formula is evaluated.
When the values are restricted to just two and applied to the notion of simple sentences (e.g. spoken utterances or written assertions) linked by propositional connectives this whole algebraic system of symbols and rules and evaluationmethods is usually called the propositional calculus or the sentential calculus.
While some of the familiar rules of arithmetic algebra continue to hold in the algebra of propositions (e.g. the commutative and associative laws for AND and OR), some do not (e.g. the distributive laws for AND, OR and NOT).
Usefulness of propositional formulas
Analysis: In deductive reasoning, philosophers, rhetoricians and mathematicians reduce arguments to formulas and then study them (usually with truth tables) for correctness (soundness). For example: Is the following argument sound?
 "Given that consciousness is sufficient for an artificial intelligence and only conscious entities can pass the Turing test, before we can conclude that a robot is an artificial intelligence the robot must pass the Turing test."
Engineers analyze the logic circuits they have designed using synthesis techniques and then apply various reduction and minimization techniques to simplify their designs.
Synthesis: Engineers in particular synthesize propositional formulas (that eventually end up as circuits of symbols) from truth tables. For example, one might write down a truth table for how binary addition should behave given the addition of variables "b" and "a" and "carry_in" "ci", and the results "carry_out" "co" and "sum" Σ:
 Example: in row 5, ( (b+a) + ci ) = ( (1+0) + 1 ) = the number "2". written as a binary number this is 10_{2}, where "co"=1 and Σ=0 as shown in the rightmost columns.
row  b  a  ci  (b+a)+ci  co  Σ  

0  0  0  0  0  0  0  
1  0  0  1  1  0  1  
2  0  1  0  1  0  1  
3  0  1  1  2  1  0  
4  1  0  0  1  0  1  
5  1  0  1  2  1  0  
6  1  1  0  2  1  0  
7  1  1  1  3  1  1 
Propositional variables
The simplest type of propositional formula is a propositional variable. Propositions that are simple (atomic), symbolic expressions are often denoted by variables named a, b, or A, B, etc. A propositional variable is intended to represent an atomic proposition (assertion), such as "It is Saturday" = a (here the symbol = means " … is assigned the variable named …") or "I only go to the movies on Monday" = b.
Truthvalue assignments, formula evaluations
Evaluation of a propositional formula begins with assignment of a truth value to each variable. Because each variable represents a simple sentence, the truth values are being applied to the "truth" or "falsity" of these simple sentences.
Truth values in rhetoric, philosophy and mathematics: The truth values are only two: { TRUTH "T", FALSITY "F" }. An empiricist puts all propositions into two broad classes: analytic—true no matter what (e.g. tautology), and synthetic—derived from experience and thereby susceptible to confirmation by third parties (the verification theory of meaning).^{[5]} Empiricits hold that, in general, to arrive at the truthvalue of a synthetic proposition, meanings (patternmatching templates) must first be applied to the words, and then these meaningtemplates must be matched against whatever it is that is being asserted. For example, my utterance "That cow is blue!" Is this statement a TRUTH? Truly I said it. And maybe I am seeing a blue cow—unless I am lying my statement is a TRUTH relative to the object of my (perhaps flawed) perception. But is the blue cow "really there"? What do you see when you look out the same window? In order to proceed with a verification, you will need a prior notion (a template) of both "cow" and "blue", and an ability to match the templates against the object of sensation (if indeed there is one).^{[citation needed]}
Truth values in engineering: Engineers try to avoid notions of truth and falsity that bedevil philosophers, but in the final analysis engineers must trust their measuring instruments. In their quest for robustness, engineers prefer to pull known objects from a small library—objects that have welldefined, predictable behaviors even in large combinations, (hence their name for the propositional calculus: "combinatorial logic"). The fewest behaviors of a single object are two (e.g. { OFF, ON }, { open, shut }, { UP, DOWN } etc.), and these are put in correspondence with { 0, 1 }. Such elements are called digital; those with a continuous range of behaviors are called analog. Whenever decisions must be made in an analog system, quite often an engineer will convert an analog behavior (the door is 45.32146% UP) to digital (e.g. DOWN=0 ) by use of a comparator.^{[6]}
Thus an assignment of meaning of the variables and the two valuesymbols { 0, 1 } comes from "outside" the formula that represents the behavior of the (usually) compound object. An example is a garage door with two "limit switches", one for UP labelled SW_U and one for DOWN labelled SW_D, and whatever else is in the door's circuitry. Inspection of the circuit (either the diagram or the actual objects themselves—door, switches, wires, circuit board, etc.) might reveal that, on the circuit board "node 22" goes to +0 volts when the contacts of switch "SW_D" are mechanically in contact ("closed") and the door is in the "down" position (95% down), and "node 29" goes to +0 volts when the door is 95% UP and the contacts of switch SW_U are in mechanical contact ("closed").^{[7]} The engineer must define the meanings of these voltages and all possible combinations (all 4 of them), including the "bad" ones (e.g. both nodes 22 and 29 at 0 volts, meaning that the door is open and closed at the same time). The circuit mindlessly responds to whatever voltages it experiences without any awareness of TRUTH or FALSEHOOD, RIGHT or WRONG, SAFE or DANGEROUS.^{[citation needed]}
Propositional connectives
Arbitrary propositional formulas are built from propositional variables and other propositional formulas using propositional connectives. Examples of connectives include:
 The unary negation connective. If is a formula, then is a formula.
 The classical binary connectives . Thus, for example, if and are formulas, so is .
 Other binary connectives, such as NAND, NOR, and XOR
 The ternary connective IF … THEN … ELSE …
 Constant 0ary connectives ⊤ and ⊥ (alternately, constants { T, F }, { 1, 0 } etc. )
 The "theoryextension" connective EQUALS (alternately, IDENTITY, or the sign " = " as distinguished from the "logical connective" )
Connectives of rhetoric, philosophy and mathematics
The following are the connectives common to rhetoric, philosophy and mathematics together with their truth tables. The symbols used will vary from author to author and between fields of endeavor. In general the abbreviations "T" and "F" stand for the evaluations TRUTH and FALSITY applied to the variables in the propositional formula (e.g. the assertion: "That cow is blue" will have the truthvalue "T" for Truth or "F" for Falsity, as the case may be.).
The connectives go by a number of different wordusages, e.g. "a IMPLIES b" is also said "IF a THEN b". Some of these are shown in the table.
b only if a  
b IS SUFFICIENT FOR a  b PRECISELY WHEN a  
a IS NECESSARY FOR b  b IF AND ONLY IF a; b IFF a  
inclusive OR  IF b THEN a  b IS NECESSARY AND SUFFICIENT FOR a  
negation  negation  conjunction  disjunction  implication  biconditional  
variables  NOT b  NOT a  b AND a  b OR a  b IMPLIES a  b IS logically equivalent TO a ***  f IS A tautology  NEITHER a NOR b  b stroke a  exclusive OR  

b  a  ¬(b)  ¬(a)  (b ∧ a)  (b ∨ a)  (b → a)  (b ↔ a)  (f = formula)  (a NOR b)  (ba)  various 
F  F  T  T  F  F  T  T  T  T  T  F 
F  T  T  F  F  T  T  F  T  F  T  T 
T  F  F  T  F  T  F  F  T  F  T  T 
T  T  F  F  T  T  T  T  T  F  F  F 
Engineering connectives
In general, the engineering connectives are just the same as the mathematics connectives excepting they tend to evaluate with "1" = "T" and "0" = "F". This is done for the purposes of analysis/minimization and synthesis of formulas by use of the notion of minterms and Karnaugh maps (see below). Engineers also use the words logical product from Boole's notion (a*a = a) and logical sum from Jevons' notion (a+a = a).^{[8]}
logical product  logical sum  halfadder (no carry)  

exclusive OR  
row number  variables  NOT  NOT  AND  OR  NAND  NOR  XOR  
b*2^{1}+a*2^{0}  b  a  ~(b)  ~(a)  (b & a)  (b ∨ a)  ~(b & a)  ~(b ∨ a)  ⊕ 
0  0  0  1  1  0  0  1  1  0 
1  0  1  1  0  0  1  1  0  1 
2  1  0  0  1  0  1  1  0  1 
3  1  1  0  0  1  1  0  0  0 
CASE connective: IF … THEN … ELSE …
The IF … THEN … ELSE … connective appears as the simplest form of CASE operator of recursion theory and computation theory and is the connective responsible for conditional goto's (jumps, branches). From this one connective all other connectives can be constructed (see more below). Although " IF c THEN b ELSE a " sounds like an implication it is, in its most reduced form, a switch that makes a decision and offers as outcome only one of two alternatives "a" or "b" (hence the name switch statement in the C programming language).^{[9]}
The following three propositions are equivalent (as indicated by the logical equivalence sign ≡ ):
 ( IF 'counter is zero' THEN 'go to instruction b ' ELSE 'go to instruction a ') ≡
 ( (c → b) & (~c → a) ) ≡ ( ( IF 'counter is zero' THEN 'go to instruction b ' ) AND ( IF 'It is NOT the case that counter is zero' THEN 'go to instruction a ) " ≡
 ( (c & b) ∨ (~c & a) ) ≡ " ( 'Counter is zero' AND 'go to instruction b ) OR ( 'It is NOT the case that 'counter is zero' AND 'go to instruction a ) "
Thus IF … THEN … ELSE—unlike implication—does not evaluate to an ambiguous "TRUTH" when the first proposition is false i.e. c = F in (c → b). For example, most people would reject the following compound proposition as a nonsensical non sequitur because the second sentence is not connected in meaning to the first.^{[10]}
 Example: The proposition " IF 'Winston Churchill was Chinese' THEN 'The sun rises in the east' " evaluates as a TRUTH given that 'Winston Church was Chinese' is a FALSEHOOD and 'The sun rises in the east' evaluates as a TRUTH.
In recognition of this problem, the sign → of formal implication in the propositional calculus is called material implication to distinguish it from the everyday, intuitive implication.^{[11]}
The use of the IF … THEN … ELSE construction avoids controversy because it offers a completely deterministic choice between two stated alternatives; it offers two "objects" (the two alternatives b and a), and it selects between them exhaustively and unambiguously.^{[12]} In the truth table below, d1 is the formula: ( (IF c THEN b) AND (IF NOTc THEN a) ). Its fully reduced form d2 is the formula: ( (c AND b) OR (NOTc AND a). The two formulas are equivalent as shown by the columns "=d1" and "=d2". Electrical engineers call the fully reduced formula the ANDORSELECT operator. The CASE (or SWITCH) operator is an extension of the same idea to n possible, but mutually exclusive outcomes. Electrical engineers call the CASE operator a multiplexer.
d1  d2  
row  c  b  a  (  (  c  →  b  )  &  (  ~  (  c  )  →  a  )  )  =d1  (  (  c  &  b  )  ∨  (  ~  (  c  )  &  a  )  )  =d2  

0  0  0  0  0  1  0  0  1  0  0  0  0  0  0  0  0  1  0  0  0  0  
1  0  0  1  0  1  0  1  1  0  1  1  1  0  0  0  1  1  0  1  1  1  
2  0  1  0  0  1  1  0  1  0  0  0  0  0  0  1  0  1  0  0  0  0  
3  0  1  1  0  1  1  1  1  0  1  1  1  0  0  1  1  1  0  1  1  1  
4  1  0  0  1  0  0  0  0  1  1  0  0  1  0  0  0  0  1  0  0  0  
5  1  0  1  1  0  0  0  0  1  1  1  0  1  0  0  0  0  1  0  1  0  
6  1  1  0  1  1  1  1  0  1  1  0  1  1  1  1  1  0  1  0  0  1  
7  1  1  1  1  1  1  1  0  1  1  1  1  1  1  1  1  0  1  0  1  1 
IDENTITY and evaluation
The first table of this section stars *** the entry logical equivalence to note the fact that "Logical equivalence" is not the same thing as "identity". For example, most would agree that the assertion "That cow is blue" is identical to the assertion "That cow is blue". On the other hand, logical equivalence sometimes appears in speech as in this example: " 'The sun is shining' means 'I'm biking' " Translated into a propositional formula the words become: "IF 'the sun is shining' THEN 'I'm biking', AND IF 'I'm biking' THEN 'the sun is shining'":^{[13]}
 "IF 's' THEN 'b' AND IF 'b' THEN 's' " is written as ((s → b) & (b → s)) or in an abbreviated form as (s ↔ b). As the rightmost symbol string is a definition for a new symbol in terms of the symbols on the left, the use of the IDENTITY sign = is appropriate:
 ((s → b) & (b → s)) = (s ↔ b)
Different authors use different signs for logical equivalence: ↔ (e.g. Suppes, Goodstein, Hamilton), ≡ (e.g. Robbin), ⇔ (e.g. Bender and Williamson). Typically identity is written as the equals sign =. One exception to this rule is found in Principia Mathematica. For more about the philosophy of the notion of IDENTITY see Leibniz's law.
As noted above, Tarski considers IDENTITY to lie outside the propositional calculus, but he asserts that without the notion, "logic" is insufficient for mathematics and the deductive sciences. In fact the sign comes into the propositional calculus when a formula is to be evaluated.^{[14]}
In some systems there are no truth tables, but rather just formal axioms (e.g. strings of symbols from a set { ~, →, (, ), variables p_{1}, p_{2}, p_{3}, … } and formulaformation rules (rules about how to make more symbol strings from previous strings by use of e.g. substitution and modus ponens). the result of such a calculus will be another formula (i.e. a wellformed symbol string). Eventually, however, if one wants to use the calculus to study notions of validity and truth, one must add axioms that define the behavior of the symbols called "the truth values" {T, F} ( or {1, 0}, etc.) relative to the other symbols.
For example, Hamilton uses two symbols = and ≠ when he defines the notion of a valuation v of any wffs A and B in his "formal statement calculus" L. A valuation v is a function from the wffs of his system L to the range (output) { T, F }, given that each variable p_{1}, p_{2}, p_{3} in a wff is assigned an arbitrary truth value { T, F }.

v(A) ≠ v(~A)
(i)

v(A → B) = F if and only if v(A) = T and v(B) = F
(ii)
The two definitions (i) and (ii) define the equivalent of the truth tables for the ~ (NOT) and → (IMPLICATION) connectives of his system. The first one derives F ≠ T and T ≠ F, in other words " v(A) does not mean v(~A)". Definition (ii) specifies the third row in the truth table, and the other three rows then come from an application of definition (i). In particular (ii) assigns the value F (or a meaning of "F") to the entire expression. The definitions also serve as formation rules that allow substitution of a value previously derived into a formula:
v(A→B)  
(  v(A)  →  v(B)  ) 
F  T  F  
F  T  T  
T  F  F  
T  T  T 
Some formal systems specify these valuation axioms at the outset in the form of certain formulas such as the law of contradiction or laws of identity and nullity. The choice of which ones to use, together with laws such as commutation and distribution, is up to the system's designer as long as the set of axioms is complete (i.e. sufficient to form and to evaluate any wellformed formula created in the system).
More complex formulas
As shown above, the CASE (IF c THEN b ELSE a ) connective is constructed either from the 2argument connectives IF … THEN … and AND or from OR and AND and the 1argument NOT. Connectives such as the nargument AND (a & b & c & … & n), OR (a ∨ b ∨ c ∨ … ∨ n) are constructed from strings of twoargument AND and OR and written in abbreviated form without the parentheses. These, and other connectives as well, can then used as building blocks for yet further connectives. Rhetoricians, philosophers, and mathematicians use truth tables and the various theorems to analyze and simplify their formulas.
Electrical engineering uses drawn symbols and connect them with lines that stand for the mathematicals act of substitution and replacement. They then verify their drawings with truth tables and simplify the expressions as shown below by use of Karnaugh maps or the theorems. In this way engineers have created a host of "combinatorial logic" (i.e. connectives without feedback) such as "decoders", "encoders", "mutifunction gates", "majority logic", "binary adders", "arithmetic logic units", etc.
Definitions
A definition creates a new symbol and its behavior, often for the purposes of abbreviation. Once the definition is presented, either form of the equivalent symbol or formula can be used. The following symbolism =_{Df} is following the convention of Reichenbach.^{[15]} Some examples of convenient definitions drawn from the symbol set { ~, &, (, ) } and variables. Each definition is producing a logically equivalent formula that can be used for substitution or replacement.
 definition of a new variable: (c & d) =_{Df} s
 OR: ~(~a & ~b) =_{Df} (a ∨ b)
 IMPLICATION: (~a ∨ b) =_{Df} (a → b)
 XOR: (~a & b) ∨ (a & ~b) =_{Df} (a ⊕ b)
 LOGICAL EQUIVALENCE: ( (a → b) & (b → a) ) =_{Df} ( a ≡ b )
Axiom and definition schemas
The definitions above for OR, IMPLICATION, XOR, and logical equivalence are actually schemas (or "schemata"), that is, they are models (demonstrations, examples) for a general formula format but shown (for illustrative purposes) with specific letters a, b, c for the variables, whereas any variable letters can go in their places as long as the letter substitutions follow the rule of substitution below.
 Example: In the definition (~a ∨ b) =_{Df} (a → b), other variablesymbols such as "SW2" and "CON1" might be used, i.e. formally:
 a =_{Df} SW2, b =_{Df} CON1, so we would have as an instance of the definition schema (~SW2 ∨ CON1) =_{Df} (SW2 → CON1)
Substitution versus replacement
Substitution: The variable or subformula to be substituted with another variable, constant, or subformula must be replaced in all instances throughout the overall formula.
 Example: (c & d) ∨ (p & ~(c & ~d)), but (q1 & ~q2) ≡ d. Now wherever variable "d" occurs, substitute (q_{1} & ~q_{2}):
 (c & (q_{1} & ~q_{2})) ∨ (p & ~(c & ~(q_{1} & ~q_{2})))
Replacement: (i) the formula to be replaced must be within a tautology, i.e. logically equivalent ( connected by ≡ or ↔) to the formula that replaces it, and (ii) unlike substitution its permissible for the replacement to occur only in one place (i.e. for one formula).
 Example: Use this set of formula schemas/equivalences:
 ( (a ∨ 0) ≡ a ).
 ( (a & ~a) ≡ 0 ).
 ( (~a ∨ b) =_{Df} (a → b) ).
 ( ~(~a) ≡ a )
 start with "a": a
 Use 1 to replace "a" with (a ∨ 0): (a ∨ 0)
 Use the notion of "schema" to substitute b for a in 2: ( (a & ~a) ≡ 0 )
 Use 2 to replace 0 with (b & ~b): ( a ∨ (b & ~b) )
 (see below for how to distribute "a ∨" over (b & ~b), etc.)
Inductive definition
The classical presentation of propositional logic (see Enderton 2002) uses the connectives . The set of formulas over a given set of propositional variables is inductively defined to be the smallest set of expressions such that:
 Each propositional variable in the set is a formula,
 is a formula whenever is, and
 is a formula whenever and are formulas and is one of the binary connectives .
This inductive definition can be easily extended to cover additional connectives.
The inductive definition can also be rephrased in terms of a closure operation (Enderton 2002). Let V denote a set of propositional variables and let X_{V} denote the set of all strings from an alphabet including symbols in V, left and right parentheses, and all the logical connectives under consideration. Each logical connective corresponds to a formula building operation, a function from XX_{V} to XX_{V}:
 Given a string z, the operation returns .
 Given strings y and z, the operation returns . There are similar operations , , and corresponding to the other binary connectives.
The set of formulas over V is defined to be the smallest subset of XX_{V} containing V and closed under all the formula building operations.
Parsing formulas
The following "laws" of the propositional calculus are used to "reduce" complex formulas. The "laws" can be verified easily with truth tables. For each law, the principal (outermost) connective is associated with logical equivalence ≡ or identity =. A complete analysis of all 2^{n} combinations of truthvalues for its n distinct variables will result in a column of 1's (T's) underneath this connective. This finding makes each law, by definition, a tautology. And, for a given law, because its formula on the left and right are equivalent (or identical) they can be substituted for one another.
 Example: The following truth table is De Morgan's law for the behavior of NOT over OR: ~(a ∨ b) ≡ (~a & ~b). To the left of the principal connective ≡ (yellow column labelled "taut") the formula ~(b ∨ a) evaluates to (1, 0, 0, 0) under the label "P". On the right of "taut" the formula (~(b) ∨ ~(a)) also evaluates to (1, 0, 0, 0) under the label "Q". As the two columns have equivalent evaluations, the logical equivalence ≡ under "taut" evaluates to (1, 1, 1, 1), i.e. P ≡ Q. Thus either formula can be substituted for the other if it appears in a larger formula.
P  taut  Q  
b  a  (  ~  (  b  V  a  )  ≡  (  ~  (  b  )  &  ~  (  a  )  )  )  
0  0  1  0  0  0  1  1  0  1  1  0  
0  1  0  0  1  1  1  1  0  0  0  1  
1  0  0  1  1  0  1  0  1  0  1  0  
1  1  0  1  1  1  1  0  1  0  0  1 
Enterprising readers^{[who?]} might challenge themselves to invent an "axiomatic system" that uses the symbols { ∨, &, ~, (, ), variables a, b, c }, the formation rules specified above, and as few as possible of the laws listed below, and then derive as theorems the others as well as the truthtable valuations for ∨, &, and ~. One set attributed to Huntington (1904) (Suppes:204) uses eight of the laws defined below.
Note that if used in an axiomatic system, the symbols 1 and 0 (or T and F) are considered to be wffs and thus obey all the same rules as the variables. Thus the laws listed below are actually axiom schemas, that is, they stand in place of an infinite number of instances. Thus ( x ∨ y ) ≡ ( y ∨ x ) might be used in one instance, ( p ∨ 0 ) ≡ ( 0 ∨ p ) and in another instance ( 1 ∨ q ) ≡ ( q ∨ 1 ), etc.
Connective seniority (symbol rank)
In general, to avoid confusion during analysis and evaluation of propositional formulas make liberal use parentheses. However, quite often authors leave them out. To parse a complicated formula one first needs to know the seniority, or rank, that each of the connectives (excepting *) has over the other connectives. To "wellform" a formula, start with the connective with the highest rank and add parentheses around its components, then move down in rank (paying close attention to the connective's scope over which the it is working). From most to leastsenior, with the predicate signs ∀x and ∃x, the IDENTITY = and arithmetic signs added for completeness:^{[16]}
 ≡
 (LOGICAL EQUIVALENCE)
 →
 (IMPLICATION)
 &
 (AND)
 ∨
 (OR)
 ~
 (NOT)
 ∀x
 (FOR ALL x)
 ∃x
 (THERE EXISTS AN x)
 =
 (IDENTITY)
 +
 (arithmetic sum)
 *
 (arithmetic multiply)
 '
 (s, arithmetic successor).
Thus the formula can be parsed—but note that, because NOT does not obey the distributive law, the parentheses around the inner formula (~c & ~d) is mandatory:
 Example: " d & c ∨ w " rewritten is ( (d & c) ∨ w )
 Example: " a & a → b ≡ a & ~a ∨ b " rewritten (rigorously) is
 ≡ has seniority: ( ( a & a → b ) ≡ ( a & ~a ∨ b ) )
 → has seniority: ( ( a & (a → b) ) ≡ ( a & ~a ∨ b ) )
 & has seniority both sides: ( ( ( (a) & (a → b) ) ) ≡ ( ( (a) & (~a ∨ b) ) )
 ~ has seniority: ( ( ( (a) & (a → b) ) ) ≡ ( ( (a) & (~(a) ∨ b) ) )
 check 9 ( parenthesis and 9 ) parenthesis: ( ( ( (a) & (a → b) ) ) ≡ ( ( (a) & (~(a) ∨ b) ) )
 Example:
 d & c ∨ p & ~(c & ~d) ≡ c & d ∨ p & c ∨ p & ~d rewritten is ( ( (d & c) ∨ ( p & ~((c & ~(d)) ) ) ) ≡ ( (c & d) ∨ (p & c) ∨ (p & ~(d)) ) )
Commutative and associative laws
Both AND and OR obey the commutative law and associative law:
 Commutative law for OR: ( a ∨ b ) ≡ ( b ∨ a )
 Commutative law for AND: ( a & b ) ≡ ( b & a )
 Associative law for OR: (( a ∨ b ) ∨ c ) ≡ ( a ∨ (b ∨ c) )
 Associative law for AND: (( a & b ) & c ) ≡ ( a & (b & c) )
Omitting parentheses in strings of AND and OR: The connectives are considered to be unary (onevariable, e.g. NOT) and binary (i.e. twovariable AND, OR, IMPLIES). For example:
 ( (c & d) ∨ (p & c) ∨ (p & ~d) ) above should be written ( ((c & d) ∨ (p & c)) ∨ (p & ~(d) ) ) or possibly ( (c & d) ∨ ( (p & c) ∨ (p & ~(d)) ) )
However, a truthtable demonstration shows that the form without the extra parentheses is perfectly adequate.
Omitting parentheses with regards to a singlevariable NOT: While ~(a) where a is a single variable is perfectly clear, ~a is adequate and is the usual way this literal would appear. When the NOT is over a formula with more than one symbol, then the parentheses are mandatory, e.g. ~(a ∨ b).
Distributive laws
OR distributes over AND and AND distributes over OR. NOT does not distribute over AND or OR. See below about De Morgan's law:
 Distributive law for OR: ( c ∨ ( a & b) ) ≡ ( (c ∨ a) & (c ∨ b) )
 Distributive law for AND: ( c & ( a ∨ b) ) ≡ ( (c & a) ∨ (c & b) )
De Morgan's laws
NOT, when distributed over OR or AND, does something peculiar (again, these can be verified with a truthtable):
 De Morgan's law for OR: ¬(a ∨ b) ≡ (¬a ^ ¬b)
 De Morgan's law for AND: ¬(a ^ b) ≡ (¬a ∨ ¬b)
Laws of absorption
Absorption, in particular the first one, causes the "laws" of logic to differ from the "laws" of arithmetic:
 Absorption (idempotency) for OR: (a ∨ a) ≡ a
 Absorption (idempotency) for AND: (a & a) ≡ a
Laws of evaluation: Identity, nullity, and complement
The sign " = " (as distinguished from logical equivalence ≡, alternately ↔ or ⇔) symbolizes the assignment of value or meaning. Thus the string (a & ~(a)) symbolizes "1", i.e. it means the same thing as symbol "1" ". In some "systems" this will be an axiom (definition) perhaps shown as ( (a & ~(a)) =_{Df} 1 ); in other systems, it may be derived in the truth table below:
c  taut  c  
a  (  (  a  &  ~  (  a  )  )  ≡  0  )  
0  0  0  1  0  1  0  
1  1  0  0  1  1  0 
 Commutation of equality: (a = b) ≡ (b = a)
 Identity for OR: (a ∨ 0) = a or (a ∨ F) = a
 Identity for AND: (a & 1) = a or (a & T) = a
 Nullity for OR: (a ∨ 1) = 1 or (a ∨ T) = T
 Nullity for AND: (a & 0) = 0 or (a & F) = F
 Complement for OR: (a ∨ ~a) = 1 or (a ∨ ~a) = T, law of excluded middle
 Complement for AND: (a & ~a) = 0 or (a & ~a) = F, law of contradiction
Double negative (involution)
 ¬(¬a) ≡ a
Wellformed formulas (wffs)
A key property of formulas is that they can be uniquely parsed to determine the structure of the formula in terms of its propositional variables and logical connectives. When formulas are written in infix notation, as above, unique readability is ensured through an appropriate use of parentheses in the definition of formulas. Alternatively, formulas can be written in Polish notation or reverse Polish notation, eliminating the need for parentheses altogether.
The inductive definition of infix formulas in the previous section can be converted to a formal grammar in BackusNaur form:
<formula> ::= <propositional variable>
 ( ¬ <formula> )
 ( <formula> ∧ <formula>)
 ( <formula> ∨ <formula> )
 ( <formula> → <formula> )
 ( <formula> ↔ <formula> )
It can be shown that any expression matched by the grammar has a balanced number of left and right parentheses, and any nonempty initial segment of a formula has more left than right parentheses.^{[17]} This fact can be used to give an algorithm for parsing formulas. For example, suppose that an expression x begins with . Starting after the second symbol, match the shortest subexpression y of x that has balanced parentheses. If x is a formula, there is exactly one symbol left after this expression, this symbol is a closing parenthesis, and y itself is a formula. This idea can be used to generate a recursive descent parser for formulas.
Example of parenthesis counting:
This method locates as "1" the principal connective — the connective under which the overall evaluation of the formula occurs for the outermost parentheses (which are often omitted).^{[18]} It also locates the innermost connective where one would begin evaluatation of the formula without the use of a truth table, e.g. at "level 6".
start  (  (  (  c  &  d  )  V  (  p  &  ~  (  (  c  &  ~  (  d  )  )  )  )  )  =  (  (  (  c  &  d  )  V  (  p  &  d  )  )  V  (  p  &  ~  (  c  )  )  )  )  

count  0  1  2  3  3  3  3  2  2  3  3  3  3  4  5  5  5  5  6  6  5  4  3  3  1  1  2  3  4  4  4  4  3  3  4  4  4  4  3  2  2  3  3  3  3  3  3  3  2  1  0 
Wffs versus valid formulas in inferences
The notion of valid argument is usually applied to inferences in arguments, but arguments reduce to propositional formulas and can be evaluated the same as any other propositional formula. Here a valid inference means: "The formula that represents the inference evaluates to "truth" beneath its principal connective, no matter what truthvalues are assigned to its variables", i.e. the formula is a tautology.^{[19]} Quite possibly a formula will be wellformed but not valid. Another way of saying this is: "Being wellformed is necessary for a formula to be valid but it is not sufficient." The only way to find out if it is both wellformed and valid is to submit it to verification with a truth table or by use of the "laws":
 Example 1: What does one make of the following difficulttofollow assertion? Is it valid? "If it's sunny, but if the frog is croaking then it's not sunny, then it's the same as saying that the frog isn't croaking." Convert this to a propositional formula as follows:
 " IF (a AND (IF b THEN NOTa) THEN NOTa" where " a " represents "its sunny" and " b " represents "the frog is croaking":
 ( ( (a) & ( (b) → ~(a) ) ≡ ~(b) )
 This is wellformed, but is it valid? In other words, when evaluated will this yield a tautology (all T) beneath the logicalequivalence symbol ≡ ? The answer is NO, it is not valid. However, if reconstructed as an implication then the argument is valid.
 "Saying it's sunny, but if the frog is croaking then it's not sunny, implies that the frog isn't croaking."
 Other circumstances may be preventing the frog from croaking: perhaps a crane ate it.
 Example 2 (from Reichenbach via Bertrand Russell):
 "If pigs have wings, some winged animals are good to eat. Some winged animals are good to eat, so pigs have wings."
 ( ((a) → (b)) & (b) → (a) ) is well formed, but an invalid argument as shown by the red evaluation under the principal implication:
W  G  arg  
a  b  (  (  (  a  >  b  )  &  b  )  >  a  )  
0  0  0  1  0  0  0  1  0  
0  1  0  1  1  1  1  0  0  
1  0  1  0  0  0  0  1  1  
1  1  1  1  1  1  1  1  1 
Reduced sets of connectives
A set of logical connectives is called complete if every propositional formula is tautologically equivalent to a formula with just the connectives in that set. There are many complete sets of connectives, including , , and . There are two binary connectives that are complete on their own, corresponding to NAND and NOR, respectively.^{[20]} Some pairs are not complete, for example .
The stroke (NAND)
The binary connective corresponding to NAND is called the Sheffer stroke, and written with a vertical bar  or vertical arrow ↑. The completeness of this connective was noted in Principia Mathematica (1927:xvii). Since it is complete on its own, all other connectives can be expressed using only the stroke. For example, where the symbol " ≡ " represents logical equivalence:
 ~p ≡ pp
 p → q ≡ p~q
 p ∨ q ≡ ~p~q
 p & q ≡ ~(pq)
In particular, the zeroary connectives (representing truth) and (representing falsity) can be expressed using the stroke:
IF … THEN … ELSE
This connective together with { 0, 1 }, ( or { F, T } or { , } ) forms a complete set. In the following the IF...THEN...ELSE relation (c, b, a) = d represents ( (c → b) ∨ (~c → a) ) ≡ ( (c & b) ∨ (~c & a) ) = d
 (c, b, a):
 (c, 0, 1) ≡ ~c
 (c, b, 1) ≡ (c → b)
 (c, c, a) ≡ (c ∨ a)
 (c, b, c) ≡ (c & b)
Example: The following shows how a theorembased proof of "(c, b, 1) ≡ (c → b)" would proceed, below the proof is its truthtable verification. ( Note: (c → b) is defined to be (~c ∨ b) ):
 Begin with the reduced form: ( (c & b) ∨ (~c & a) )
 Substitute "1" for a: ( (c & b) ∨ (~c & 1) )
 Identity (~c & 1) = ~c: ( (c & b) ∨ (~c) )
 Law of commutation for V: ( (~c) ∨ (c & b) )
 Distribute "~c V" over (c & b): ( ((~c) ∨ c ) & ((~c) ∨ b )
 Law of excluded middle (((~c) ∨ c ) = 1 ): ( (1) & ((~c) ∨ b ) )
 Distribute "(1) &" over ((~c) ∨ b): ( ((1) & (~c)) ∨ ((1) & b )) )
 Commutivity and Identity (( 1 & ~c) = (~c & 1) = ~c, and (( 1 & b) ≡ (b & 1) ≡ b: ( ~c ∨ b )
 ( ~c ∨ b ) is defined as c → b Q. E. D.
In the following truth table the column labelled "taut" for tautology evaluates logical equivalence (symbolized here by ≡) between the two columns labelled d. Because all four rows under "taut" are 1's, the equivalence indeed represents a tautology.
d  taut  d  
rows  c  b  a  (  (  (  c  &  b  )  V  (  ~  (  c  )  &  a  )  )  ≡  (  ~  (  c  )  V  b  )  )  
0,1  0  0  1  0  0  0  1  1  0  1  1  1  1  0  1  0  
2,3  0  1  1  0  0  1  1  1  0  1  1  1  1  0  1  1  
4,5  1  0  1  1  0  0  0  0  1  0  1  1  0  1  0  0  
6,7  1  1  1  1  1  1  1  0  1  0  1  1  0  1  1  1 
Normal forms
An arbitrary propositional formula may have a very complicated structure. It is often convenient to work with formulas that have simpler forms, known as normal forms. Some common normal forms include conjunctive normal form and disjunctive normal form. Any propositional formula can be reduced to its conjunctive or disjunctive normal form.
Reduction to normal form
Reduction to normal form is relatively simple once a truth table for the formula is prepared. But further attempts to minimize the number of literals (see below) requires some tools: reduction by De Morgan's laws and truth tables can be unwieldy, but Karnaugh maps are very suitable a small number of variables (5 or less). Some sophisticated tabular methods exist for more complex circuits with multiple outputs but these are beyond the scope of this article; for more see Quine–McCluskey algorithm.
Literal, term and alterm
In electrical engineering a variable x or its negation ~(x) is lumped together into a single notion called a literal. A string of literals connected by ANDs is called a term. A string of literals connected by OR is called an alterm. Typically the literal ~(x) is abbreviated ~x. Sometimes the &symbol is omitted altogether in the manner of algebraic multiplication.
 Examples
 a, b, c, d are variables. ((( a & ~(b) ) & ~(c)) & d) is a term. This can be abbreviated as (a & ~b & ~c & d), or a~b~cd.
 p, q, r, s are variables. (((p & ~(q) ) & r) & ~(s) ) is an alterm. This can be abbreviated as (p ∨ ~q ∨ r ∨ ~s).
Minterms
In the same way that a 2^{n}row truth table displays the evaluation of a propositional formula for all 2^{n} possible values of its variables, n variables produces a 2^{n}square Karnaugh map (even though we cannot draw it in its fulldimensional realization). For example, 3 variables produces 2^{3} = 8 rows and 8 Karnaugh squares; 4 variables produces 16 truthtable rows and 16 squares and therefore 16 minterms. Each Karnaughmap square and its corresponding truthtable evaluation represents one minterm.
Any propositional formula can be reduced to the "logical sum" (OR) of the active (i.e. "1" or "T"valued) minterms. When in this form the formula is said to be in disjunctive normal form. But even though it is in this form, it is not necessarily minimized with respect to either the number of terms or the number of literals.
In the following table, observe the peculiar numbering of the rows: (0, 1, 3, 2, 6, 7, 5, 4, 0). The first column is the decimal equivalent of the binary equivalent of the digits "cba", in other words:
 Example
 cba_{2} = c*2^{2} + b*2^{1} + a*2^{0}:
 cba = (c=1, b=0, a=0) = 101_{2} = 1*2^{2} + 0*2^{1} + 1*2^{0} = 5_{10}
This numbering comes about because as one moves down the table from row to row only one variable at a time changes its value. Gray code is derived from this notion. This notion can be extended to three and fourdimensional hypercubes called Hasse diagrams where each corner's variables change only one at a time as one moves around the edges of the cube. Hasse diagrams (hypercubes) flattened into two dimensions are either Veitch diagrams or Karnaugh maps (these are virtually the same thing).
When working with Karnaugh maps one must always keep in mind that the top edge "wrap arounds" to the bottom edge, and the left edge wraps around to the right edge—the Karnaugh diagram is really a three or four or ndimensional flattened object.
decimal equivalent of (c, b, a)  c  b  a  minterm 

0  0  0  0  (~c & ~b & ~a) 
1  0  0  1  (~c & ~b & a) 
3  0  1  1  (~c & b & a) 
2  0  1  0  (~c & b & ~a) 
6  1  1  0  (c & b & ~a) 
7  1  1  1  (c & b & a) 
5  1  0  1  (c & ~b & a) 
4  1  0  0  (c & ~b & ~a) 
0  0  0  0  (~a & ~b & ~c) 
Reduction by use of the map method (Veitch, Karnaugh)
Veitch improved the notion of Venn diagrams by converting the circles to abutting squares, and Karnaugh simplified the Veitch diagram by converting the minterms, written in their literalform (e.g. ~abc~d) into numbers.^{[21]} The method proceeds as follows:
Produce the formula's truth table
Produce the formula's truth table. Number its rows using the binaryequivalents of the variables (usually just sequentially 0 through n1) for n variables.
 Technically, the propositional function has been reduced to its (unminimized) conjunctive normal form: each row has its minterm expression and these can be OR'd to produce the formula in its (unminimized) conjunctive normal form.
Example: ((c & d) ∨ (p & ~(c & (~d)))) = q in conjunctive normal form is:
 ( (~p & d & c ) ∨ (p & d & c) ∨ (p & d & ~c) ∨ (p & ~d & ~c) ) = q
However, this formula be reduced both in the number of terms (from 4 to 3) and in the total count of its literals (12 to 6).
row  Minterms  p  d  c  (  (  c  &  d  )  ∨  (  p  &  ~  (  (  c  &  ~  (  d  )  )  )  )  )  Active minterms  Formula in conjunctive normal form 

0  ( ~p & ~d & ~c )  0  0  0  0  0  0  0  0  0  1  0  0  1  0  
1  ( ~p & ~d & c)  0  0  1  1  0  0  0  0  0  0  1  1  1  0  
2  ( ~p & d & ~c )  0  1  0  0  0  1  0  0  0  1  0  0  0  1  
3  ( ~p & d & c )  0  1  1  1  1  1  1  0  0  1  1  0  0  1  (~p & d & c)  
4  ( p & ~d & ~c )  1  0  0  0  0  0  1  1  1  1  0  0  1  0  (~p & d & c)  
5  ( p & ~d & c )  1  0  1  1  0  0  0  1  0  0  1  1  1  0  
6  ( p & d & ~c )  1  1  0  0  0  1  1  1  1  1  0  0  0  1  (p & d & ~c)  
7  ( p & d & c )  1  1  1  0  1  1  1  1  1  1  1  0  0  1  ( p & d & c )  
q  = (~p&d&c) ∨ (~p&d&c) ∨ (p&d&~c ) ∨ (p&d&c ) 
Create the formula's Karnaugh map
Use the values of the formula (e.g. "p") found by the truthtable method and place them in their into their respective (associated) Karnaugh squares (these are numbered per the Gray code convention). If values of "d" for "don't care" appear in the table, this adds flexibility during the reduction phase.
Reduce minterms
Minterms of adjacent (abutting) 1squares (Tsquares) can be reduced with respect to the number of their literals, and the number terms also will be reduced in the process. Two abutting squares (2 x 1 horizontal or 1 x 2 vertical, even the edges represent abutting squares) lose one literal, four squares in a 4 x 1 rectangle (horizontal or vertical) or 2 x 2 square (even the four corners represent abutting squares) lose two literals, eight squares in a rectangle lose 3 literals, etc. (One seeks out the largest square or rectangles and ignores the smaller squares or rectangles contained totally within it. ) This process continues until all abutting squares are accounted for, at which point the propositional formula is minimized.
For example, squares #3 and #7 abut. These two abutting squares can lose one literal (e.g. "p" from squares #3 and #7), four squares in a rectangle or square lose two literals, eight squares in a rectangle lose 3 literals, etc. (One seeks out the largest square or rectangles.) This process continues until all abutting squares are accounted for, at which point the propositional formula is said to be minimized.
Example: The map method usually is done by inspection. The following example expands the algebraic method to show the "trick" behind the combining of terms on a Karnaugh map:
 Minterms #3 and #7 abut, #7 and #6 abut, and #4 and #6 abut (because the table's edges wrap around). So each of these pairs can be reduced.
Observe that by the Idempotency law (A ∨ A) = A, we can create more terms. Then by association and distributive laws the variables to disappear can be paired, and then "disappeared" with the Law of contradiction (x & ~x)=0. The following uses brackets [ and ] only to keep track of the terms; they have no special significance:
 Put the formula in conjunctive normal form with the formula to be reduced:
 q = ( (~p & d & c ) ∨ (p & d & c) ∨ (p & d & ~c) ∨ (p & ~d & ~c) ) = ( #3 ∨ #7 ∨ #6 ∨ #4 )
 Idempotency (absorption) [ A ∨ A) = A:
 ( #3 ∨ [ #7 ∨ #7 ] ∨ [ #6 ∨ #6 ] ∨ #4 )
 Associative law (x ∨ (y ∨ z)) = ( (x ∨ y) ∨ z )
 ( [ #3 ∨ #7 ] ∨ [ #7 ∨ #6 ] ∨ [ #6 ∨ #4] )
 [ (~p & d & c ) ∨ (p & d & c) ] ∨ [ (p & d & c) ∨ (p & d & ~c) ] ∨ [ (p & d & ~c) ∨ (p & ~d & ~c) ].
 Distributive law ( x & (y ∨ z) ) = ( (x & y) ∨ (x & z) ) :
 ( [ (d & c) ∨ (~p & p) ] ∨ [ (p & d) ∨ (~c & c) ] ∨ [ (p & ~c) ∨ (c & ~c) ] )
 Commutative law and law of contradiction (x & ~x) = (~x & x) = 0:
 ( [ (d & c) ∨ (0) ] ∨ [ (p & d) ∨ (0) ] ∨ [ (p & ~c) ∨ (0) ] )
 Law of identity ( x ∨ 0 ) = x leading to the reduced form of the formula:
 q = ( (d & c) ∨ (p & d) ∨ (p & ~c) )
Verify reduction with a truth table
row  Minterms  p  d  c  (  (  d  &  c  )  ∨  (  p  &  d  )  ∨  (  p  &  ~  (  c  )  ) 

0  ( ~p & ~d & ~c )  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  
1  ( ~p & ~d & c)  0  0  1  0  0  1  0  0  0  0  0  0  0  0  1  
2  ( ~p & d & ~c )  0  1  0  1  0  0  0  0  0  1  0  0  0  1  0  
3  ( ~p & d & c )  0  1  1  1  1  1  1  0  0  1  1  0  0  0  1  
4  ( p & ~d & ~c )  1  0  0  0  0  0  0  1  0  0  1  1  1  1  0  
5  ( p & ~d & c )  1  0  1  0  0  1  0  1  0  0  0  1  0  0  1  
6  ( p & d & ~c )  1  1  0  1  0  0  1  1  1  1  1  1  1  1  0  
7  ( p & d & c )  1  1  1  1  1  1  1  1  1  1  1  1  0  0  1  
q 
Impredicative propositions
Given the following examplesasdefinitions, what does one make of the subsequent reasoning:
 (1) "This sentence is simple." (2) "This sentence is complex, and it is conjoined by AND."
Then assign the variable "s" to the leftmost sentence "This sentence is simple". Define "compound" c = "not simple" ~s, and assign c = ~s to "This sentence is compound"; assign "j" to "It [this sentence] is conjoined by AND". The second sentence can be expressed as:
 ( NOT(s) AND j )
If truth values are to be placed on the sentences c = ~s and j, then all are clearly FALSEHOODS: e.g. "This sentence is complex" is a FALSEHOOD (it is simple, by definition). So their conjunction (AND) is a falsehood. But when taken in its assembed form, the sentence a TRUTH.
This is an example of the paradoxes that result from an impredicative definition—that is, when an object m has a property P, but the object m is defined in terms of property P.^{[22]} The best advice for a rhetorician or one involved in deductive analysis is avoid impredicative definitions but at the same time be on the lookout for them because they can indeed create paradoxes. Engineers, on the other hand, put them to work in the form of propositional formulas with feedback.
Propositional formula with "feedback"
The notion of a propositional formula appearing as one of its own variables requires a formation rule that allows the assignment of the formula to a variable. In general there is no stipulation (either axiomatic or truthtable systems of objects and relations) that forbids this from happening.^{[23]}
The simplest case occurs when an OR formula becomes one its own inputs e.g. p = q. Begin with (p ∨ s) = q, then let p = q. Observe that q's "definition" depends on itself "q" as well as on "s" and the OR connective; this definition of q is thus impredicative. Either of two conditions can result:^{[24]} oscillation or memory.
It helps to think of the formula as a black box. Without knowledge of what is going on "inside" the formula"box" from the outside it would appear that the output is no longer a function of the inputs alone. That is, sometimes one looks at q and sees 0 and other times 1. To avoid this problem one has to know the state (condition) of the "hidden" variable p inside the box (i.e. the value of q fed back and assigned to p). When this is known the apparent inconsistency goes away.
To understand [predict] the behavior of formulas with feedback requires the more sophisticated analysis of sequential circuits. Propositional formulas with feedback lead, in their simplest form, to state machines; they also lead to memories in the form of Turing tapes and countermachine counters. From combinations of these elements one can build any sort of bounded computational model (e.g. Turing machines, counter machines, register machines, Macintosh computers, etc.).
Oscillation
In the abstract (ideal) case the simplest oscillating formula is a NOT fed back to itself: ~(~(p=q)) = q. Analysis of an abstract (ideal) propositional formula in a truthtable reveals an inconsistency for both p=1 and p=0 cases: When p=1, q=0, this cannot be because p=q; ditto for when p=0 and q=1.
q  

p  ~  (  p  )  = q  
0  1  0  1  q & p inconsistent  
1  0  1  0  q & p inconsistent 
Oscillation with delay: If an delay^{[25]} (ideal or nonideal) is inserted in the abstract formula between p and q then p will oscillate between 1 and 0: 101010...101... ad infinitum. If either of the delay and NOT are not abstract (i.e. not ideal), the type of analysis to be used will be dependent upon the exact nature of the objects that make up the oscillator; such things fall outside mathematics and into engineering.
Analysis requires a delay to be inserted and then the loop cut between the delay and the input "p". The delay must be viewed as a kind of proposition that has "qd" (qdelayed) as output for "q" as input. This new proposition adds another column to the truth table. The inconsistency is now between "qd" and "p" as shown in red; two stable states resulting:
q  

qd  p  (  ~  (  p  )  = q  
0  0  1  0  1  state 1  
0  1  0  1  0  qd & p inconsistent  
1  0  1  0  1  qd & p inconsistent  
1  1  0  1  0  state 0 
Memory
Without delay, inconsistencies must be eliminated from a truth table analysis. With the notion of "delay", this condition presents itself as a momentary inconsistency between the fedback output variable q and p = q_{delayed}.
A truth table reveals the rows where inconsistencies occur between p = q_{delayed} at the input and q at the output. After "breaking" the feedback,^{[26]} the truth table construction proceeds in the conventional manner. But afterwards, in every row the output q is compared to the nowindependent input p and any inconsistencies between p and q are noted (i.e. p=0 together with q=1, or p=1 and q=0); when the "line" is "remade" both are rendered impossible by the Law of contradiction ~(p & ~p)). Rows revealing inconsistencies are either considered transient states or just eliminated as inconsistent and hence "impossible".
Onceflip memory
About the simplest memory results when the output of an OR feeds back to one of its inputs, in this case output "q" feeds back into "p". Given that the formula is first evaluated (initialized) with p=0 & q=0, it will "flip" once when "set" by s=1. Thereafter, output "q" will sustain "q" in the "flipped" condition (state q=1). This behavior, now timedependent, is shown by the state diagram to the right of the onceflip.
q  

p  s  (  s  ∨  p  )  = q  
0  0  0  0  0  0  state 0, s=0  
0  1  1  1  0  q & p inconsistent  
1  0  0  1  1  1  state 1 with s = 0  
1  1  1  1  1  1  state 1 with s = 1 
Flipflop memory
The next simplest case is the "setreset" flipflop shown below the onceflip. Given that r=0 & s=0 and q=0 at the outset, it is "set" (s=1) in a manner similar to the onceflip. It however has a provision to "reset" q=0 when "r"=1. And additional complication occurs if both set=1 and reset=1. In this formula, the set=1 forces the output q=1 so when and if (s=0 & r=1) the flipflop will be reset. Or, if (s=1 & r=0) the flipflop will be set. In the abstract (ideal) instance in which s=1 ⇒ s=0 & r=1 ⇒ r=0 simultaneously, the formula q will be indeterminate (undecidable). Due to delays in "real" OR, AND and NOT the result will be unknown at the outset but thereafter predicable.
q  

p  s  r  (  s  ∨  (  p  &  ~  (  r  )  )  )  = q  
0  0  0  0  0  0  0  1  0  0  state 0 with ( s=0 & r=0 )  
0  0  1  0  0  0  0  0  1  0  state 0 with ( s=0 & r=1 )  
0  1  0  1  1  0  0  1  0  q & p inconsistent  
0  1  1  1  1  0  0  0  1  q & p inconsistent  
1  0  0  0  1  1  1  1  0  1  state 1 with ( s=0 & r=0 )  
1  0  1  0  0  1  0  0  1  q & p inconsistent  
1  1  0  1  1  1  1  1  0  1  state 1 with ( s=1 & r=0 )  
1  1  1  1  1  1  0  0  1  1  state 1 with s & r simultaneously 1 
Clocked flipflop memory
The formula known as "clocked flipflop" memory ("c" is the "clock" and "d" is the "data") is given below. It works as follows: When c = 0 the data d (either 0 or 1) cannot "get through" to affect output q. When c = 1 the data d "gets through" and output q "follows" d's value. When c goes from 1 to 0 the last value of the data remains "trapped" at output "q". As long as c=0, d can change value without causing q to change.
 Examples
 ( ( c & d ) ∨ ( p & ( ~( c & ~( d ) ) ) ) = q, but now let p = q:
 ( ( c & d ) ∨ ( q & ( ~( c & ~( d ) ) ) ) = q
The state diagram is similar in shape to the flipflop's state diagram, but with different labelling on the transitions.
s  q  w  v  r  u  

row  q  d  c  (  (  c  &  d  )  ∨  (  q  &  ~  (  (  c  &  ~  (  d  )  )  )  )  )  =q  Description 
0  0  0  0  0  0  0  0  0  0  1  0  0  1  0  0  state 0 with ( s=0 & r=0 ), 0 is trapped  
1  0  0  1  1  0  0  0  0  0  0  1  1  1  0  0  state 0 with ( d=0 & c=1 ): q=0 is following d=0 

2  0  1  0  0  0  1  0  0  0  1  0  0  0  1  0  state 0 with ( d=1 & r=0 ), 0 is trapped  
3  0  1  1  1  1  1  1  0  0  1  1  0  0  1  q & p inconsistent  
4  1  0  0  0  0  0  1  1  1  1  0  0  1  0  1  state 1 with (d =0 & c=0 ), 1 is trapped  
5  1  0  1  1  0  0  0  1  0  0  1  1  1  0  q & p inconsistent  
6  1  1  0  0  0  1  1  1  1  1  0  0  0  1  1  state 1 with (d =1 & c=0 ), 1 is trapped  
7  1  1  1  1  1  1  1  1  1  1  1  0  0  1  1  state 1 with ( d=1 & c=1 ): q=1 is following d=1 
Historical development
Bertrand Russell (1912:74) lists three laws of thought that derive from Aristotle: (1) The law of identity: "Whatever is, is.", (2) The law of contradiction: "Nothing cannot both be and not be", and (3) The law of excluded middle: "Everything must be or not be."
 Example: Here O is an expression about an objects BEING or QUALITY:
 Law of Identity: O = O
 Law of contradiction: ~(O & ~(O))
 Law of excluded middle: (O ∨ ~(O))
The use of the word "everything" in the law of excluded middle renders Russell's expression of this law open to debate. If restricted to an expression about BEING or QUALITY with reference to a finite collection of objects (a finite "universe of discourse")  the members of which can be investigated one after another for the presence or absence of the assertion—then the law is considered intuitionistically appropriate. Thus an assertion such as: "This object must either BE or NOT BE (in the collection)", or "This object must either have this QUALITY or NOT have this QUALITY (relative to the objects in the collection)" is acceptable. See more at Venn diagram.
Although a propositional calculus originated with Aristotle, the notion of an algebra applied to propositions had to wait until the early 19th century. In an (adverse) reaction to the 2000 year tradition of Aristotle's syllogisms, John Locke's Essay concerning human understanding (1690) used the word semiotics (theory of the use of symbols). By 1826 Richard Whately had critically analyzed the syllogistic logic with a sympathy toward Locke's semiotics. George Bentham's work (1827) resulted in the notion of "quantification of the predicate" (1827) (nowadays symbolized as ∀ ≡ "for all"). A "row" instigated by William Hamilton over a priority dispute with Augustus De Morgan "inspired George Boole to write up his ideas on logic, and to publish them as MAL [Mathematical Analysis of Logic] in 1847" (GrattinGuinness and Bornet 1997:xxviii).
About his contribution GrattinGuinness and Bornet comment:
 "Boole's principal single innovation was [the] law [ x^{n} = x ] for logic: it stated that the mental acts of choosing the property x and choosing x again and again is the same as choosing x once... As consequence of it he formed the equations x•(1x)=0 and x+(1x)=1 which for him expressed respectively the law of contradiction and the law of excluded middle" (p. xxviiff). For Boole "1" was the universe of discourse and "0" was nothing.
Gottlob Frege's massive undertaking (1879) resulted in a formal calculus of propositions, but his symbolism is so daunting that it had little influence excepting on one person: Bertrand Russell. First as the student of Alfred North Whitehead he studied Frege's work and suggested a (famous and notorious) emendation with respect to it (1904) around the problem of an antinomy that he discovered in Frege's treatment ( cf Russell's paradox ). Russell's work led to a collatoration with Whitehead that, in the year 1912, produced the first volume of Principia Mathematica (PM). It is here that what we consider "modern" propositional logic first appeared. In particular, PM introduces NOT and OR and the assertion symbol ⊦ as primitives. In terms of these notions they define IMPLICATION → ( def. *1.01: ~p ∨ q ), then AND (def. *3.01: ~(~p ∨ ~q) ), then EQUIVALENCE p ←→ q (*4.01: (p → q) & ( q → p ) ).
 Henry M. Sheffer (1921) and Jean Nicod demonstrate that only one connective, the "stroke"  is sufficient to express all propositional formulas.
 Emil Post (1921) develops the truthtable method of analysis in his "Introduction to a general theory of elementary propositions". He notes Nicod's stroke  .
 Whitehead and Russell add an introduction to their 1927 republication of PM adding, in part, a favorable treatment of the "stroke".
Computation and switching logic:
 William Eccles and F. W. Jordan (1919) describe a "trigger relay" made from a vacuum tube.
 George Stibitz (1937) invents the binary adder using mechanical relays. He builds this on his kitchen table.
 Example: Given binary bits a_{i} and b_{i} and carryin ( c_in_{i}), their summation Σ_{i} and carryout (c_out_{i}) are:
 ( ( a_{i} XOR b_{i} ) XOR c_in_{i} )= Σ_{i}
 ( a_{i} & b_{i} ) ∨ c_in_{i} ) = c_out_{i};
 Alan Turing builds a multiplier using relays (1937–1938). He has to handwind his own relay coils to do this.
 Textbooks about "switching circuits" appear in early 1950s.
 Willard Quine 1952 and 1955, E. W. Veitch 1952, and M. Karnaugh (1953) develop mapmethods for simplifying propositional functions.
 George H. Mealy (1955) and Edward F. Moore (1956) address the theory of sequential (i.e. switchingcircuit) "machines".
 E. J. McCluskey and H. Shorr develop a method for simplifying propositional (switching) circuits (1962).
Footnotes
 ^ Hamilton 1978:1
 ^ PM^{[clarification needed]} p. 91 eschews "the" because they require a clearcut "object of sensation"; they stipulate the use of "this"
 ^ (italics added) Reichenbach^{[clarification needed]} p.80.
 ^ Tarski p.5468. Suppes calls IDENTITY a "further rule of inference" and has a brief development around it; Robbin, Bender and Williamson, and Goodstein introduce the sign and its usage without comment or explanation. Hamilton p. 37 employs two signs ≠ and = with respect to the valuation of a formula in a formal calculus. Kleene p. 70 and Hamilton p. 52 place it in the predicate calculus, in particular with regards to the arithmetic of natural numbers.
 ^ Empiricits eschew the notion of a priori (builtin, bornwith) knowledge. "Radical reductionists" such as John Locke and David Hume "held that every idea must either originate directly in sense experience or else be compounded of ideas thus originating"; quoted from Quine reprinted in 1996 The Emergence of Logical Empriricism, Garland Publishing Inc. http://www.marxists.org/reference/subject/philosophy/works/us/quine.htm
 ^ Neural net modelling offers a good mathematical model for a comparator as follows: Given a signal S and a threshold "thr", subtract "thr" from S and substitute this difference d to a sigmoid function: For large "gains" k, e.g. k=100, 1/( 1 + e^{−k*d} ) = 1/( 1 + e^{−k*(Sthr)} ) = { ≃0, ≃1 }.^{[clarification needed]} For example, if "The door is DOWN" means "The door is less than 50% of the way up", then a threshold thr=0.5 corresponding to 0.5*5.0 = +2.50 volts could be applied to a "linear" measuringdevice with an output of 0 volts when fully closed and +5.0 volts when fully open.
 ^ In actuality the digital 1 and 0 are defined over nonoverlapping ranges e.g. { "1" = +5/+0.2/−1.0 volts, 0 = +0.5/−0.2 volts }^{[clarification needed]}. When a value falls outside the defined range(s) the value becomes "u"  unknown; e.g. +2.3 would be "u".
 ^ While the notion of logical product is not so peculiar (e.g. 0*0=0, 0*1=0, 1*0=0, 1*1=1), the notion of (1+1=1 is peculiar; in fact (a "+" b) = (a + (b  a*b)) where "+" is the "logical sum" but + and  are the true arithmetic counterparts. Occasionally all four notions do appear in a formula: A AND B = 1/2*( A plus B minus ( A XOR B ) ] (cf p. 146 in John Wakerly 1978, Error Detecting Codes, SelfChecking Circuits and Applications, NorthHolland, New York, ISBN 0444002596 pbk.)
 ^ A careful look at its Karnaugh map shows that IF...THEN...ELSE can also be expressed, in a rather roundabout way, in terms of two exclusiveORs: ( (b AND (c XOR a)) OR (a AND (c XOR b)) ) = d.
 ^ Robbin p. 3.
 ^ Rosenbloom p. 30 and p. 54ff discusses this problem of implication at some length. Most philosophers and mathematicians just accept the material definition as given above. But some do not, including the intuitionists; they consider it a form of the law of excluded middle misapplied.
 ^ Indeed, exhaustive selection between alternatives  mutual exclusion  is required by the definition that Kleene gives the CASE operator (Kleene 1952229)
 ^ The use of quote marks around the expressions is not accidental. Tarski comments on the use of quotes in his "18. Identity of things and identity of their designations; use of quotation marks" p. 58ff.
 ^ Hamilton p. 37. Bender and Williamson p. 29 state "In what follows, we'll replace "equals" with the symbol " ⇔ " (equivalence) which is usually used in logic. We use the more familiar " = " for assigning meaning and values."
 ^ Reichenbach p. 2022 and follows the conventions of PM. The symbol =_{Df} is in the metalanguage and is not a formal symbol with the following meaning: "by symbol ' s ' is to have the same meaning as the formula '(c & d)' ".
 ^ Rosenbloom 1950:32. Kleene 1952:7374 ranks all 11 symbols.
 ^ cf Minsky 1967:75, section 4.2.3 "The method of parenthesis counting". Minsky presents a state machine that will do the job, and by use of induction (recursive definition) Minsky proves the "method" and presents a theorem as the result. A fully generalized "parenthesis grammar" requires an infinite state machine (e.g. a Turing machine) to do the counting.
 ^ Robbin p. 7
 ^ cf Reichenbach p. 68 for a more involved discussion: "If the inference is valid and the premises are true, the inference is called conclusive.
 ^ As well as the first three, Hamilton pp.1922 discusses logics built from only  (NAND), and ↓ (NOR).
 ^ Wickes 1967:36ff. Wickes offers a good example of 8 of the 2 x 4 (3variable maps) and 16 of the 4 x 4 (4variable) maps. As an arbitrary 3variable map could represent any one of 2^{8}=256 2x4 maps, and an arbitrary 4variable map could represent any one of 2^{16} = 65,536 different formulaevaluations, writing down every one is infeasible.
 ^ This definition is given by Stephen Kleene. Both Kurt Gödel and Kleene believed that the classical paradoxes are uniformly examples of this sort of definition. But Kleene went on to assert that the problem has not been solved satisfactorily and impredicative definitions can be found in analysis. He gives as example the definition of the least upper bound (l.u.b) u of M. Given a Dedekind cut of the number line C and the two parts into which the number line is cut, i.e. M and (C  M), l.u.b. = u is defined in terms of the notion M, whereas M is defined in terms of C. Thus the definition of u, an element of C, is defined in terms of the totality C and this makes its definition impredicative. Kleene asserts that attempts to argue this away can be used to uphold the impredicative definitions in the paradoxes.(Kleene 1952:43).
 ^ McCluskey comments that "it could be argued that the analysis is still incomplete because the word statement "The outputs are equal to the previous values of the inputs" has not been obtained"; he goes on to dismiss such worries because "English is not a formal language in a mathematical sense, [and] it is not really possible to have a formal procedure for obtaining word statements" (p. 185).
 ^ More precisely, given enough "loop gain", either oscillation or memory will occur (cf McCluskey p. 1912). In abstract (idealized) mathematical systems adequate loop gain is not a problem.
 ^ The notion of delay and the principle of local causation as caused ultimately by the speed of light appears in Robin Gandy (1980), "Church's thesis and Principles for Mechanisms", in J. Barwise, H. J. Keisler and K. Kunen, eds., The Kleene Symposium, NorthHolland Publishing Company (1980) 123148. Gandy considered this to be the most important of his principles: "Contemporary physics rejects the possibility of instantaneous action at a distance" (p. 135). Gandy was Alan Turing's student and close friend.
 ^ McKlusky p. 1945 discusses "breaking the loop" and inserts "amplifiers" to do this; Wickes (p. 118121) discuss inserting delays. McCluskey p. 195ff discusses the problem of "races" caused by delays.
References
 Bender, Edward A. and Williamson, S. Gill, 2005, A Short Course in Discrete Mathematics, Dover Publications, Mineola NY, ISBN 0486439461. This text is used in a "lower division twoquarter [computer science] course" at UC San Diego.
 Enderton, H. B., 2002, A Mathematical Introduction to Logic. Harcourt/Academic Press. ISBN 0122384520
 Goodstein, R. L., (Pergamon Press 1963), 1966, (Dover edition 2007), Boolean Algebra, Dover Publications, Inc. Minola, New York, ISBN 0486458946. Emphasis on the notion of "algebra of classes" with settheoretic symbols such as ∩, ∪, ' (NOT), ⊂ (IMPLIES). Later Goldstein replaces these with &, ∨, ￢, → (respectively) in his treatment of "Sentence Logic" pp. 76–93.
 Ivor GrattanGuinness and Gérard Bornet 1997, George Boole: Selected Manuscripts on Logic and its Philosophy, Birkhäuser Verlag, Basil, ISBN 9780817654566 (Boston).
 A. G. Hamilton 1978, Logic for Mathematicians, Cambridge University Press, Cambridge UK, ISBN 0521218381.
 E. J. McCluskey 1965, Introduction to the Theory of Switching Circuits, McGrawHill Book Company, New York. No ISBN. Library of Congress Catalog Card Number 6517394. McCluskey was a student of Willard Quine and developed some notable theorems with Quine and on his own. For those interested in the history, the book contains a wealth of references.
 Marvin L. Minsky 1967, Computation: Finite and Infinite Machines, PrenticeHall, Inc, Englewood Cliffs, N.J.. No ISBN. Library of Congress Catalog Card Number 6712342. Useful especially for computability, plus good sources.
 Paul C. Rosenbloom 1950, Dover edition 2005, The Elements of Mathematical Logic, Dover Publications, Inc., Mineola, New York, ISBN 0486446174.
 Joel W. Robbin 1969, 1997, Mathematical Logic: A First Course, Dover Publications, Inc., Mineola, New York, ISBN 048645018X (pbk.).
 Patrick Suppes 1957 (1999 Dover edition), Introduction to Logic, Dover Publications, Inc., Mineola, New York. ISBN 0486406873 (pbk.). This book is in print and readily available.
 On his page 204 in a footnote he references his set of axioms to E. V. Huntington, "Sets of Independent Postulates for the Algebra of Logic", Transactions of the American Mathematical Society, Vol. 5 91904) pp. 288309.
 Alfred Tarski 1941 (1995 Dover edition), Introduction to Logic and to the Methodology of Deductive Sciences, Dover Publications, Inc., Mineola, New York. ISBN 048628462X (pbk.). This book is in print and readily available.
 Jean van Heijenoort 1967, 3rd printing with emendations 1976, From Frege to Gödel: A Source Book in Mathematical Logic, 18791931, Harvard University Press, Cambridge, Massachusetts. ISBN 0674324498 (pbk.) Translation/reprints of Frege (1879), Russell's letter to Frege (1902) and Frege's letter to Russell (1902), Richard's paradox (1905), Post (1921) can be found here.
 Alfred North Whitehead and Bertrand Russell 1927 2nd edition, paperback edition to *53 1962, Principia Mathematica, Cambridge University Press, no ISBN. In the years between the first edition of 1912 and the 2nd edition of 1927, H. M. Sheffer 1921 and M. Jean Nicod (no year cited) brought to Russell's and Whitehead's attention that what they considered their primitive propositions (connectives) could be reduced to a single , nowadays known as the "stroke" or NAND (NOTAND, NEITHER ... NOR...). RussellWhitehead discuss this in their "Introduction to the Second Edition" and makes the definitions as discussed above.
 William E. Wickes 1968, Logic Design with Integrated Circuits, John Wiley & Sons, Inc., New York. No ISBN. Library of Congress Catalog Card Number: 6821185. Tight presentation of engineering's analysis and synthesis methods, references McCluskey 1965. Unlike Suppes, Wickes' presentation of "Boolean algebra" starts with a set of postulates of a truthtable nature and then derives the customary theorems of them (p. 18ff).