Logical disjunction

OR logic gate.

In logic and mathematics, or, also known as logical disjunction or inclusive disjunction is a logical operator that results in true whenever one or more of its operands are true. In grammar, or is a coordinating conjunction. In ordinary language "or" rather has the meaning of exclusive disjunction.

Contents

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

The truth table of p OR q (also written as pq (logic), p || q (in C-family languages in computer programming), or p + q (electronics)) is as follows:

p q
T T T
T F T
F T T
F F F

Venn diagram

The Venn diagram of "p or q" (red is true)

Venn0111.svg

Properties

The following properties apply to disjunction:

(a \land (b \lor c)) \equiv ((a \land b) \lor (a \land c))
(a \lor (b \equiv c)) \equiv ((a \lor b) \equiv (a \lor c))
(a \rightarrow b) \rightarrow ((a \lor c) \rightarrow (b \lor c))

Symbol

The mathematical symbol for logical disjunction varies in the literature. In addition to the word "or", 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:

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.

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.

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

See also

  • Exclusive disjunction
  • Affirming a disjunct
  • Bitwise OR
  • Boolean algebra (logic)
  • Boolean algebra topics
  • Boolean domain
  • Boolean function
  • Boolean-valued function
  • Disjunctive syllogism
  • Disjunction elimination
  • Disjunction introduction
  • First-order logic

External links