#set document(title: "2.6 De Morgan's Laws", author: "OpenStax / XYZ Homework") #set page(width: 8.5in, height: auto, margin: 1in) #import "@preview/cetz:0.5.2" #set text(font: ("STIX Two Text", "Libertinus Serif", "New Computer Modern"), size: 10.5pt, lang: "en") #show math.equation: set text(font: ("STIX Two Math", "New Computer Modern Math")) #set par(justify: true, leading: 0.62em, spacing: 0.9em) #set enum(spacing: 1.1em) // room between list items so tall inline fractions don't collide #set list(spacing: 1.1em) #set table(stroke: 0.5pt + rgb("#c7ccd3")) #let BLUE = rgb("#183B6F") // brand navy — section bars + example/solution labels (white on navy 11.09:1) #let ORANGE = rgb("#A94509") // brand primary-700 — AA-safe deep orange for TEXT (5.93:1 on white; raw brand #F37021 is 2.94:1 and must never carry text) #let RED = rgb("#DC2626") // brand error-600 #let GREEN = rgb("#059669") // brand success-600 (decoration only; small green text uses green-text #007942) #show heading.where(level: 1): it => block(width: 100%, above: 0pt, below: 16pt, fill: gradient.linear(BLUE, rgb("#2C5AA0")), inset: (x: 14pt, y: 12pt), radius: 3pt, text(fill: white, weight: "bold", size: 19pt, it.body)) #show heading.where(level: 2): it => block(width: 100%, above: 18pt, below: 10pt, fill: BLUE, inset: (x: 10pt, y: 6pt), radius: 2pt, text(fill: white, weight: "bold", size: 12pt, it.body)) #show heading.where(level: 3): it => text(fill: ORANGE, weight: "bold", size: 12.5pt, it.body) #show heading.where(level: 4): it => text(fill: BLUE, weight: "bold", size: 10.5pt, it.body) #let examplebox(label, title, body) = block(width: 100%, breakable: true, fill: rgb("#EFF1F5"), stroke: 0.5pt + rgb("#CFDDF0"), radius: 4pt, inset: 10pt, above: 12pt, below: 12pt)[ #block(below: 6pt)[#box(fill: BLUE, inset: (x: 6pt, y: 2pt), radius: 2pt, text(fill: white, weight: "bold", size: 8.5pt, label)) #h(0.4em) #strong[#title]] #body] // rail = decorative left rule (raw brand token); labelcolor = AA-safe label text shade #let notebox(label, rail, labelcolor, tint, body) = block(width: 100%, breakable: true, fill: tint, stroke: (left: 3pt + rail), inset: (left: 10pt, rest: 8pt), radius: (right: 4pt), above: 11pt, below: 11pt)[ #text(fill: labelcolor, weight: "bold", size: 7.5pt, tracking: 0.5pt)[#upper(label)] #linebreak() #body] #let solutionbox(body) = block(above: 4pt, below: 8pt)[ #text(fill: BLUE, weight: "bold", size: 8.5pt)[Solution] #linebreak() #body] #let figph(msg) = block(width: 100%, height: 60pt, fill: rgb("#f6f7f9"), stroke: (paint: rgb("#c7ccd3"), dash: "dashed"), radius: 4pt, inset: 10pt)[ #align(center + horizon, text(fill: rgb("#889"), style: "italic", size: 9pt, msg))] // Standardize inlined figure sizes: measure the natural CeTZ canvas, then scale to a // consistent envelope (aspect-aware; see build_typst.py FIG_* constants). Unlike the // print preamble, dimensions are FLOORED: in an editor a user can trim a figure to a // degenerate 1-D shape (a bare line), and w/h or tw/w would then divide by zero. #let _STD_W = 3.5 #let _WIDE_W = 5.6 #let _MAX_H = 3.4 #let _ASPECT_WIDE = 2.2 #let _UPSCALE_MAX = 1.15 #let stdfig(body) = context { let m = measure(body) let w = calc.max(m.width / 1in, 0.01) let h = calc.max(m.height / 1in, 0.01) let tw = if w / h > _ASPECT_WIDE { _WIDE_W } else { _STD_W } let s = calc.min(tw / w, _MAX_H / h, _UPSCALE_MAX) align(center, box(scale(x: s * 100%, y: s * 100%, reflow: true, body))) } #show figure: set block(breakable: false) #set figure(gap: 8pt) #show figure.caption: set text(size: 8.5pt, fill: rgb("#555")) == 2.6#h(0.6em)De Morgan’s Laws #figure(figph[A landscape view of a bridge built over a body of water.], alt: "A landscape view of a bridge built over a body of water.", caption: [De Morgan’s Laws were key to the rise of logical mathematical expression and helped serve as a bridge for the invention of the computer.]) === Learning Objectives After completing this section, you should be able to: + Use De Morgan’s Laws to negate conjunctions and disjunctions. + Construct the negation of a conditional statement. + Use truth tables to evaluate De Morgan’s Laws. The contributions to logic made by Augustus De Morgan and George Boole during the 19th century acted as a bridge to the development of computers, which may be the greatest invention of the 20th century. #strong[Boolean] logic is the basis for computer science and digital electronics, and without it the technological revolution of the late 20th and early 21st centuries—including the creation of computer chips, microprocessors, and the Internet—would not have been possible. Every modern computer language uses Boolean logic statements, which are translated into commands understood by the underlying electronic circuits enabling computers to operate. But how did this logic get its name? #notebox("People in Mathematics", rgb("#183B6F"), rgb("#183B6F"), rgb("#EFF1F5"))[ #emph[George Boole] #figure(figph[A motherboard of a computer circuit.], alt: "A motherboard of a computer circuit.", caption: [Boole’s algebra of logic was foundational in the design of digital computer circuits.]) George Boole was born in Lincolnshire, England in 1815. He was the son of a cobbler who provided him some initial education, but Boole was mostly self-taught. He began teaching at 16 years of age, and opened his own school at the age of 20. In 1849, at the age of 34, he was appointed Professor of Mathematics at Queens College in Cork, Ireland. In 1853, he published the paper, #emph[An Investigation of the Laws of Thought, on Which Are Founded the Mathematical Theories of Logic and Probabilities], which is the treatise that the field of Boolean algebra and digital circuitry was built on. Reference: Posamentier, Alfred and Spreitzer Christian, “Chapter 35 George Boole: English (1815-1864)” pp. 279-283, #emph[Math Makers: The Lives and Works of 50 Famous Mathematicians], Prometheus Books, 2019. ] === Negation of Conjunctions and Disjunctions In Chapter 1, used a Venn diagram to prove #strong[De Morgan’s Law] for set complement over union. Because the complement of a set is analogous to negation and union is analogous to an #emph[or] statement, there are equivalent versions of De Morgan’s Laws for logic. #notebox("Formula", rgb("#059669"), rgb("#007942"), rgb("#EAF3EC"))[ De Morgan’s Law for negation of a conjunction: #math.equation(block: false, alt: "~ open parenthesis p ∧ q close parenthesis ≡ ~ p ∨ ~ q")[$∼ ( p ∧ q ) " " ≡ " " ∼ p ∨ ∼ q$] De Morgan’s Law for the negation of a disjunction: #math.equation(block: false, alt: "~ open parenthesis p ∨ q close parenthesis ≡ ~ p ∧ ~ q")[$∼ ( p ∨ q ) " " ≡ " " ∼ p ∧ ∼ q$] Negation of a conditional: #math.equation(block: false, alt: "~ open parenthesis p → q close parenthesis ≡ p ∧ ~ q")[$∼ ( p → q ) " " ≡ " " p ∧ ∼ q$] Writing conditional as a disjunction: #math.equation(block: false, alt: "p → q ≡ ~ p ∨ q")[$p → q " " ≡ " " ∼ p ∨ q$] ] #notebox("Checkpoint", rgb("#059669"), rgb("#007942"), rgb("#EAF3EC"))[ #emph[Recall that the symbol for logical equivalence is:] #math.equation(block: false, alt: "≡ .")[$≡ .$] ] De Morgan’s Laws allow us to write the negation of conjunctions and disjunctions without using the phrase, “It is not the case that …” to indicate the parentheses. Avoiding this phrase often results in a written or verbal statement that is clearer or easier to understand. #examplebox("Example 1")[Applying De Morgan’s Law for Negation of Conjunctions and Disjunctions][ Write the negation of each statement in words without using the phrase, “It is not the case that.” + Kristin is a biomedical engineer and Thomas is a chemical engineer. + A person had cake or they had ice cream. #solutionbox[ + Kristin is a biomedical engineer and Thomas is a chemical engineer has the form “#math.equation(block: false, alt: "p ∧ q")[$p ∧ q$],” where #math.equation(block: false, alt: "p")[$p$] is the statement, “Kristin is a biomedical engineer,” and #math.equation(block: false, alt: "q")[$q$] is the statement, “Thomas is a chemical engineer.” By De Morgan’s Law, the negation of a conjunction, #math.equation(block: false, alt: "~ open parenthesis p ∧ q close parenthesis")[$∼ ( p ∧ q )$], is logically equivalent to #math.equation(block: false, alt: "~ p ∨ ~ q .")[$∼ p ∨ ∼ q .$] #math.equation(block: false, alt: "~ p")[$∼ p$] is “Kristen is not a biomedical engineer,” and #math.equation(block: false, alt: "~ q")[$∼ q$] is “Thomas is not a chemical engineer.” By De Morgan’s Law, the solution has the form “#math.equation(block: false, alt: "~ p ∨ ~ q")[$∼ p " " ∨ ∼ q$],” so the answer is: “Kristin is not a biomedical engineer or Tom is not a chemical engineer.” + A person had cake or they had ice cream has the form “#math.equation(block: false, alt: "p ∨ q ,")[$p ∨ q ,$]” where #math.equation(block: false, alt: "p")[$p$] is the statement, “A person had cake,” and #math.equation(block: false, alt: "q")[$q$] is the statement, “A person had ice cream.” By De Morgan’s Law for the negations of a disjunction, #math.equation(block: false, alt: "~ open parenthesis p ∨ q close parenthesis ≡ ~ p ∧ ~ q .")[$∼ ( p ∨ q ) ≡ " " ∼ p " " ∧ ∼ q .$] The solution is the statement: “A person did not have cake and they did not have ice cream.” ] ] === Negation of a Conditional Statement The negation of any statement has the opposite truth values of the original statement. The #strong[negation of a conditional], #math.equation(block: false, alt: "~ open parenthesis p → q close parenthesis")[$∼ ( p → q )$], is the conjunction of #math.equation(block: false, alt: "p")[$p$] and not #math.equation(block: false, alt: "q")[$q$], #math.equation(block: false, alt: "p ∧ ~ q .")[$p " " ∧ ∼ q .$] Consider the truth table below for the negation of the conditional. #figure(table( columns: 4, align: left, inset: 6pt, table.header([#math.equation(block: false, alt: "p")[$p$]], [#math.equation(block: false, alt: "q")[$q$]], [#math.equation(block: false, alt: "p → q")[$p → q$]], [#math.equation(block: false, alt: "~ open parenthesis p → q close parenthesis")[$∼ ( p → q )$]]), [T], [T], [T], [F], [T], [F], [F], [T], [F], [T], [T], [F], [F], [F], [T], [F], )) The only time the negation of the conditional statement is true is when #math.equation(block: false, alt: "p")[$p$] is true, and #math.equation(block: false, alt: "q")[$q$] is false. This means that #math.equation(block: false, alt: "~ open parenthesis p → q close parenthesis")[$∼ ( p → q )$] is logically equivalent to #math.equation(block: false, alt: "p ∧ ~ q ,")[$p ∧ ∼ q ,$] as the following truth table demonstrates. #figure(table( columns: 7, align: left, inset: 6pt, table.header([#math.equation(block: false, alt: "p")[$p$]], [#math.equation(block: false, alt: "q")[$q$]], [#math.equation(block: false, alt: "p → q")[$p → q$]], [#math.equation(block: false, alt: "~ open parenthesis p → q close parenthesis")[$∼ ( p → q )$]], [#math.equation(block: false, alt: "~ q")[$∼ q$]], [#math.equation(block: false, alt: "p ∧ ~ q")[$p ∧ ∼ q$]], [#math.equation(block: false, alt: "~ open parenthesis p → q close parenthesis ↔ open parenthesis p ∧ ~ q close parenthesis")[$∼ ( p → q ) ↔ ( p ∧ ∼ q )$]]), [T], [T], [T], [F], [F], [F], [#strong[T]], [T], [F], [F], [T], [T], [T], [#strong[T]], [F], [T], [T], [F], [F], [F], [#strong[T]], [F], [F], [T], [F], [T], [F], [#strong[T]], )) #examplebox("Example 2")[Constructing the Negation of a Conditional Statement][ Write the negation of each conditional statement. + If Adele won a Grammy, then she is a singer. + If Henrik Lundqvist played professional hockey, then he did not win the Stanley Cup. #solutionbox[ + The negation of the conditional statement, #math.equation(block: false, alt: "p → q ,")[$p → q ,$] is the statement, #math.equation(block: false, alt: "p ∧ ~ q .")[$p ∧ ∼ q .$] The hypothesis of the conditional statement is #math.equation(block: false, alt: "p")[$p$]: “Adele won a Grammy,” and conclusion of the conditional statement is #math.equation(block: false, alt: "q")[$q$]: “Adele is a singer.” The negation of the conclusion, #math.equation(block: false, alt: "~ q")[$∼ q$], is the statement: “She is not a singer.” Therefore, the answer is #math.equation(block: false, alt: "p ∧ ~ q :")[$p ∧ ∼ q :$] “Adele won a Grammy, and she is not a singer.” + The hypothesis is #math.equation(block: false, alt: "p")[$p$]: “Henrik Lundqvist played professional hockey,” and the conclusion of the conditional statement is #math.equation(block: false, alt: "q")[$q$]: “He did not win the Stanley Cup.” The negation of #math.equation(block: false, alt: "q")[$q$] is the statement: “He won the Stanley Cup.” The negation of the conditional statement is equal to #math.equation(block: false, alt: "p ∧ ~ q :")[$p ∧ ∼ q :$] “Henrick Lundqvist played professional hockey, and he won the Stanley Cup.” ] ] #examplebox("Example 3")[Constructing the Negation of a Conditional Statement with Quantifiers][ Write the negation of each conditional statement. + If all cats purr, then my partner’s cat purrs. + If a penguin is a bird, then some birds do not fly. #solutionbox[ + The negation of the conditional statement #math.equation(block: false, alt: "p → q")[$p → q$] is the statement #math.equation(block: false, alt: "p ∧ ~ q .")[$p ∧ ∼ q .$] The hypothesis of the conditional statement is #math.equation(block: false, alt: "p")[$p$]: “All cats purr,” and the conclusion of the conditional statement is #math.equation(block: false, alt: "q")[$q$]: “My partner’s cat purrs.” The negation of the conclusion, #math.equation(block: false, alt: "~ q")[$∼ q$], is the statement: “My partner’s cat does not purr.” Therefore, the answer is #math.equation(block: false, alt: "p ∧ ~ q :")[$p ∧ ∼ q :$] “All cats purr, but my partner’s cat does not purr.” + The hypothesis is #math.equation(block: false, alt: "p")[$p$]: “A penguin is a bird,” and the conclusion of the conditional statement is #math.equation(block: false, alt: "q")[$q$]: “Some birds do not fly.” The negation of #math.equation(block: false, alt: "q")[$q$] is the statement: “All birds fly.” Therefore, the negation of the conditional statement is equal to #math.equation(block: false, alt: "p ∧ ~ q :")[$p ∧ ∼ q :$] “A penguin is a bird, and all birds fly.” ] ] Many of the properties that hold true for number systems and sets also hold true for logical statements. The following table summarizes some of the most useful properties for analyzing and constructing logical arguments. These properties can be verified using a truth table. #figure(table( columns: 3, align: left, inset: 6pt, table.header([Property], [Conjunction (AND)], [Disjunction (OR)]), [#strong[Commutative]], [#math.equation(block: false, alt: "p ∧ q ≡ q ∧ p")[$p ∧ q ≡ q ∧ p$]], [#math.equation(block: false, alt: "p ∨ q ≡ q ∨ p")[$p ∨ q ≡ q ∨ p$]], [#strong[Associative]], [#math.equation(block: false, alt: "open parenthesis p ∧ q close parenthesis ∧ r ≡ p ∧ open parenthesis q ∧ r close parenthesis")[$( p ∧ q ) ∧ r ≡ p ∧ ( q ∧ r )$]], [#math.equation(block: false, alt: "open parenthesis p ∨ q close parenthesis ∨ r ≡ p ∨ open parenthesis q ∨ r close parenthesis")[$( p ∨ q ) ∨ r ≡ p ∨ ( q ∨ r )$]], [#strong[Distributive]], [#math.equation(block: false, alt: "p ∧ open parenthesis q ∧ r close parenthesis ≡ open parenthesis p ∧ q close parenthesis ∨ open parenthesis p ∧ r close parenthesis")[$p ∧ ( q ∧ r ) ≡ ( p ∧ q ) ∨ ( p ∧ r )$]], [#math.equation(block: false, alt: "p ∨ open parenthesis q ∧ r close parenthesis ≡ open parenthesis p ∨ q close parenthesis ∧ open parenthesis p ∨ r close parenthesis")[$p ∨ ( q ∧ r ) ≡ ( p ∨ q ) ∧ ( p ∨ r )$]], [#strong[De Morgan’s]], [#math.equation(block: false, alt: "~ open parenthesis p ∧ q close parenthesis ≡ ~ p ∨ ~ q")[$∼ ( p ∧ q ) " " ≡ " " ∼ p ∨ ∼ q$]], [#math.equation(block: false, alt: "~ open parenthesis p ∨ q close parenthesis ≡ ~ p ∧ ~ q")[$∼ ( p ∨ q ) " " ≡ " " ∼ p ∧ ∼ q$]], [#strong[Conditional]], [#math.equation(block: false, alt: "~ open parenthesis p → q close parenthesis ≡ p ∧ ~ q")[$∼ ( p → q ) " " ≡ " " p ∧ ∼ q$]], [#math.equation(block: false, alt: "p → q ≡ ~ p ∨ q")[$p → q " " ≡ " " ∼ p ∨ q$]], )) #examplebox("Example 4")[Negating a Conditional Statement with a Conjunction or Disjunction][ Write the negation of each conditional statement applying De Morgan’s Law. + If mom needs to buy chips, then Mike had friends over and Bob was hungry. + If Juan had pizza or Chris had wings, then dad watched the game. #solutionbox[ + The conditional has the form “If #math.equation(block: false, alt: "p")[$p$] then #math.equation(block: false, alt: "q")[$q$] or #math.equation(block: false, alt: "r")[$r$],” where #math.equation(block: false, alt: "p")[$p$] is “Mom needs to buy chips,” #math.equation(block: false, alt: "q")[$q$] is “Mike had friends over,” and #math.equation(block: false, alt: "r")[$r$] is “Bob was hungry.” The negation of #math.equation(block: false, alt: "p → open parenthesis q ∧ r close parenthesis")[$p → ( q ∧ r )$] is #math.equation(block: false, alt: "p ∧ ~ open parenthesis q ∧ r close parenthesis .")[$p ∧ ∼ ( q ∧ r ) .$] Applying De Morgan’s Law to the statement #math.equation(block: false, alt: "~ open parenthesis q ∧ r close parenthesis")[$∼ ( q ∧ r )$] the result is #math.equation(block: false, alt: "~ q ∨ ~ r")[$∼ q " " ∨ ∼ r$], so our conditional statement becomes #math.equation(block: false, alt: "p ∧ open parenthesis ~ q ∨ ~ r close parenthesis .")[$p ∧ ( ∼ q ∨ ∼ r ) .$] By the distributive property for conjunction over disjunction, this statement is equivalent to #math.equation(block: false, alt: "open parenthesis p ∧ ~ q close parenthesis ∨ open parenthesis p ∧ ~ r close parenthesis .")[$( p ∧ ∼ q ) ∨ ( p ∧ ∼ r ) .$] Translating the statement #math.equation(block: false, alt: "open parenthesis p ∧ ~ q close parenthesis ∨ open parenthesis p ∧ ~ r close parenthesis")[$( p ∧ ∼ q ) ∨ ( p ∧ ∼ r )$] into words, the solution is: “Mom needs to buy chips and Mike did not have friends over, or Mom needs to buy chips and Bob was not hungry.” + The conditional has the form “If #math.equation(block: false, alt: "p")[$p$] or #math.equation(block: false, alt: "q")[$q$], then #math.equation(block: false, alt: "r")[$r$],” where #math.equation(block: false, alt: "p")[$p$] is “Juan had pizza,” #math.equation(block: false, alt: "q")[$q$] is “Chris had wings,” and #math.equation(block: false, alt: "r")[$r$] is “Dad watched the game.” The negation of #math.equation(block: false, alt: "open parenthesis p ∨ q close parenthesis → r")[$( p ∨ q ) → r$] is #math.equation(block: false, alt: "open parenthesis p ∨ q close parenthesis ∧ ~ r .")[$( p ∨ q ) ∧ ∼ r .$] By the distributive property for disjunction over conjuction, the statement is equivalent to #math.equation(block: false, alt: "open parenthesis p ∨ ~ r close parenthesis ∧ open parenthesis q ∨ ~ r close parenthesis .")[$( p " " ∨ ∼ r ) ∧ ( q " " ∨ ∼ r ) .$] Translating the statement #math.equation(block: false, alt: "open parenthesis p ∨ ~ r close parenthesis ∧ open parenthesis q ∨ ~ r close parenthesis")[$( p " " ∨ ∼ r ) ∧ ( q " " ∨ ∼ r )$] into words, the solution is: “Juan had pizza or dad did not watch the game, and Chris had wings or dad did not watch the game.” ] ] === Evaluating De Morgan’s Laws with Truth Tables In Chapter 1, you learned that you could prove the validity of De Morgan’s Laws using Venn diagrams. Truth tables can also be used to prove that two statements are logically equivalent. If two statements are logically equivalent, you can use the form of the statement that is clearer or more persuasive when constructing a logical argument. The next example will prove the validity of one of De Morgan’s Laws using a truth table. The same procedure can be applied to any two logical statement that you believe are equivalent. If the last column of the truth table is a tautology, then the two statements are logically equivalent. #examplebox("Example 5")[Verifying De Morgan’s Law for Negation of a Conjunction][ Construct a truth table to verify De Morgan’s Law for the negation of a conjunction, #math.equation(block: false, alt: "~ open parenthesis p ∧ q close parenthesis ≡ ~ p ∨ ~ q")[$∼ ( p ∧ q ) " " ≡ " " ∼ p ∨ ∼ q$], is valid. #solutionbox[ #strong[Step 1:] To verify any logical equivalence, you must first replace the logical equivalence symbol, #math.equation(block: false, alt: "≡")[$≡$], with the biconditional symbol, #math.equation(block: false, alt: "↔")[$↔$]. The statement #math.equation(block: false, alt: "~ open parenthesis p ∧ q close parenthesis ≡ ~ p ∨ ~ q")[$∼ ( p ∧ q ) " " ≡ " " ∼ p " " ∨ ∼ q$] becomes #math.equation(block: false, alt: "~ open parenthesis p ∧ q close parenthesis ↔ ~ p ∨ ~ q .")[$∼ ( p ∧ q ) " " ↔ " " ∼ p " " ∨ ∼ q .$] #linebreak() #strong[Step 2:] Next, you create a truth table for the statement. Because we have two basic statements, #math.equation(block: false, alt: "p")[$p$], and #math.equation(block: false, alt: "q")[$q$], the truth table will have four rows to account for all the possible outcomes. The columns will be #math.equation(block: false, alt: "p")[$p$], #math.equation(block: false, alt: "q")[$q$], #math.equation(block: false, alt: "~ p")[$∼ p$], #math.equation(block: false, alt: "~ q")[$∼ q$], #math.equation(block: false, alt: "p ∧ q ,")[$p ∧ q ,$]#math.equation(block: false, alt: "~ open parenthesis p ∧ q close parenthesis ,")[$∼ ( p ∧ q ) ,$]#math.equation(block: false, alt: "~ p ∨ ~ q ,")[$∼ p " " ∨ ∼ q ,$] and the biconditional statement is #math.equation(block: false, alt: "~ open parenthesis p ∧ q close parenthesis ↔ ~ p ∨ ~ q .")[$∼ ( p ∧ q ) ↔ " " ∼ p " " ∨ ∼ q .$] #figure(table( columns: 8, align: left, inset: 6pt, table.header([#math.equation(block: false, alt: "p")[$p$]], [#math.equation(block: false, alt: "q")[$q$]], [#math.equation(block: false, alt: "p ∧ q")[$p ∧ q$]], [#math.equation(block: false, alt: "~ open parenthesis p ∧ q close parenthesis")[$∼ ( p ∧ q )$]], [#math.equation(block: false, alt: "~ p")[$∼ p$]], [#math.equation(block: false, alt: "~ q")[$∼ q$]], [#math.equation(block: false, alt: "~ p ∨ ~ q")[$∼ p ∨ ∼ q$]], [#math.equation(block: false, alt: "~ open parenthesis p ∧ q close parenthesis ↔ open parenthesis ~ p ∨ ~ q close parenthesis")[$∼ ( p ∧ q ) ↔ ( ∼ p ∨ ∼ q )$]]), [T], [T], [T], [F], [F], [F], [F], [#strong[T]], [T], [F], [F], [T], [F], [T], [T], [#strong[T]], [F], [T], [F], [T], [T], [F], [T], [#strong[T]], [F], [F], [F], [T], [T], [T], [T], [#strong[T]], )) #strong[Step 3:] Finally, verify that the statement is valid by confirming it is a tautology. In this instance, the last column is all true. Therefore, the statement is valid and De Morgan’s Law for the negation of a conjunction is verified. ] ] === Key Terms - Boolean logic - negation of a conditional === Key Concepts - De Morgan’s Law for the negation of a disjunction states that, #math.equation(block: false, alt: "~ open parenthesis p ∨ q close parenthesis")[$∼ ( p ∨ q )$] is logically equivalent to #math.equation(block: false, alt: "~ p ∧ ~ q .")[$∼ p ∧ ∼ q .$] - De Morgan’s Law The negation of a conjunction states that, #math.equation(block: false, alt: "~ open parenthesis p ∧ q close parenthesis ≡ ~ p ∨ ~ q .")[$∼ ( p ∧ q ) ≡ ∼ p ∨ ∼ q .$] - Use De Morgan’s Laws to negate conjunctions and disjunctions. - The negation of a conditional statement, if #math.equation(block: false, alt: "p")[$p$] then #math.equation(block: false, alt: "q")[$q$] is logically equivalent to the statement #math.equation(block: false, alt: "p")[$p$] and not #math.equation(block: false, alt: "q")[$q$]. Use this property to write the negation of conditional statements. - Use truth tables to evaluate De Morgan’s Laws.