Logical disjunction
Venn diagram of the logical disjunction of A and B.
~A \or B
Venn diagram of the logical disjunction of A, B, and C.
~A \or B \or C

In logic and mathematics, a two-place logical connective or, is a logical disjunction, also known as inclusive disjunction or alternation, that results in true whenever one or more of its operands are true. E.g. in this context, "A or B" is true if A is true, or if B is true, or if both A and B are true. In grammar, or is a coordinating conjunction.

In ordinary language, i.e. outside of contexts such as formal logic, mathematics and programming, "or" sometimes has the meaning of exclusive disjunction. E.g. "Please ring me or send an email" means "do one or the other, but not both". On the other hand, "Her grades are so good that she's either very bright or studies hard" allows for the possibility that the person is both bright and works hard. In other words, in ordinary language 'or' can mean inclusive or exclusive or. Usually it is clear from the context which is the intended meaning.

Contents

Notation

Or is usually expressed with the prefix operator A, or with an infix operator. In mathematics and logic, the infix operator is usually ; in electronics, +; and in programming languages, | or or. Some programming languages have a related control structure, the short-circuit or, written ||, or else, etc.

Definition

Logical disjunction is an operation on two logical values, typically the values of two propositions, that produces a value of false if and only if both of its operands are false. More generally a disjunction is a logical formula that can have one or more literals separated only by ORs. A single literal is often considered to be a degenerate disjunction.

Truth table

Disjunctions of the arguments on the left
The false bits form a Sierpinski triangle

The truth table of ~A \or B:

INPUT OUTPUT
A B A OR B
0 0 0
0 1 1
1 0 1
1 1 1

Properties

commutativity: yes

A \or B     \Leftrightarrow     B \or A
Venn0111.svg     \Leftrightarrow     Venn0111.svg

associativity: yes

~A ~~~\or~~~ (B \or C)     \Leftrightarrow     (A \or B) ~~~\or~~~ ~C
Venn 0101 0101.svg ~~~\or~~~ Venn 0011 1111.svg     \Leftrightarrow     Venn 0111 1111.svg     \Leftrightarrow     Venn 0111 0111.svg ~~~\or~~~ Venn 0000 1111.svg

distributivity: with various operations, especially with and

~A \or (B \and C)     \Leftrightarrow     (A \or B) \and (A \or C)
Venn 0101 0101.svg \or Venn 0000 0011.svg     \Leftrightarrow     Venn 0101 0111.svg     \Leftrightarrow     Venn 0111 0111.svg \and Venn 0101 1111.svg

idempotency: yes

~A~ ~\or~ ~A~     \Leftrightarrow     A~
Venn01.svg ~\or~ Venn01.svg     \Leftrightarrow     Venn01.svg

monotonicity: yes

A \rightarrow B     \Rightarrow     (A \or C) \rightarrow (B \or C)
Venn 1011 1011.svg     \Rightarrow     Venn 1011 1111.svg     \Leftrightarrow     Venn 0101 1111.svg \rightarrow Venn 0011 1111.svg

truth-preserving: yes
When all inputs are true, the output is true.

A \and B     \Rightarrow     A \or B
Venn0001.svg     \Rightarrow     Venn0111.svg
(to be tested)

falsehood-preserving: yes
When all inputs are false, the output is false.

A \or B     \Rightarrow     A \or B
Venn0111.svg     \Rightarrow     Venn0111.svg
(to be tested)

Walsh spectrum: (3,-1,-1,-1)

Nonlinearity: 1 (the function is bent)

If using binary values for true (1) and false (0), then logical disjunction works almost like binary addition. The only difference is that 1\or 1=1, while 1 + 1 = 10.

Symbol

The mathematical symbol for logical disjunction varies in the literature. In addition to the word "or", and the formula "Apq", the symbol "\or", deriving from the Latin word vel for "or", is commonly used for disjunction. For example: "A \or B " is read as "A or B ". Such a disjunction is false if both A and B are false. In all other cases it is true.

All of the following are disjunctions:

A \or B
\neg A \or B
A \or \neg B \or \neg C \or D \or \neg E.

