Definitions

# Logical disjunction

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.

## 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)

## Properties

The following properties apply to disjunction:

• associativity: $a lor \left(b lor c\right) equiv \left(a lor b\right) lor c$
• commutativity: $a lor b equiv b lor a$
• distributivity: $\left(a lor \left(b land c\right)\right) equiv \left(\left(a lor b\right) land \left(a lor c\right)\right)$

$\left(a land \left(b lor c\right)\right) equiv \left(\left(a land b\right) lor \left(a land c\right)\right)$
$\left(a lor \left(b equiv c\right)\right) equiv \left(\left(a lor b\right) equiv \left(a lor c\right)\right)$

• idempotency: $a lor a equiv a$
• monotonicity: $\left(a rightarrow b\right) rightarrow \left(\left(c lor a\right) rightarrow \left(c lor b\right)\right)$

$\left(a rightarrow b\right) rightarrow \left(\left(a lor c\right) rightarrow \left(b lor c\right)\right)$

• 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 disjunction.
• 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 disjunction.

## 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:

• 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.

### 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

• 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.