eolas/neuron/d0ed26d0-cdc8-4643-8c09-445408195f9b/.neuron/output/Boolean_algebra.html
2024-10-20 19:00:04 +01:00

84 lines
No EOL
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type" /><meta content="width=device-width, initial-scale=1" name="viewport" /><!--replace-start-0--><!--replace-start-5--><!--replace-start-8--><title>Boolean algebra - My Zettelkasten</title><!--replace-end-8--><!--replace-end-5--><!--replace-end-0--><link href="https://cdn.jsdelivr.net/npm/fomantic-ui@2.8.7/dist/semantic.min.css" rel="stylesheet" /><link href="https://fonts.googleapis.com/css?family=Merriweather|Libre+Franklin|Roboto+Mono&amp;display=swap" rel="stylesheet" /><!--replace-start-1--><!--replace-start-4--><!--replace-start-7--><link href="https://raw.githubusercontent.com/srid/neuron/master/assets/neuron.svg" rel="icon" /><meta content="Many of the laws that obtain in the mathematical realm of algebra also obtain for Boolean expressions." name="description" /><meta content="Boolean algebra" property="og:title" /><meta content="My Zettelkasten" property="og:site_name" /><meta content="article" property="og:type" /><meta content="Boolean_algebra" property="neuron:zettel-id" /><meta content="Boolean_algebra" property="neuron:zettel-slug" /><meta content="algebra" property="neuron:zettel-tag" /><meta content="logic" property="neuron:zettel-tag" /><meta content="nand-to-tetris" property="neuron:zettel-tag" /><meta content="propositional-logic" property="neuron:zettel-tag" /><script type="application/ld+json">[]</script><style type="text/css">body{background-color:#eeeeee !important;font-family:"Libre Franklin", serif !important}body .ui.container{font-family:"Libre Franklin", serif !important}body h1, h2, h3, h4, h5, h6, .ui.header, .headerFont{font-family:"Merriweather", sans-serif !important}body code, pre, tt, .monoFont{font-family:"Roboto Mono","SFMono-Regular","Menlo","Monaco","Consolas","Liberation Mono","Courier New", monospace !important}body div.z-index p.info{color:#808080}body div.z-index ul{list-style-type:square;padding-left:1.5em}body div.z-index .uplinks{margin-left:0.29999em}body .zettel-content h1#title-h1{background-color:rgba(33,133,208,0.1)}body nav.bottomPane{background-color:rgba(33,133,208,2.0e-2)}body div#footnotes{border-top-color:#2185d0}body p{line-height:150%}body img{max-width:100%}body .deemphasized{font-size:0.94999em}body .deemphasized:hover{opacity:1}body .deemphasized:not(:hover){opacity:0.69999}body .deemphasized:not(:hover) a{color:#808080 !important}body div.container.universe{padding-top:1em}body div.zettel-view ul{padding-left:1.5em;list-style-type:square}body div.zettel-view .pandoc .highlight{background-color:#ffff00}body div.zettel-view .pandoc .ui.disabled.fitted.checkbox{margin-right:0.29999em;vertical-align:middle}body div.zettel-view .zettel-content .metadata{margin-top:1em}body div.zettel-view .zettel-content .metadata div.date{text-align:center;color:#808080}body div.zettel-view .zettel-content h1{padding-top:0.2em;padding-bottom:0.2em;text-align:center}body div.zettel-view .zettel-content h2{border-bottom:solid 1px #4682b4;margin-bottom:0.5em}body div.zettel-view .zettel-content h3{margin:0px 0px 0.4em 0px}body div.zettel-view .zettel-content h4{opacity:0.8}body div.zettel-view .zettel-content div#footnotes{margin-top:4em;border-top-style:groove;border-top-width:2px;font-size:0.9em}body div.zettel-view .zettel-content div#footnotes ol > li > p:only-of-type{display:inline;margin-right:0.5em}body div.zettel-view .zettel-content aside.footnote-inline{width:30%;padding-left:15px;margin-left:15px;float:right;background-color:#d3d3d3}body div.zettel-view .zettel-content .overflows{overflow:auto}body div.zettel-view .zettel-content code{margin:auto auto auto auto;font-size:100%}body div.zettel-view .zettel-content p code, li code, ol code{padding:0.2em 0.2em 0.2em 0.2em;background-color:#f5f2f0}body div.zettel-view .zettel-content pre{overflow:auto}body div.zettel-view .zettel-content dl dt{font-weight:bold}body div.zettel-view .zettel-content blockquote{background-color:#f9f9f9;border-left:solid 10px #cccccc;margin:1.5em 0px 1.5em 0px;padding:0.5em 10px 0.5em 10px}body div.zettel-view .zettel-content.raw{background-color:#dddddd}body .ui.label.zettel-tag{color:#000000}body .ui.label.zettel-tag a{color:#000000}body nav.bottomPane ul.backlinks > li{padding-bottom:0.4em;list-style-type:disc}body nav.bottomPane ul.context-list > li{list-style-type:lower-roman}body .footer-version img{-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%);-ms-filter:grayscale(100%);-o-filter:grayscale(100%);filter:grayscale(100%)}body .footer-version img:hover{-webkit-filter:grayscale(0%);-moz-filter:grayscale(0%);-ms-filter:grayscale(0%);-o-filter:grayscale(0%);filter:grayscale(0%)}body .footer-version, .footer-version a, .footer-version a:visited{color:#808080}body .footer-version a{font-weight:bold}body .footer-version{margin-top:1em !important;font-size:0.69999em}@media only screen and (max-width: 768px){body div#zettel-container{margin-left:0.4em !important;margin-right:0.4em !important}}body span.zettel-link-container span.zettel-link a{color:#2185d0;font-weight:bold;text-decoration:none}body span.zettel-link-container span.zettel-link a:hover{background-color:rgba(33,133,208,0.1)}body span.zettel-link-container span.extra{color:auto}body span.zettel-link-container.errors{border:solid 1px #ff0000}body span.zettel-link-container.errors span.zettel-link a:hover{text-decoration:none !important;cursor:not-allowed}body [data-tooltip]:after{font-size:0.69999em}body div.tag-tree div.node{font-weight:bold}body div.tag-tree div.node a.inactive{color:#555555}body .tree.flipped{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}body .tree{overflow:auto}body .tree ul.root{padding-top:0px;margin-top:0px}body .tree ul{position:relative;padding:1em 0px 0px 0px;white-space:nowrap;margin:0px auto 0px auto;text-align:center}body .tree ul::after{content:"";display:table;clear:both}body .tree ul:last-child{padding-bottom:0.1em}body .tree li{display:inline-block;vertical-align:top;text-align:center;list-style-type:none;position:relative;padding:1em 0.5em 0em 0.5em}body .tree li::before{content:"";position:absolute;top:0px;right:50%;border-top:solid 2px #cccccc;width:50%;height:1.19999em}body .tree li::after{content:"";position:absolute;top:0px;right:50%;border-top:solid 2px #cccccc;width:50%;height:1.19999em}body .tree li::after{right:auto;left:50%;border-left:solid 2px #cccccc}body .tree li:only-child{padding-top:0em}body .tree li:only-child::after{display:none}body .tree li:only-child::before{display:none}body .tree li:first-child::before{border-style:none;border-width:0px}body .tree li:first-child::after{border-radius:5px 0px 0px 0px}body .tree li:last-child::after{border-style:none;border-width:0px}body .tree li:last-child::before{border-right:solid 2px #cccccc;border-radius:0px 5px 0px 0px}body .tree ul ul::before{content:"";position:absolute;top:0px;left:50%;border-left:solid 2px #cccccc;width:0px;height:1.19999em}body .tree li div.forest-link{border:solid 2px #cccccc;padding:0.2em 0.29999em 0.2em 0.29999em;text-decoration:none;display:inline-block;border-radius:5px 5px 5px 5px;color:#333333;position:relative;top:2px}body .tree.flipped li div.forest-link{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}</style><script
async=""
id="MathJax-script"
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"
></script>
<link
href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/themes/prism.min.css"
rel="stylesheet"
/><link rel="preconnect" href="https://fonts.googleapis.com" /><link
rel="preconnect"
href="https://fonts.gstatic.com"
crossorigin
/><link
href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=IBM+Plex+Sans+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=IBM+Plex+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=IBM+Plex+Serif:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap"
rel="stylesheet"
/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/components/prism-core.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<style>
body .ui.container,
body ul {
font-family: "IBM Plex Sans" !important;
}
body blockquote {
border-left-width: 3px !important;
font-style: italic;
}
.headerFont,
.ui.header,
body h1,
h2,
h3,
h4,
h5,
h6 {
font-family: "IBM Plex Sans Condensed" !important;
}
body p {
line-height: 1.4;
}
.monoFont,
body code,
pre,
tt {
font-family: "IBM Plex Mono" !important;
font-size: 12px !important;
line-height: 1.4 !important;
}
</style>
<!--replace-end-7--><!--replace-end-4--><!--replace-end-1--></head><body><div class="ui fluid container universe"><!--replace-start-2--><!--replace-start-3--><!--replace-start-6--><div class="ui text container" id="zettel-container" style="position: relative"><div class="zettel-view"><article class="ui raised attached segment zettel-content"><div class="pandoc"><h1 id="title-h1">Boolean algebra</h1><h2 id="algebraic-laws">Algebraic laws</h2><p>Many of the laws that obtain in the mathematical realm of algebra also obtain for Boolean expressions.</p><h3 id="the-commutative-law">The Commutative Law</h3><p><span class="math display">$$
x \land y = y \land x \\
$$</span></p><p>$$</p><pre><code class="language-none">x \lor y = y \lor x</code></pre><p>$$</p><p>Compare the <a href="Whole_numbers.md#the-commutative-property">Commutative Law</a> in the context of arithmetic.</p><h3 id="the-associative-law">The Associative Law</h3><p><span class="math display">$$
x \land (y \land z) = (x \land y) \land z
$$</span></p><p><span class="math display">$$
x \lor (y \lor z) = (x \lor y) \lor z
$$</span></p><p>Compare the <a href="Whole_numbers.md#the-associative-property">Associative Law</a> in the context of arithmetic.</p><h3 id="the-distributive-law">The Distributive Law</h3><p><span class="math display">$$
x \land (y \lor z) = (x \land y) \lor (x \land z)
$$</span></p><p><span class="math display">$$
x \lor (y \land z) = (x \lor y) \land (x \lor z)
$$</span></p><p>Compare how the <span class="zettel-link-container cf"><span class="zettel-link" title="Zettel: The Distributive Property of Multiplication"><a href="Distributivity.html">Distributive Law applies in the case of algebra based on arithmetic</a></span></span>:</p><p><span class="math display">$$
a \cdot (b + c) = a \cdot b + a \cdot c
$$</span></p><h3 id="double-negation-elimination">Double Negation Elimination</h3><p><span class="math display">$$
\lnot \lnot x = x
$$</span></p><h3 id="idempotent-law">Idempotent Law</h3><p><span class="math display">$$
x \land x = x
$$</span></p><blockquote><p>Combining a quantity with itself either by logical addition or logical multiplication will result in a logical sum or product that is the equivalent of the quantity</p></blockquote><h3 id="demorgans-laws">DeMorgans Laws</h3><p>In addition we have <span class="zettel-link-container cf"><span class="zettel-link" title="Zettel: DeMorgans Laws"><a href="DeMorgan&#39;s_Laws.html">DeMorgans Laws</a></span></span> which express the relationship that obtains between the negations of conjunctive and disjunctive expressions:</p><p><span class="math display">$$
\lnot(x \land y) = \lnot x \lor \lnot y
$$</span></p><p><span class="math display">$$
\lnot (x \lor y) = \lnot x \land \lnot y
$$</span></p><h2 id="applying-the-laws-to-simplify-complex-boolean-expressions">Applying the laws to simplify complex Boolean expressions</h2><p>Say we have the following expression:</p><p><span class="math display">$$
\lnot(\lnot(x) \land \lnot (x \lor y))
$$</span></p><p>We can employ DeMorgans Laws to convert the second conjunct to a different form:</p><p><span class="math display">$$
\lnot (x \lor y) = \lnot x \land \lnot y
$$</span></p><p>So now we have:</p><p><span class="math display">$$
\lnot(\lnot(x) \land (\lnot x \land \lnot y ))
$$</span></p><p>As we have now have an expression of the form <em>P and (Q and R)</em> we can apply the Distributive Law to simplify the brackets (<em>P and Q and R</em>):</p><p><span class="math display">$$
\lnot( \lnot(x) \land \lnot(x) \land \lnot(y))
$$</span></p><p>Notice that we are repeating ourselves in this reformulation. We have <span class="math inline">\(\lnot(x) \land \lnot(x)\)</span> but this is just the same <span class="math inline">\(\lnot(x)\)</span> by the principle of <strong>idempotence</strong>. So we can reduce to:</p><p><span class="math display">$$
\lnot(\lnot(x) \land \lnot(y))
$$</span></p><p>This gives our expression the form of the first DeMorgan Law (<span class="math inline">\(\lnot (P \land Q)\)</span>), thus we can apply the law (<span class="math inline">\(\lnot P \lor \lnot Q\)</span>) to get:</p><p><span class="math display">$$
\lnot(\lnot(x)) \lor \lnot(\lnot(y))
$$</span></p><p>Of course now we have two double negatives. We can apply the double negation law to get:</p><p><span class="math display">$$
x \lor y
$$</span></p><h3 id="truth-table">Truth table</h3><p>Whenever we simplify an algebraic expression the value of the resulting expression should match that of the complex expression. We can demonstrate this with a truth table:</p><table class="ui table"><thead><tr><th><span class="math inline">\(x\)</span></th><th><span class="math inline">\(y\)</span></th><th><span class="math inline">\(\lnot(\lnot(x) \land \lnot (x \lor y))\)</span></th><th><span class="math inline">\(x \lor y\)</span></th></tr></thead><tbody><tr><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>1</td><td>1</td><td>1</td></tr><tr><td>1</td><td>0</td><td>1</td><td>1</td></tr><tr><td>1</td><td>1</td><td>1</td><td>1</td></tr></tbody></table><h3 id="significance-for-computer-architecture">Significance for computer architecture</h3><p>The fact that we can take a complex Boolean function and reduce it to a simpler formulation has great significance for the development of computer architectures, specifically <span class="zettel-link-container cf"><span class="zettel-link" title="Zettel: Logic gates"><a href="Logic_gates.html">logic gates</a></span></span>. It would be rather resource intensive and inefficient to create a gate that is representative of the complex function. Whereas the simplified version only requires a single <a href="Logic_gates.md#or-gate">OR gate</a>.</p></div></article><nav class="ui attached segment deemphasized bottomPane" id="neuron-tags-pane"><div><span class="ui basic label zettel-tag" title="Tag">algebra</span><span class="ui basic label zettel-tag" title="Tag">logic</span><span class="ui basic label zettel-tag" title="Tag">nand-to-tetris</span><span class="ui basic label zettel-tag" title="Tag">propositional-logic</span></div></nav><nav class="ui bottom attached icon compact inverted menu blue" id="neuron-nav-bar"><!--replace-start-9--><!--replace-end-9--><a class="right item" href="impulse.html" title="Open Impulse"><i class="wave square icon"></i></a></nav></div></div><!--replace-end-6--><!--replace-end-3--><!--replace-end-2--><div class="ui center aligned container footer-version"><div class="ui tiny image"><a href="https://neuron.zettel.page"><img alt="logo" src="https://raw.githubusercontent.com/srid/neuron/master/assets/neuron.svg" title="Generated by Neuron 1.9.35.3" /></a></div></div></div></body></html>