The corresponding operation in set theory is the set-theoretic union.

Applications in computer science

Operators corresponding to logical disjunction exist in most programming languages.

Bitwise operation

Disjunction is often used for bitwise operations. Examples:

  • 0 or 0 = 0
  • 0 or 1 = 1
  • 1 or 0 = 1
  • 1 or 1 = 1
  • 1010 or 1100 = 1110

The or operator can be used to set bits in a bitfield to 1, by or-ing the field with a constant field with the relevant bits set to 1. For example, x = x | 0b00000001 will force the final bit to 1 while leaving other bits unchanged.

Logical operation

Many languages distinguish between bitwise and logical disjunction by providing two distinct operators; in languages following C, bitwise disjunction is performed with the single pipe (|) and logical disjunction with the double pipe (||) operators.

Logical disjunction is usually short-circuited; that is, if the first (left) operand evaluates to true then the second (right) operand is not evaluated. The logical disjunction operator thus usually constitutes a sequence point.

Although in most languages the type of a logical disjunction expression is boolean and thus can only have the value true or false, in some (such as Python and JavaScript) the logical disjunction operator returns one of its operands: the first operand if it evaluates to a true value, and the second operand otherwise.

Constructive disjunction

The Curry-Howard correspondence relates a constructivist form of disjunction to tagged union types.

Union

The union used in set theory is defined in terms of a logical disjunction: xAB if and only if (xA) ∨ (xB). Because of this, logical disjunction satisfies many of the same identities as set-theoretic union, such as associativity, commutativity, distributivity, and de Morgan's laws.

Notes

  • Boole, closely following analogy with ordinary mathematics, premised, as a necessary condition to the definition of "x + y", that x and y were mutually exclusive. Jevons, and practically all mathematical logicians after him, advocated, on various grounds, the definition of "logical addition" in a form which does not necessitate mutual exclusiveness.

See also

External links


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Logical conjunction — ∧ redirects here. For exterior product, see exterior algebra. Venn diagram of …   Wikipedia

  • Logical connective — This article is about connectives in classical logic. For connectors in natural languages, see discourse connective. For connectives and operators in other logics, see logical constant. For other logical symbols, see table of logic symbols. In… …   Wikipedia

  • Logical equality — For the corresponding concept in combinational logic, see XNOR gate. XNOR Logic Gate Symbol Logical equality is a logical operator that corresponds to equality in Boolean algebra and to the logical biconditional in propositional calculus. It… …   Wikipedia

  • Logical implication — In logic and mathematics, logical implication is a logical relation that holds between a set T of formulae and a formula B when every model (or interpretation or valuation) of T is also a model of B . In symbols,# T models B, # T Rightarrow B # T …   Wikipedia

  • Logical symbols — Reading logical symbolism frightens many people more than it should. The very term symbolic logic sounds terrifying, and the presence of even a small amount of symbolism may deter many readers from otherwise perfectly intelligible texts. The… …   Philosophy dictionary

  • Disjunction introduction — Rules of inference Propositional calculus Modus ponens (A→B, A ⊢ B) Modus tollens (A→B, ¬B ⊢ ¬A) …   Wikipedia

  • Logical NOR — This article is about NOR in the logical sense. For the electronic gate, see NOR gate. For other uses, see Nor. Venn diagram of In boolean logic, logical nor or joint denial is a truth functional operator which produces a result that is the… …   Wikipedia

  • logical sum — The logical sum of two propositions p, q is their disjunction, p ∨q . The logical sum of two sets is their union …   Philosophy dictionary

  • Conditioned disjunction — In logic, conditioned disjunction (sometimes called conditional disjunction) is a ternary logical connective introduced by Church.[1]. Given operands p, q, and r, which represent truth valued propositions, the meaning of the conditioned… …   Wikipedia

  • Conditional disjunction — In logic, the term conditional disjunction can refer to: conditioned disjunction, a ternary logical connective introduced by Alonzo Church; a rule in classical logic that the material conditional ¬p → q is equivalent to the disjunction p ∨ q, so… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”