
In
logic
Logic is the study of correct reasoning. It includes both formal and informal logic. Formal logic is the study of deductively valid inferences or logical truths. It examines how conclusions follow from premises based on the structure o ...
, disjunction (also known as logical disjunction, logical or, logical addition, or inclusive disjunction) is a
logical connective typically notated as
and read aloud as "or". For instance, the
English language sentence "it is sunny or it is warm" can be represented in logic using the disjunctive formula
, assuming that
abbreviates "it is sunny" and
abbreviates "it is warm".
In
classical logic, disjunction is given a
truth functional semantics according to which a formula
is true unless both
and
are false. Because this semantics allows a disjunctive formula to be true when both of its disjuncts are true, it is an ''inclusive'' interpretation of disjunction, in contrast with
exclusive disjunction. Classical
proof theoretical treatments are often given in terms of rules such as
disjunction introduction and
disjunction elimination. Disjunction has also been given numerous
non-classical treatments, motivated by problems including
Aristotle's sea battle argument,
Heisenberg's
uncertainty principle, as well as the numerous mismatches between classical disjunction and its nearest equivalents in
natural languages.
An
operand of a disjunction is a disjunct.
Inclusive and exclusive disjunction
Because the logical ''or'' means a disjunction formula is true when either one or both of its parts are true, it is referred to as an ''inclusive'' disjunction. This is in contrast with an
exclusive disjunction, which is true when one or the other of the arguments are true, but not both (referred to as ''exclusive or'', or ''XOR'').
When it is necessary to clarify whether inclusive or exclusive ''or'' is intended, English speakers sometimes uses the phrase ''
and/or''. In terms of logic, this phrase is identical to ''or'', but makes the inclusion of both being true explicit.
Notation
In logic and related fields, disjunction is customarily notated with an infix operator
(Unicode ).
Alternative notations include
, used mainly in
electronics
Electronics is a scientific and engineering discipline that studies and applies the principles of physics to design, create, and operate devices that manipulate electrons and other Electric charge, electrically charged particles. It is a subfield ...
, as well as
and
in many
programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s. The English word ''or'' is sometimes used as well, often in capital letters. In
Jan Łukasiewicz's
prefix notation for logic, the operator is
, short for Polish ''alternatywa'' (English: alternative).
In mathematics, the disjunction of an arbitrary number of elements
can be denoted as an
iterated binary operation
In mathematics, an iterated binary operation is an extension of a binary operation on a set ''S'' to a function on finite sequences of elements of ''S'' through repeated application. Common examples include the extension of the addition operation ...
using a larger ⋁ (Unicode ):
Classical disjunction
Semantics
In the
semantics of logic
In logic, the semantics of logic or formal semantics is the study of the meaning and interpretation of formal languages, formal systems, and (idealizations of) natural languages. This field seeks to provide precise mathematical models tha ...
, classical disjunction is a
truth functional
operation which returns the
truth value
In logic and mathematics, a truth value, sometimes called a logical value, is a value indicating the relation of a proposition to truth, which in classical logic has only two possible values ('' true'' or '' false''). Truth values are used in ...
''true'' unless both of its arguments are ''false''. Its semantic entry is standardly given as follows:
::
if
or
or both
This semantics corresponds to the following
truth table
A truth table is a mathematical table used in logic—specifically in connection with Boolean algebra, Boolean functions, and propositional calculus—which sets out the functional values of logical expressions on each of their functional arg ...
:
Defined by other operators
In
classical logic systems where logical disjunction is not a primitive, it can be defined in terms of the primitive ''
and'' (
) and ''
not'' (
) as:
:
.
Alternatively, it may be defined in terms of ''
implies'' (
) and ''not'' as:
:
.
The latter can be checked by the following truth table:
It may also be defined solely in terms of
:
:
.
It can be checked by the following truth table:
Properties
The following properties apply to disjunction:
*
Associativity:
*
Commutativity:
*
Distributivity:
:::
:::
:::
*
Idempotency:
*
Monotonicity:
:::
*''Truth-preserving'': The interpretation under which all variables are assigned a
truth value
In logic and mathematics, a truth value, sometimes called a logical value, is a value indicating the relation of a proposition to truth, which in classical logic has only two possible values ('' true'' or '' false''). Truth values are used in ...
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
In logic and mathematics, a truth value, sometimes called a logical value, is a value indicating the relation of a proposition to truth, which in classical logic has only two possible values ('' true'' or '' false''). Truth values are used in ...
of 'false', produces a truth value of 'false' as a result of disjunction.
Applications in computer science
Operators corresponding to logical disjunction exist in most
programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s.
Bitwise operation
Disjunction is often used for
bitwise operation
In computer programming, a bitwise operation operates on a bit string, a bit array or a binary numeral (considered as a bit string) at the level of its individual bits. It is a fast and simple action, basic to the higher-level arithmetic operatio ...
s. 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
A bit field is a data structure that maps to one or more adjacent bits which have been allocated for specific purposes, so that any single bit or group of bits within the structure can be set or inspected. A bit field is most commonly used to repre ...
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 operator (
,
), and logical disjunction with the double pipe (
, ,
) operator.
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.
In a parallel (concurrent) language, it is possible to short-circuit 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
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
), the logical disjunction operator returns one of its operands: the first operand if it evaluates to a true value, and the second operand otherwise. This allows it to fulfill the role of the
Elvis operator.
Constructive disjunction
The
Curry–Howard correspondence relates a
constructivist form of disjunction to
tagged union types.
Set theory
The
membership of an element of a
union set in
set theory
Set theory is the branch of mathematical logic that studies Set (mathematics), sets, which can be informally described as collections of objects. Although objects of any kind can be collected into a set, set theory – as a branch of mathema ...
is defined in terms of a logical disjunction:
. 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, identifying
logical conjunction
In logic, mathematics and linguistics, ''and'' (\wedge) is the Truth function, truth-functional operator of conjunction or logical conjunction. The logical connective of this operator is typically represented as \wedge or \& or K (prefix) or ...
with
set intersection,
logical negation
In logic, negation, also called the logical not or logical complement, is an operation that takes a proposition P to another proposition "not P", written \neg P, \mathord P, P^\prime or \overline. It is interpreted intuitively as being true ...
with
set complement.
Natural language
Disjunction in
natural languages does not precisely match the interpretation of
in classical logic. Notably, classical disjunction is inclusive while natural language disjunction is often understood exclusively, as the following English example typically would be.
:* Mary is eating an apple or a pear.
This inference has sometimes been understood as an
entailment, for instance by
Alfred Tarski, who suggested that natural language disjunction is
ambiguous between a classical and a nonclassical interpretation. More recent work in
pragmatics
In linguistics and the philosophy of language, pragmatics is the study of how Context (linguistics), context contributes to meaning. The field of study evaluates how human language is utilized in social interactions, as well as the relationship ...
has shown that this inference can be derived as a
conversational implicature on the basis of a
semantic
Semantics is the study of linguistic Meaning (philosophy), meaning. It examines what meaning is, how words get their meaning, and how the meaning of a complex expression depends on its parts. Part of this process involves the distinction betwee ...
denotation which behaves classically. However, disjunctive constructions including
Hungarian ''vagy... vagy'' and
French ''soit... soit'' have been argued to be inherently exclusive, rendering un
grammaticality in contexts where an inclusive reading would otherwise be forced.
Similar deviations from classical logic have been noted in cases such as
free choice disjunction and
simplification of disjunctive antecedents, where certain
modal operators trigger a
conjunction-like interpretation of disjunction. As with exclusivity, these inferences have been analyzed both as implicatures and as entailments arising from a nonclassical interpretation of disjunction.
:* You can have an apple or a pear.
::
You can have an apple and you can have a pear (but you cannot have both)
In many languages, disjunctive expressions play a role in question formation.
:* Is Mary a philosopher or a linguist?
For instance, while the above English example can be interpreted as a
polar question asking whether it's true that Mary is either a philosopher or a linguist, it can also be interpreted as an
alternative question asking which of the two professions is hers. The role of disjunction in these cases has been analyzed using nonclassical logics such as
alternative semantics and
inquisitive semantics, which have also been adopted to explain the free choice and simplification inferences.
In English, as in many other languages, disjunction is expressed by a
coordinating conjunction. Other languages express disjunctive meanings in a variety of ways, though it is unknown whether disjunction itself is a
linguistic universal. In many languages such as
Dyirbal and
Maricopa, disjunction is marked using a verb
suffix. For instance, in the Maricopa example below, disjunction is marked by the suffix ''šaa''.
See also
*
Affirming a disjunct
*
Boolean algebra (logic)
*
Boolean algebra topics
*
Boolean domain
*
Boolean function
*
Boolean-valued function
*
Conjunction/disjunction duality
*
Disjunctive syllogism
*
Fréchet inequalities
*
Free choice inference
*
Hurford disjunction
*
Logical graph
*
Simplification of disjunctive antecedents
Notes
*
George Boole
George Boole ( ; 2 November 1815 – 8 December 1864) was a largely self-taught English mathematician, philosopher and logician, most of whose short career was spent as the first professor of mathematics at Queen's College, Cork in Ireland. H ...
, 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 that does not necessitate mutual exclusiveness.
References
External links
*
*
*Eric W. Weisstein
"Disjunction."From MathWorld—A Wolfram Web Resource
{{Authority control
Disjunction
Semantics
Formal semantics (natural language)