Logical disjunction
"Disjunction" redirects here.
For the logic gate, see OR gate.
For separation of chromosomes, see Meiosis.
For disjunctions in distribution, see Disjunct distribution.
"Logical OR" redirects here.
For the similarly looking doubled vertical bar notation in engineering and network theory, see parallel addition (operator).
OR  

Definition  x
+ y

Truth table  (
0111 )

Logic gate  
Normal forms  
Disjunctive  x
+ y

Conjunctive  x
+ y

Zhegalkin polynomial  x
⊕ y ⊕ x y

Post's lattices  
0preserving  yes 
1preserving  yes 
Monotone  yes 
Affine  no 
In logic and mathematics, or is the truthfunctional operator of (inclusive) disjunction, also known as alternation; the or of a set of operands is true if and only if one or more of its operands is true.
The logical connective that represents this operator is typically written as ∨ or +.
In logic, or by itself means the inclusive or.
This is to be distinguished from an exclusive or, which, unlike the usual or, is false when both of its arguments are true.
An operand of a disjunction is called a disjunct.
The concept of disjunction is also used similarly in other fields:
 In natural language, the coordinating conjunction "or"
 In programming languages, the shortcircuit or control structure
 In set theory, union
 In predicate logic, existential quantification
Notation
Or is usually expressed with an infix operator: in mathematics and logic, ∨; in electronics, +; and in most programming languages, , , or or.
In Jan Łukasiewicz's prefix notation for logic, the operator is A, for Polish alternatywa (English: alternative).
Definition
Logical disjunction is an operation on two logical values, typically the values of two propositions, that has 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 'or's.
A single literal is often considered to be a degenerate disjunction.
The disjunctive identity is false, which is to say that the or of an expression with false has the same value as the original expression.
In keeping with the concept of vacuous truth, when disjunction is defined as an operator or function of arbitrary arity, the empty disjunction (ORing over an empty set of operands) is generally defined as false.
Truth table
Properties
The following properties apply to disjunction:
 Truthpreserving: The interpretation under which all variables are assigned a truth value of 'true', produces a truth value of 'true' as a result of disjunction.
 Falsehoodpreserving: 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
All of the following are disjunctions:
The corresponding operation in set theory is the settheoretic 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 bit field to 1, by oring 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 operator (), and logical disjunction with the double pipe () operator.
Logical disjunction is usually shortcircuited; 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.
In a parallel (concurrent) language, it is possible to shortcircuit both sides: they are evaluated in parallel, and if one terminates with value true, the other is interrupted.
This operator is thus called the parallel or.
Although the type of a logical disjunction expression is boolean in most languages (and thus can only have the value true or false), in some languages (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 membership of an element of a union set in set theory is defined in terms of a logical disjunction: x ∈ A ∪ B if and only if (x ∈ A) ∨ (x ∈ B).
Because of this, logical disjunction satisfies many of the same identities as settheoretic union, such as associativity, commutativity, distributivity, and de Morgan's laws, identifying logical conjunction with set intersection, logical negation with set complement.
Natural language
As with other notions formalized in mathematical logic, the meaning of the naturallanguage coordinating conjunction or is closely related to—but different from—the logical or.
For example, "Please ring me or send an email" likely means "do one or the other, but not both".
On the other hand, "Her grades are so good that either she's very bright or she studies hard" does not exclude the possibility of both.
In other words, in ordinary language "or" (even if used with "either") can mean either the inclusive "or", or the exclusive "or".
See also
Credits to the contents of this page go to the authors of the corresponding Wikipedia page: en.wikipedia.org/wiki/Logical disjunction.