Logical connective

In logic, a logical connective (also called a logical operator) is a symbol or word used to connect two or more sentences (of either a formal or a natural language) in a grammatically valid way, such that the compound sentence produced has a truth value dependent on the respective truth values of the original sentences.

Each logical connective can be expressed as a function, called a truth function. For this reason, logical connectives are sometimes called truth-functional connectives. The most common logical connectives are binary connectives (also called dyadic connectives) which join two sentences whose truth values can be thought of as the function's operands. Also commonly, negation is considered to be a unary connective.

Logical connectives along with quantifiers are the two main types of logical constants used in formal systems such as propositional logic and predicate logic.

Natural language
In the grammar of natural languages two sentences may be joined by a grammatical conjunction to form a grammatically compound sentence. Some but not all such grammatical conjunctions are truth functions. For example, consider the following sentences:


 * A: Jack went up the hill.
 * B: Jill went up the hill.
 * C: Jack went up the hill and Jill went up the hill.
 * D: Jack went up the hill so Jill went up the hill.

The words and and so are grammatical conjunctions joining the sentences (A) and (B) to form the compound sentences (C) and (D). The and in (C) is a logical connective, since the truth of (C) is completely determined by (A) and (B): it would make no sense to affirm (A) and (B) but deny (C). However so in (D) is not a logical connective, since it would be quite reasonable to affirm (A) and (B) but deny (D): perhaps, after all, Jill went up the hill to fetch a pail of water, not because Jack had gone up the Hill at all.

Various English words and word pairs express truth functions, and some of them are synonymous. Examples (with the name of the relationship in parentheses) are:


 * "and" (conjunction)
 * "or" (disjunction)
 * "either...or" (exclusive disjunction)
 * "implies" (implication)
 * "if...then" (implication)
 * "if and only if" (equivalence)
 * "only if" (implication)
 * "just in case" (equivalence)
 * "but" (conjunction)
 * "however" (conjunction)
 * "not both" (NAND)
 * "neither...nor" (NOR)

The word "not" (negation) and the phrases "it is false that" (negation) and "it is not the case that" (negation) also express a logical connective – even though they are applied to a single statement, and do not connect two statements.

Formal languages
In formal languages, truth functions are represented by unambiguous symbols; these can be exactly defined by means of truth tables. There are 16 binary truth tables, and so 16 different logical connectives which connect exactly two statements, that can be defined. Not all of them are in common use. These symbols are called "truth-functional connectives", "logical connectives", "logical operators" or "propositional operators". See well-formed formula for the rules which allow new well-formed formulas to be constructed by joining other well-formed formulas using truth-functional connectives.

Venn diagrams illustrate the logical connective limitation of all quantifiers to a fixed domain of discourse in a formal language.

Logical connectives can be used to link more than two statements. A more technical definition is that an "n-ary logical connective" is a function which assigns truth values "true" or "false" to n-tuples of truth values.

List of common logical connectives
Commonly used logical connectives include:
 * Negation (not) (¬ or ~)
 * Conjunction (and) ($$\wedge$$, &, or · )
 * Disjunction (or) (∨)
 * Material implication (if...then) ($$\rightarrow$$, $$\Rightarrow$$ or $$\supset$$)
 * Biconditional (if and only if) (iff) (xnor) (bi-implication) ($$\leftrightarrow$$, $$\equiv$$, or $$=$$)

For example, the meaning of the statements it is raining and I am indoors is transformed when the two are combined with logical connectives:


 * It is raining and  I am indoors (P $$\wedge$$ Q)
 * If it is raining, then I am indoors (P $$\rightarrow$$ Q)
 * If I am indoors, then it is raining (Q $$\rightarrow$$ P)
 * I am indoors if and only if it is raining (P $$\leftrightarrow$$ Q)
 * It is not raining (P)

For statement P = It is raining and Q = I am indoors.

It is also common to consider the always true formula and the always false formula to be connective:
 * True formula (⊤, 1 or T)
 * False formula (⊥, 0, or F)

