Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Logical conjunction
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Logical connective AND}} {{Distinguish|Caret{{!}}Circumflex Agent (^)|Lambda{{!}}Capital Lambda (Λ)|Turned v{{!}}Turned V (Λ)|Exterior algebra {{!}}Exterior Product (∧)}} {{Infobox logical connective | title = Logical conjunction | other titles = AND | Venn diagram = Venn0001.svg | wikifunction = Z10174 | definition = <math>xy</math> | truth table = <math>(1000)</math> | logic gate = AND_ANSI.svg | DNF = <math>xy</math> | CNF = <math>xy</math> | Zhegalkin = <math>xy</math> | 0-preserving = yes | 1-preserving = yes | monotone = no | affine = no | self-dual = no }} {{Logical connectives sidebar}} [[File:Venn 0000 0001.svg|220px|thumb|[[Venn diagram]] of <math>A \wedge B \land C</math>]] In [[logic]], [[mathematics]] and [[linguistics]], ''and'' (<math>\wedge</math>) is the [[Truth function|truth-functional]] operator of '''conjunction''' or '''logical conjunction'''. The [[logical connective]] of this operator is typically represented as <math>\wedge</math><ref name=":2">{{Cite web|date=2019-08-13|title=2.2: Conjunctions and Disjunctions|url=https://math.libretexts.org/Courses/Monroe_Community_College/MTH_220_Discrete_Math/2%3A_Logic/2.2%3A_Conjunctions_and_Disjunctions|access-date=2020-09-02|website=Mathematics LibreTexts|language=en}}</ref> or <math>\&</math> or <math>K</math> (prefix) or <math>\times</math> or <math>\cdot</math><ref name=":1">{{Cite web|title=Conjunction, Negation, and Disjunction|url=https://philosophy.lander.edu/logic/conjunct.html|access-date=2020-09-02|website=philosophy.lander.edu}}</ref> in which <math>\wedge</math> is the most modern and widely used. The ''and'' of a set of operands is true if and only if ''all'' of its operands are true, i.e., <math>A \land B</math> is true if and only if <math>A</math> is true and <math>B</math> is true. An operand of a conjunction is a '''conjunct'''.<ref name=":21">{{Cite book |last=Beall |first=Jeffrey C. |title=Logic: the basics |date=2010 |publisher=Routledge |isbn=978-0-203-85155-5 |edition=1. publ |location=London |pages=17 |language=en}}</ref> Beyond logic, the term "conjunction" also refers to similar concepts in other fields: * In [[natural language]], the [[denotation]] of expressions such as [[English language|English]] "[[Conjunction (grammar)|and]]"; * In [[programming language]]s, the [[Short-circuit evaluation|short-circuit and]] [[Control flow|control structure]]; * In [[set theory]], [[Intersection (set theory)|intersection]]. * In [[Lattice (order)|lattice theory]], logical conjunction ([[Infimum and supremum|greatest lower bound]]). ==Notation== '''And''' is usually denoted by an infix operator: in mathematics and logic, it is denoted by a "wedge" <math>\wedge</math> (Unicode {{unichar|2227|Logical And}}),<ref name=":2" /> <math>\&</math> or <math>\times</math>; in electronics, <math>\cdot</math>; and in programming languages '''<code>&</code>''', '''<code>&&</code>''', or '''<code>and</code>'''. In [[Jan Łukasiewicz]]'s [[Polish notation#Polish notation for logic|prefix notation for logic]], the operator is <math>K</math>, for Polish ''koniunkcja''.<ref>[[Józef Maria Bocheński]] (1959), ''A Précis of Mathematical Logic'', translated by Otto Bird from the French and German editions, Dordrecht, South Holland: D. Reidel, passim.</ref> In mathematics, the conjunction of an arbitrary number of elements <math>a_1, \ldots, a_n</math> can be denoted as an [[iterated binary operation]] using a "big wedge" ⋀ (Unicode {{unichar|22C0|N-Ary Logical And}}):<ref>{{cite web |last1=Weisstein |first1=Eric W. |title=Conjunction |url=https://mathworld.wolfram.com/Conjunction.html |website=MathWorld--A Wolfram Web Resource |access-date=24 September 2024}}</ref> <math> \bigwedge_{i=1}^{n} a_i = a_1 \wedge a_2 \wedge \ldots a_{n-1} \wedge a_{n} </math> ==Definition== In [[classical logic]], '''logical conjunction''' is an [[logical operation|operation]] on two [[logical value]]s, typically the values of two [[proposition]]s, that produces a value of ''true'' [[if and only if]] (also known as iff) both of its operands are true.<ref name=":1" /><ref name=":2" /> The conjunctive [[identity element|identity]] is true, which is to say that AND-ing an expression with true will never change the value of the expression. In keeping with the concept of [[vacuous truth]], when conjunction is defined as an operator or function of arbitrary [[arity]], the empty conjunction (AND-ing over an empty set of operands) is often defined as having the result true. ===Truth table=== [[File:Variadic logical AND.svg|thumb|Conjunctions of the arguments on the left — The [[truth value|true]] [[bit]]<nowiki>s</nowiki> form a [[Sierpinski triangle]].]] The [[truth table]] of <math>A \land B</math>:<ref name=":2" /><ref name=":1" /> {{2-ary truth table|0|0|0|1|<math>A \land B</math>}} ===Defined by other operators=== In systems where logical conjunction is not a primitive, it may be defined as<ref>{{Cite web |url=http://www.logicmatters.net/resources/pdfs/ProofSystems.pdf |title=Types of proof system |last=Smith |first=Peter |page=4}}</ref> :<math>A \land B = \neg(A \to \neg B) </math> It can be checked by the following truth table (compare the last two columns): {{2-ary truth table |1|0|1|0|<math>\neg B</math> |thick |1|1|1|0|<math>A \rightarrow \neg B</math> | |0|0|0|1|<math>\neg(A \rightarrow \neg B)</math> | |0|0|0|1|<math>A \land B</math> }} or :<math>A \land B = \neg(\neg A \lor \neg B).</math> It can be checked by the following truth table (compare the last two columns): {{2-ary truth table |1|1|0|0|<math>\neg A</math> | |1|0|1|0|<math>\neg B</math> |thick |1|1|1|0|<math>\neg A \or \neg B</math> | |0|0|0|1|<math>\neg(\neg A \or \neg B)</math> | |0|0|0|1|<math>A \land B</math> }} ==Introduction and elimination rules== As a rule of inference, [[conjunction introduction]] is a classically [[Validity (logic)|valid]], simple [[argument form]]. The argument form has two premises, <math>A</math> and <math>B</math>. Intuitively, it permits the inference of their conjunction. :<math>A</math>, :<math>B</math>. :Therefore, ''A'' and ''B''. or in [[logical operator]] notation, where \vdash expresses provability: :<math> \vdash A, </math> :<math> \vdash B </math> :<math> \vdash A \land B </math> Here is an example of an argument that fits the form ''[[conjunction introduction]]'': :Bob likes apples. :Bob likes oranges. :Therefore, Bob likes apples and Bob likes oranges. [[Conjunction elimination]] is another classically [[Validity (logic)|valid]], simple [[argument form]]. Intuitively, it permits the inference from any conjunction of either element of that conjunction. :<math>A</math> and <math>B</math>. :Therefore, <math>A</math>. ...or alternatively, :<math>A</math> and <math>B</math>. :Therefore, <math>B</math>. In [[logical operator]] notation: :<math> \vdash A \land B </math> :<math> \vdash A </math> ...or alternatively, :<math> \vdash A \land B </math> :<math> \vdash B </math> == Negation == === Definition === A conjunction <math>A\land B</math> is proven false by establishing either <math>\neg A</math> or <math>\neg B</math>. In terms of the object language, this reads :<math>\neg A\to\neg(A\land B)</math> This formula can be seen as a special case of :<math>(A\to C) \to ( (A\land B)\to C )</math> when <math>C</math> is a false proposition. === Other proof strategies === If <math>A</math> implies <math>\neg B</math>, then both <math>\neg A</math> as well as <math>A</math> prove the conjunction false: :<math>(A\to\neg{}B)\to\neg(A\land B)</math> In other words, a conjunction can actually be proven false just by knowing about the relation of its conjuncts, and not necessary about their truth values. This formula can be seen as a special case of :<math>(A\to(B\to C))\to ( (A\land B)\to C ) </math> when <math>C</math> is a false proposition. Either of the above are constructively valid proofs by contradiction. ==Properties== '''[[Commutative property|commutativity]]: yes''' {| style="text-align: center; border: 1px solid darkgray;" |- |<math>A \land B</math> | <math>\Leftrightarrow</math> |<math>B \land A</math> |-y |[[File:Venn0001.svg|50px]] | <math>\Leftrightarrow</math> |[[File:Venn0001.svg|50px]] |} '''[[associativity]]: yes<ref name=":13">{{Cite book |last=Howson |first=Colin |title=Logic with trees: an introduction to symbolic logic |date=1997 |publisher=Routledge |isbn=978-0-415-13342-5 |location=London; New York |pages=38}}</ref>''' {| style="text-align: center; border: 1px solid darkgray;" |- |<math>~A</math> |<math>~~~\land~~~</math> |<math>(B \land C)</math> | <math>\Leftrightarrow</math> | | |<math>(A \land B)</math> |<math>~~~\land~~~</math> |<math>~C</math> |- |[[File:Venn 0101 0101.svg|50px]] |<math>~~~\land~~~</math> |[[File:Venn 0000 0011.svg|50px]] | <math>\Leftrightarrow</math> |[[File:Venn 0000 0001.svg|50px]] | <math>\Leftrightarrow</math> |[[File:Venn 0001 0001.svg|50px]] |<math>~~~\land~~~</math> |[[File:Venn 0000 1111.svg|50px]] |} '''[[distributivity]]:''' with various operations, especially with ''[[logical disjunction|or]]'' {| style="text-align: center; border: 1px solid darkgray;" |- |<math>~A</math> |<math>\land</math> |<math>(B \lor C)</math> | <math>\Leftrightarrow</math> | | |<math>(A \land B)</math> |<math>\lor</math> |<math>(A \land C)</math> |- |- |[[File:Venn 0101 0101.svg|50px]] |<math>\land</math> |[[File:Venn 0011 1111.svg|50px]] | <math>\Leftrightarrow</math> |[[File:Venn 0001 0101.svg|50px]] | <math>\Leftrightarrow</math> |[[File:Venn 0001 0001.svg|50px]] |<math>\lor</math> |[[File:Venn 0000 0101.svg|50px]] |} {| class="collapsible collapsed" style="width: 100%; border: 1px solid #aaaaaa;" ! bgcolor="#ccccff"|others |- | with [[exclusive or]]: {| style="text-align: center; border: 1px solid darkgray;" |- |<math>~A</math> |<math>\land</math> |<math>(B \oplus C)</math> | <math>\Leftrightarrow</math> | | |<math>(A \land B)</math> |<math>\oplus</math> |<math>(A \land C)</math> |- |- |[[File:Venn 0101 0101.svg|50px]] |<math>\land</math> |[[File:Venn 0011 1100.svg|50px]] | <math>\Leftrightarrow</math> |[[File:Venn 0001 0100.svg|50px]] | <math>\Leftrightarrow</math> |[[File:Venn 0001 0001.svg|50px]] |<math>\oplus</math> |[[File:Venn 0000 0101.svg|50px]] |} with [[material nonimplication]]: {| style="text-align: center; border: 1px solid darkgray;" |- |<math>~A</math> |<math>\land</math> |<math>(B \nrightarrow C)</math> | <math>\Leftrightarrow</math> | | |<math>(A \land B)</math> |<math>\nrightarrow</math> |<math>(A \land C)</math> |- |- |[[File:Venn 0101 0101.svg|50px]] |<math>\land</math> |[[File:Venn 0011 0000.svg|50px]] | <math>\Leftrightarrow</math> |[[File:Venn 0001 0000.svg|50px]] | <math>\Leftrightarrow</math> |[[File:Venn 0001 0001.svg|50px]] |<math>\nrightarrow</math> |[[File:Venn 0000 0101.svg|50px]] |} with itself: {| style="text-align: center; border: 1px solid darkgray;" |- |<math>~A</math> |<math>\land</math> |<math>(B \land C)</math> | <math>\Leftrightarrow</math> | | |<math>(A \land B)</math> |<math>\land</math> |<math>(A \land C)</math> |- |- |[[File:Venn 0101 0101.svg|50px]] |<math>\land</math> |[[File:Venn 0000 0011.svg|50px]] | <math>\Leftrightarrow</math> |[[File:Venn 0000 0001.svg|50px]] | <math>\Leftrightarrow</math> |[[File:Venn 0001 0001.svg|50px]] |<math>\land</math> |[[File:Venn 0000 0101.svg|50px]] |} |} '''[[idempotency]]: yes'''<br> {| style="text-align: center; border: 1px solid darkgray;" |- |<math>~A~</math> |<math>~\land~</math> |<math>~A~</math> | <math>\Leftrightarrow</math> |<math>A~</math> |- |[[File:Venn01.svg|36px]] |<math>~\land~</math> |[[File:Venn01.svg|36px]] | <math>\Leftrightarrow</math> |[[File:Venn01.svg|36px]] |} '''[[Monotonic function#In Boolean functions|monotonicity]]: yes''' {| style="text-align: center; border: 1px solid darkgray;" |<math>A \rightarrow B</math> | <math>\Rightarrow</math> | | |<math>(A \land C)</math> |<math>\rightarrow</math> |<math>(B \land C)</math> |- ||[[File:Venn 1011 1011.svg|50px]] | <math>\Rightarrow</math> ||[[File:Venn 1111 1011.svg|50px]] | <math>\Leftrightarrow</math> ||[[File:Venn 0000 0101.svg|50px]] |<math>\rightarrow</math> ||[[File:Venn 0000 0011.svg|50px]] |} '''truth-preserving: yes'''<br>When all inputs are true, the output is true. {| style="text-align: center; border: 1px solid darkgray;" |- |<math>A \land B</math> | <math>\Rightarrow</math> |<math>A \land B</math> |- |[[File:Venn0001.svg|50px]] | <math>\Rightarrow</math> |[[File:Venn0001.svg|60px]] |- | | |{{small|(to be tested)}} |} '''falsehood-preserving: yes'''<br>When all inputs are false, the output is false. {| style="text-align: center; border: 1px solid darkgray;" |- |<math>A \land B</math> | <math>\Rightarrow</math> |<math>A \lor B</math> |- |[[File:Venn0001.svg|60px]] | <math>\Rightarrow</math> |[[File:Venn0111.svg|50px]] |- |{{small|(to be tested)}} | | |} '''[[Hadamard transform|Walsh spectrum]]: (1,-1,-1,1)''' '''Non[[Linear#Boolean functions|linearity]]: 1''' (the function is [[bent function|bent]]) If using [[binary numeral system|binary]] values for true (1) and false (0), then ''logical conjunction'' works exactly like normal arithmetic [[multiplication]]. ==Applications in computer engineering{{anchor|software_AND}}== [[File:AND Gate diagram.svg|thumb|right|AND [[logic gate]]]] In high-level computer programming and [[digital electronics]], logical conjunction is commonly represented by an infix operator, usually as a keyword such as "<code>AND</code>", an algebraic multiplication, or the ampersand symbol <code>&</code> (sometimes doubled as in <code>&&</code>). Many languages also provide [[short-circuit evaluation|short-circuit]] control structures corresponding to logical conjunction. Logical conjunction is often used for bitwise operations, where <code>0</code> corresponds to false and <code>1</code> to true: * <code>0 AND 0</code> = <code>0</code>, * <code>0 AND 1</code> = <code>0</code>, * <code>1 AND 0</code> = <code>0</code>, * <code>1 AND 1</code> = <code>1</code>. The operation can also be applied to two binary [[words]] viewed as [[bitstring]]s of equal length, by taking the bitwise AND of each pair of bits at corresponding positions. For example: * <code>11000110 AND 10100011</code> = <code>10000010</code>. This can be used to select part of a bitstring using a [[Mask (computing)|bit mask]]. For example, <code>1001'''1'''101 AND 0000'''1'''000</code> = <code>0000'''1'''000</code> extracts the fourth bit of an 8-bit bitstring. In [[computer networking]], bit masks are used to derive the network address of a [[subnetwork|subnet]] within an existing network from a given [[IP address]], by ANDing the IP address and the [[subnetwork#Binary subnet masks|subnet mask]]. Logical conjunction "<code>AND</code>" is also used in [[SQL]] operations to form [[database]] queries. The [[Curry–Howard correspondence]] relates logical conjunction to [[product type]]s. ==Set-theoretic correspondence== The membership of an element of an [[intersection (set theory)|intersection set]] in [[set theory]] is defined in terms of a logical conjunction: <math>x\in A\cap B</math> if and only if <math>(x\in A)\wedge (x\in B)</math>. Through this correspondence, set-theoretic intersection shares several properties with logical conjunction, such as [[associativity]], [[commutativity]] and [[idempotence]]. ==Natural language== As with other notions formalized in mathematical logic, the logical conjunction ''and'' is related to, but not the same as, the [[grammatical conjunction]] ''and'' in natural languages. English "and" has properties not captured by logical conjunction. For example, "and" sometimes implies order having the sense of "then". For example, "They got married and had a child" in common discourse means that the marriage came before the child. The word "and" can also imply a partition of a thing into parts, as "The American flag is red, white, and blue." Here, it is not meant that the flag is ''at once'' red, white, and blue, but rather that each color is a part of the flag. ==See also== {{colbegin|colwidth=20em}} * [[And-inverter graph]] * [[AND gate]] * [[Bitwise AND]] * [[Boolean algebra]] * [[Boolean conjunctive query]] * [[Boolean domain]] * [[Boolean function]] * [[Boolean-valued function]] * [[Conjunction/disjunction duality]] * [[Conjunction elimination]] * [[Conjunction (grammar)]] * [[De Morgan's laws]] * [[First-order logic]] * [[Fréchet inequalities]] * [[Homogeneity (linguistics)]] * [[List of Boolean algebra topics]] * [[Logical disjunction]] * [[Logical graph]] * [[Negation]] * [[Operation (mathematics)|Operation]] * [[Peano–Russell notation]] * [[Propositional calculus]] {{colend}} ==References== {{Reflist}} ==External links== {{Commons category}} *{{springer|title=Conjunction|id=p/c025080}} *[http://mathworld.wolfram.com/Conjunction.html Wolfram MathWorld: Conjunction] *{{cite web|url= http://www.math.hawaii.edu/~ramsey/Logic/And.html|title= Property and truth table of AND propositions|archive-url= https://web.archive.org/web/20170506173821/http://www.math.hawaii.edu/~ramsey/Logic/And.html|archive-date= May 6, 2017}} {{Logical connectives}} {{Common logical symbols}} {{Mathematical logic}} {{Authority control}} [[Category:Logical connectives|Conjunction]] [[Category:Semantics]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:2-ary truth table
(
edit
)
Template:Anchor
(
edit
)
Template:Authority control
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Colbegin
(
edit
)
Template:Colend
(
edit
)
Template:Common logical symbols
(
edit
)
Template:Commons category
(
edit
)
Template:Distinguish
(
edit
)
Template:Infobox logical connective
(
edit
)
Template:Logical connectives
(
edit
)
Template:Logical connectives sidebar
(
edit
)
Template:Mathematical logic
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Small
(
edit
)
Template:Springer
(
edit
)
Template:Unichar
(
edit
)