History of notations

 * Negation: the symbol ¬ appeared in Heyting in 1929 . (compare to Frege's symbol [[Image:Begriffsschrift connective1.svg|50px]] in his Begriffsschrift); the symbol ~ appeared in Russell in 1908 ; an alternative notation is to add an horizontal line on top of the formula, as in $$\overline{P}$$; another alternative notation is to use a prime symbol as in P'.
 * Conjunction: the symbol ∧ appeared in Heyting in 1929 (compare to Peano's use of the set-theoretic notation of intersection ∩ ); & appeared at least in Schönfinkel in 1924 ; . comes from Boole's interpretation of logic as an elementary algebra.
 * Disjunction: the symbol ∨ appeared in Russell in 1908 (compare to Peano's use of the set-theoretic notation of union ∪); the symbol + is also used, in spite of the ambiguity coming from the fact that the + of ordinary elementary algebra is an exclusive or when interpreted logically in a two-element ring; punctually in the history a + together with a dot in the lower right corner has been used by Peirce ,
 * Implication: the symbol → can be seen in Hilbert in 1917 ; ⊃ was used by Russell in 1908 (compare to Peano's inverted C notation); $$\Rightarrow$$ was used in Vax.
 * Biconditional: the symbol ≡ was used at least by Russell in 1908 ; ↔ was used at least by Tarski in 1940 ; ⇔ was used in Vax; other symbols appeared punctually in the history such as ⊃⊂ in Gentzen, ~ in Schönfinkel or ⊂⊃ in Chazal.
 * True: the symbol 1 comes from Boole's interpretation of logic as an elementary algebra over the two-element ring; other notations include $$\bigwedge$$ to be found in Peano.
 * False: the symbol 0 comes also from Boole's interpretation of logic as a ring; other notations include $$\bigvee$$ to be found in Peano.

Some authors used letters for connectives at some time of the history: u. for conjunction (German's "und" for "and") and o. for disjunction (German's "oder" for "or") in earlier works by Hilbert (1904); N for negation, K for conjunction, A for disjunction, C for implication, E for biconditional in Łukasiewicz (1929).

Table of binary logical connectives
There are sixteen Boolean functions associating the inputs P and Q with four-digit binary outputs.

Functional completeness
Not all of the above-mentioned operators are necessary for a functionally complete logical calculus. Certain compound statements are logically equivalent. For example, ¬P ∨ Q is logically equivalent to P → Q. The conditional operator "→" is therefore not necessary if "¬" (not) and "∨" (or) are already in use.

A minimal set of operators that can express every statement expressible in the propositional calculus is called a minimal functionally complete set. A minimally complete set of operators is achieved by NAND alone {↑} and NOR alone {↓}.

The following are the minimal functionally complete sets of operators whose arities do not exceed 2:


 * One element: {↑}, {↓}.
 * Two elements: {$$\vee$$, ¬}, {$$\wedge$$, ¬}, {→, ¬}, {←, ¬}, {→, $$\bot$$}, {←, $$\bot$$}, {→, $$\not\leftrightarrow$$}, {←, $$\not\leftrightarrow$$}, {→, $$\not\to$$}, {→, $$\not\leftarrow$$}, {←, $$\not\to$$}, {←, $$\not\leftarrow$$}, {$$\not\to$$, ¬}, {$$\not\leftarrow$$, ¬}, {$$\not\to$$, $$\top$$}, {$$\not\leftarrow$$, $$\top$$}, {$$\not\to$$, $$\leftrightarrow$$}, {$$\not\leftarrow$$, $$\leftrightarrow$$}.
 * Three elements: {$$\lor$$, $$\leftrightarrow$$, $$\bot$$}, {$$\lor$$, $$\leftrightarrow$$, $$\not\leftrightarrow$$}, {$$\lor$$, $$\not\leftrightarrow$$, $$\top$$}, {$$\land$$, $$\leftrightarrow$$, $$\bot$$}, {$$\land$$, $$\leftrightarrow$$, $$\not\leftrightarrow$$}, {$$\land$$, $$\not\leftrightarrow$$, $$\top$$}.

Properties
The logical connectives each possess different set of properties which may be expressed in the theorems containing the connective. Some of those properties that a logical connective may have are:


 * Associativity: Within an expression containing two or more of the same associative connectives in a row, the order of the operations does not matter as long as the sequence of the operands is not changed.
 * Commutativity: The operands of the connective may be swapped without affecting the truth-value of the expression.
 * Distributivity: A connective denoted by · distributes over another connective denoted by +, if a · (b + c) = (a · b) + (a · c) for all operands a, b, c.
 * Idempotence: Whenever the operands of the operation are the same, the connective gives the operand as the result.
 * Absorption: A pair of connectives $$\land$$, $$\lor$$ satisfies the absorption law if $$a\land(a\lor b)=a$$ for all operands a, b.

A set of operators is functionally complete if and only if for each of the following five properties it contains at least one member lacking it:
 * monotonic: If f(a1, ..., an) ≤ f(b1, ..., bn) for all a1, ..., an, b1, ..., bn ∈ {0,1} such that a1 ≤ b1, a2 ≤ b2, ..., an ≤ bn. E.g., $$\vee$$, $$\wedge$$, $$\top$$, $$\bot$$.
 * affine: Each variable always makes a difference in the truth-value of the operation or it never makes a difference. E.g., $$\neg$$, $$\leftrightarrow$$, $$\not\leftrightarrow$$, $$\top$$, $$\bot$$.
 * self dual: To read the truth-value assignments for the operation from top to bottom on its truth table is the same as taking the complement of reading it from bottom to top; in other words, f(¬a1, ..., ¬an) = ¬f(a1, ..., an). E.g., $$\neg$$.
 * truth-preserving: The interpretation under which all variables are assigned a truth value of 'true' produces a truth value of 'true' as a result of these operations. E.g., $$\vee$$, $$\wedge$$, $$\top$$, $$\rightarrow$$, $$\leftrightarrow$$, ⊂. (see validity)
 * falsehood-preserving: The interpretation under which all variables are assigned a truth value of 'false' produces a truth value of 'false' as a result of these operations. E.g., $$\vee$$, $$\wedge$$, $$\not\leftrightarrow$$, $$\bot$$, ⊄, ⊅. (see validity)

Arity
In two-valued logic there are 2 nullary operators (constants), 4 unary operators, 16 binary operators, 256 ternary operators, and $$2^{2^n}$$ n-ary operators. In three-valued logic there are 3 nullary operators (constants), 27 unary operators, 19683 binary operators, 7625597484987 ternary operators, and $$3^{3^n}$$ n-ary operators. In k-valued logic, there are k nullary operators, $$k^k$$ unary operators, $$k^{k^2}$$ binary operators, $$k^{k^3}$$ ternary operators, and $$k^{k^n}$$ n-ary operators. An n-ary operator in k-valued logic is a function from $$\mathbb{Z}_k^n \to \mathbb{Z}_k$$. Therefore the number of such operators is $$|\mathbb{Z}_k|^{|\mathbb{Z}_k^n|} = k^{k^n}$$, which is how the above numbers were derived.

However, some of the operators of a particular arity are actually degenerate forms that perform a lower-arity operation on some of the inputs and ignores the rest of the inputs. Out of the 256 ternary boolean operators cited above, $$\binom{3}{2}\cdot 16 - \binom{3}{1}\cdot 4 + \binom{3}{0}\cdot 2$$ of them are such degenerate forms of binary or lower-arity operators, using the inclusion-exclusion principle. The ternary operator $$f(x,y,z)=\lnot x$$ is one such operator which is actually a unary operator applied to one input, and ignoring the other two inputs.

"Not" is a unary operator, it takes a single term (¬P). The rest are binary operators, taking two terms to make a compound statement (P $$\wedge$$ Q, P $$\vee$$ Q, P → Q, P ↔ Q).

The set of logical operators $$\Omega\!$$ may be partitioned into disjoint subsets as follows:


 * $$\Omega = \Omega_0 \cup \Omega_1 \cup \ldots \cup \Omega_j \cup \ldots \cup \Omega_m \,.$$

In this partition, $$\Omega_j\!$$ is the set of operator symbols of arity $$j\!$$.

In the more familiar propositional calculi, $$\Omega\!$$ is typically partitioned as follows:


 * nullary operators: $$\Omega_0 = \{\bot, \top \} \,$$


 * unary operators: $$\Omega_1 = \{ \lnot \} \,$$


 * binary operators: $$\Omega_2 \subseteq \{ \land, \lor, \rightarrow, \leftrightarrow \} \,$$

Order of precedence
As a way of reducing the number of necessary parentheses, one may introduce precedence rules: ¬ has higher precedence than $$\wedge$$, $$\wedge$$ higher than $$\vee$$, and $$\vee$$ higher than →. So for example, P $$\vee$$ Q $$\wedge$$ ¬R → S is short for (P $$\vee$$ (Q $$\wedge$$ (¬R))) → S.

Here is a table that shows a commonly used precedence of logical operators.


 * {| class="wikitable" style="text-align:center"

! Operator !! Precedence
 * ¬ || 1
 * $$\wedge$$ || 2
 * $$\vee$$ || 3
 * → || 4
 * || 5
 * }
 * → || 4
 * || 5
 * }
 * || 5
 * }

The order of precedence determines which connective is the "main connective" when interpreting a non-atomic formula.

Principle of compositionality
Instead of using truth tables, logical connective symbols can be interpreted by means of an interpretation function and a functionally complete set of truth-functions (Gamut 1991), as detailed by the principle of compositionality of meaning. Let I be an interpretation function, let Φ, Ψ be any two sentences and let the truth function fnand be defined as:
 * fnand(T,T)=F; fnand(T,F)=fnand(F,T)=fnand(F,F)=T

Then, for convenience, fnot, for fand and so on are defined by means of fnand:


 * fnot(x)=fnand(x,x)
 * for(x,y)= fnand(fnot(x), fnot(y))
 * fand(x,y)=fnot(fnand(x,y))

or, alternatively fnot, for fand and so on are defined directly:


 * fnot(T)=F; fnot(F)=T;
 * for(T,T)=for(T,F)=for(F,T)=T;for(F,F)=F
 * fand(T,T)=T; fand(T,F)=fand(F,T)=fand(F,F)=F

Then

etc.
 * I(~)=I=fnot
 * I(&)=I(^)=I(🇦🇩)=fand
 * I(v)=I= for
 * I(~Φ)=I(Φ)=I(I(Φ))=fnot(I(Φ))
 * I(Φ🇦🇩Ψ) = I(🇦🇩)(I(Φ), I(Ψ))= fand(I(Φ), I(Ψ))

Thus if S is a sentence that is a string of symbols consisting of logical symbols v1...vn representing logical connectives, and non-logical symbols c1...cn, then if and only if I(v1)...I(vn) have been provided interpreting v1 to vn by means of fnand (or any other set of functional complete truth-functions) then the truth-value of I(s) is determined entirely by the truth-values of c1...cn, i.e. of I(c1)...I(cn). In other words, as expected and required, S is true or false only under an interpretation of all its non-logical symbols.

Computer science
Logical operators are implemented as logic gates in digital circuits. Practically all digital circuits (the major exception is DRAM) are built up from NAND, NOR, NOT, and transmission gates. NAND and NOR gates with 3 or more inputs rather than the usual 2 inputs are fairly common, although they are logically equivalent to a cascade of 2-input gates. All other operators are implemented by breaking them down into a logically equivalent combination of 2 or more of the above logic gates.

The "logical equivalence" of "NAND alone", "NOR alone", and "NOT and AND" is similar to Turing equivalence.

Is some new technology (such as reversible computing, clockless logic, or quantum dots computing) "functionally complete", in that it can be used to build computers that can do all the sorts of computation that CMOS-based computers can do? If it can implement the NAND operator, only then is it functionally complete.

That fact that all logical connectives can be expressed with NOR alone is demonstrated by the Apollo guidance computer.