From ae7155758923bd9ca371d70ecae1dfbbea744f12 Mon Sep 17 00:00:00 2001 From: Joshua Potter Date: Sat, 17 Feb 2024 12:49:56 -0700 Subject: [PATCH] Integer encodings and discrete math. --- .../plugins/obsidian-to-anki-plugin/data.json | 16 +- notes/_journal/2024-02-17.md | 15 + notes/_journal/{ => 2024-02}/2024-02-16.md | 2 +- notes/algorithms/binary-search.md | 117 +++++++ notes/binary/integer-encoding.md | 304 ++++++++++++++++++ notes/logic/equiv-trans.md | 26 +- notes/logic/propositional.md | 240 ++++++++++++++ notes/logic/quantification.md | 11 +- 8 files changed, 698 insertions(+), 33 deletions(-) create mode 100644 notes/_journal/2024-02-17.md rename notes/_journal/{ => 2024-02}/2024-02-16.md (91%) create mode 100644 notes/algorithms/binary-search.md create mode 100644 notes/binary/integer-encoding.md create mode 100644 notes/logic/propositional.md diff --git a/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json b/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json index a84199e..091c557 100644 --- a/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json +++ b/notes/.obsidian/plugins/obsidian-to-anki-plugin/data.json @@ -96,7 +96,7 @@ "journal/2024-02-02.md": "a3b222daee8a50bce4cbac699efc7180", "journal/2024-02-03.md": "c6d411f0e2e964270399dd3a99f48382", "logic/index.md": "46cdc7a552900e99a7d2d0140971118c", - "logic/propositional.md": "e7dbb24674336beb44dc9ef4c9ae51ff", + "logic/propositional.md": "c438bdad405832e3c180469e961539cc", "lua/index.md": "fd3d0b66765f0e9df233e8e02ce33e94", "nix/callPackage.md": "140a02e57cd01d646483e3c21d72243d", "nix/index.md": "4efc7fcc4ea22834ba595497e5fb715c", @@ -114,7 +114,7 @@ "_journal/2024-02-02.md": "a3b222daee8a50bce4cbac699efc7180", "_journal/2024-02-01.md": "3aa232387d2dc662384976fd116888eb", "_journal/2024-01-31.md": "7c7fbfccabc316f9e676826bf8dfe970", - "logic/equiv-trans.md": "3385a3cf9ba8b0cebbc1bdff3f994751", + "logic/equiv-trans.md": "afcd52fefbbbb8397220194062626a7a", "_journal/2024-02-07.md": "8d81cd56a3b33883a7706d32e77b5889", "algorithms/loop-invariants.md": "cbefc346842c21a6cce5c5edce451eb2", "algorithms/loop-invariant.md": "d883dfc997ee28a7a1e24b995377792b", @@ -127,7 +127,7 @@ "binary/index.md": "27bdd4423e323cd961ddb307ab28d977", "_journal/2024-02-09.md": "a798d35f0b2bd1da130f7ac766166109", "c/types.md": "cf3e66e5aee58a94db3fdf0783908555", - "logic/quantification.md": "37655276de8da531ca2b12706a639224", + "logic/quantification.md": "5d7579a511e9ff683edeec62bcc291b8", "c/declarations.md": "d2e7dcb5bbf6644651f4f25503b165e1", "algorithms/sorting/bubble-sort.md": "16dad1016dc6555163e42ba20f1d152d", "_journal/2024-02-10.md": "562b01f60ea36a3c78181e39b1c02b9f", @@ -160,10 +160,14 @@ "_journal/2024-02/2024-02-13.md": "6242ed4fecabf95df6b45d892fee8eb0", "_journal/2024-02-15.md": "575ba46d692795d9606de9e635d1f4ac", "_journal/2024-02/2024-02-14.md": "aa009f9569e175a8104b0537ebcc5520", - "_journal/2024-02-16.md": "aacf3fff471c47bf0251849f81539555", + "_journal/2024-02-16.md": "5cc129254afd553829be3364facd23db", "_journal/2024-02/2024-02-15.md": "16cb7563d404cb543719b7bb5037aeed", - "algebra/floor-ceiling.md": "114d4f455fc9729ebac704752d955fcf", - "algebra/index.md": "90b842eb694938d87c7c68779a5cacd1" + "algebra/floor-ceiling.md": "456fa31bedb9ec7c2fa1d6f75db81dec", + "algebra/index.md": "90b842eb694938d87c7c68779a5cacd1", + "algorithms/binary-search.md": "08cb6dc2dfb204a665d8e8333def20ca", + "_journal/2024-02-17.md": "7c71a5ccb5b2f45cb93ef6c485e7b567", + "_journal/2024-02/2024-02-16.md": "e701902e369ec53098fc2deed4ec14fd", + "binary/integer-encoding.md": "a2c8c83a20f1124fd5af0f3c23894284" }, "fields_dict": { "Basic": [ diff --git a/notes/_journal/2024-02-17.md b/notes/_journal/2024-02-17.md new file mode 100644 index 0000000..640b003 --- /dev/null +++ b/notes/_journal/2024-02-17.md @@ -0,0 +1,15 @@ +--- +title: "2024-02-17" +--- + +- [x] Anki Flashcards +- [x] KoL +- [ ] Sheet Music (10 min.) +- [ ] OGS (1 Life & Death Problem) +- [ ] Korean (Read 1 Story) +- [ ] Interview Prep (1 Practice Problem) +- [ ] Log Work Hours (Max 3 hours) + +* Began working through two's-complement and unsigned encoding. +* Also added more notes on propositional logic. + * Taking a step back from "Concrete Mathematics" to first read through "Discrete Mathematics: An Open Introduction". \ No newline at end of file diff --git a/notes/_journal/2024-02-16.md b/notes/_journal/2024-02/2024-02-16.md similarity index 91% rename from notes/_journal/2024-02-16.md rename to notes/_journal/2024-02/2024-02-16.md index de3212d..c40432d 100644 --- a/notes/_journal/2024-02-16.md +++ b/notes/_journal/2024-02/2024-02-16.md @@ -7,7 +7,7 @@ title: "2024-02-16" - [ ] Sheet Music (10 min.) - [ ] OGS (1 Life & Death Problem) - [ ] Korean (Read 1 Story) -- [ ] Interview Prep (1 Practice Problem) +- [x] Interview Prep (1 Practice Problem) - [ ] Log Work Hours (Max 3 hours) * Read "Queries, Modeling, and Transformation" of "Fundamentals of Data Engineering". diff --git a/notes/algorithms/binary-search.md b/notes/algorithms/binary-search.md new file mode 100644 index 0000000..7642772 --- /dev/null +++ b/notes/algorithms/binary-search.md @@ -0,0 +1,117 @@ +--- +title: Binary Search +TARGET DECK: Obsidian::STEM +FILE TAGS: algorithm +tags: + - algorithm +--- + +## Overview + +Property | Value +----------- | -------- +Best Case | $O(1)$ +Worst Case | $O(\lg{n})$ +Aux. Memory | $O(1)$ + +%%ANKI +Basic +What is the best case running time of binary search? +Back: $\Omega(1)$ +Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009). + +END%% + +%%ANKI +Basic +What input does binary search perform best on? +Back: One in which the value being searched for is already in the middle. +Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009). + +END%% + +%%ANKI +Basic +What is the worst case running time of binary search? +Back: $O(\lg{n})$ +Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009). + +END%% + +%%ANKI +Basic +What input does binary search perform worst on? +Back: One in which the value does not exist. +Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009). + +END%% + +%%ANKI +Basic +What is the typical output of binary search? +Back: The index of the element in the array being searched for, if found. +Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009). + +END%% + +A recursive solution looks as follows: + +```c +static int aux(const int needle, const int i, const int j, int *A) { + if (i > j) { + return -1; + } + int mid = (i + j) / 2; + if (A[mid] == needle) { + return mid; + } else if (A[mid] < needle) { + return aux(needle, mid + 1, j, A); + } else { + return aux(needle, i, mid - 1, A); + } +} + +int binary_search(const int needle, const int n, int A[static n]) { + return aux(needle, 0, n - 1, A); +} +``` + +We can also write this iteratively: + +```c +int binary_search(const int needle, const int n, int A[static n]) { + int i = 0; + int j = n - 1; + while (i <= j) { + int mid = (i + j) / 2; + if (A[mid] == needle) { + return mid; + } else if (A[mid] < needle) { + i = mid + 1; + } else { + j = mid - 1; + } + } + return -1; +} +``` + +%%ANKI +Basic +In binary search, when could using floor for midpoint calculations yield different answers than ceiling? +Back: When there exist duplicate members. +Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009). + +END%% + +%%ANKI +Basic +In binary search, what ensures left pointer `L` and right pointers `R` eventually satisfy `L > R`? +Back: The found midpoint is always excluded from the next binary search invocation. +Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009). + +END%% + +## References + +* Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009). diff --git a/notes/binary/integer-encoding.md b/notes/binary/integer-encoding.md new file mode 100644 index 0000000..93e189c --- /dev/null +++ b/notes/binary/integer-encoding.md @@ -0,0 +1,304 @@ +--- +title: Integer Encoding +TARGET DECK: Obsidian::STEM +FILE TAGS: binary +tags: + - binary +--- + +## Overview + +Integers are typically encoded using either **unsigned encoding** or **two's complement**. + +%%ANKI +Basic +What is a C integral type? +Back: A type representing finite ranges of integers. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. +Tags: c + +END%% + +%%ANKI +Basic +In what two ways are C integral types encoded? +Back: Unsigned encoding or two's-complement. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. +Tags: c + +END%% + +%%ANKI +Basic +What integer values does unsigned encoding represent? +Back: Nonnegative values. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What integer values does two's-complement represent? +Back: Negative, zero, and positive values. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +An integral value of 0 has what encoding? +Back: Either unsigned or two's-complement. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +An integral value of 100 has what encoding? +Back: Either unsigned or two's-complement. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +An integral value of -100 has what encoding? +Back: Two's-complement. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +### Unsigned Encoding + +Always represents nonnegative numbers. Given an integral type $\vec{x}$ of $w$ bits, we convert binary to its unsigned encoding with: $$B2U_w(\vec{x}) = \sum_{i=0}^{w-1} 2^ix_i$$ + +%%ANKI +Basic +What is the largest unsigned value an integral type of $w$ bits can encode? +Back: $2^w - 1$ +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What is the smallest unsigned value an integral type of $w$ bits can encode? +Back: $0$ +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What half-open interval represents the possible $w$-bit unsigned values? +Back: $[0, 2^w)$ +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What is the binary representation of the smallest $4$-bit unsigned number? +Back: $0000_2$ +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What is the binary representation of the largest $4$-bit unsigned number? +Back: $1111_2$ +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What is the decimal expansion of unsigned type $1010_2$? +Back: $2^3 + 2^1 = 10$ +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What does the "uniqueness" of unsigned encoding refer to? +Back: The function used to convert integral types to their unsigned encoding is a bijection. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +How does Bryant et al. define $B2U_w$? +Back: $B2U_w(\vec{x}) = \sum_{i=0}^{w-1} 2^ix_i$ +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What is $B2U_w$ an acronym for? +Back: **B**inary "to" **u**nsigned. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What does $w$ in $B2U_w$ represent? +Back: The number of bits in the integral type being interpreted. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What is the domain of $B2U_w$? +Back: Bit vectors of size $w$. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What is the range of $B2U_w$? +Back: $[0, 2^w)$ +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +Why is "$B2U$" insufficient for use? +Back: We need to understand how many bits conversion is with respect to. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +### Two's-Complement + +Represents negative numbers along with nonnegative ones. Given an integral type $\vec{x}$ of $w$ bits, we convert binary to its twos'-complement encoding with: $$B2T_w(\vec{x}) = -2^{w-1}x_{w-1} + \sum_{i=0}^{w-2} 2^ix_i$$ + +%%ANKI +Basic +What is the largest two's-complement value an integral type of $w$ bits can encode? +Back: $2^{w-1} - 1$ +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What is the smallest two's-complement value an integral type of $w$ bits can encode? +Back: $-2^{w-1}$ +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What half-open interval represents the possible $w$-bit two's-complement values? +Back: $[-2^{w-1}, 2^{w-1})$ +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Cloze +$[${1:$0$}, {2:$2^w$}$)$ is to unsigned as $[${1:$-2^{w-1}$}, {2:$2^{w-1}$}$)$ is to two's-complement. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What is the binary representation of the smallest $4$-bit two's-complement number? +Back: $1000_2$ +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What is the binary representation of the largest $4$-bit two's-complement number? +Back: $0111_2$ +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Cloze +The {sign bit} refers to the {most significant bit} in two's-complement. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What is the weight of the sign bit in $w$-bit two's-complement? +Back: $-2^{w-1}$ +The {sign bit} refers to the {most significant bit} in two's-complement. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What does the "uniqueness" of two's-complement refer to? +Back: The function used to convert integral types to two's-complement is a bijection. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +How does Bryant et al. define $B2T_w$? +Back: $B2T_w(\vec{x}) = -2^{w-1}x_{w-1} + \sum_{i=0}^{w-2} 2^ix_i$ +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What is $B2T_w$ an acronym for? +Back: **B**inary "to" **t**wo's-complement. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What does $w$ in $B2T_w$ represent? +Back: The number of bits in the integral type being interpreted. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What is the domain of $B2T_w$? +Back: Bit vectors of size $w$. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +What is the range of $B2T_w$? +Back: $[-2^{w-1}, 2^{w-1})$ +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +%%ANKI +Basic +Why is "$B2T$" insufficient for use? +Back: We need to understand how many bits conversion is with respect to. +Reference: Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. + +END%% + +## References + +* Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016. \ No newline at end of file diff --git a/notes/logic/equiv-trans.md b/notes/logic/equiv-trans.md index a77c9ee..2bfda76 100644 --- a/notes/logic/equiv-trans.md +++ b/notes/logic/equiv-trans.md @@ -9,7 +9,7 @@ tags: ## Overview -**Equivalence-transformation** refers to a class of calculi for manipulating propositions derived from negation ($\neg$), conjunction ($\land$), disjunction ($\lor$), implication ($\Rightarrow$), and equality ($=$). Gries covers two in "The Science of Programming": a system of evaluation and a formal system. The system of evaluation mirrors how a computer processes instructions, at least in an abstract sense. The formal system serves as a theoretical framework for reasoning about propositions and their transformations without resorting to "lower-level" operations like substitution. +**Equivalence-transformation** refers to a class of calculi for [[propositional|propositional logic]] derived from negation ($\neg$), conjunction ($\land$), disjunction ($\lor$), implication ($\Rightarrow$), and equality ($=$). Gries covers two in "The Science of Programming": a system of evaluation and a formal system. The system of evaluation mirrors how a computer processes instructions, at least in an abstract sense. The formal system serves as a theoretical framework for reasoning about propositions and their transformations without resorting to "lower-level" operations like substitution. %%ANKI Basic @@ -27,14 +27,6 @@ Reference: Gries, David. *The Science of Programming*. Texts and Monographs in END%% -%%ANKI -Basic -What are the basic propositional logical operators? -Back: $\neg$, $\land$, $\lor$, $\Rightarrow$, and $\Leftrightarrow$/$=$ -Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. - -END%% - %%ANKI Cloze Gries replaces logical operator {$\Leftrightarrow$} in favor of {$=$}. @@ -72,22 +64,6 @@ Tags: lean END%% -%%ANKI -Basic -What name is given to operand $a$ in $a \Rightarrow b$? -Back: The antecedent -Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. - -END%% - -%%ANKI -Basic -What name is given to operand $b$ in $a \Rightarrow b$? -Back: The consequent -Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. - -END%% - %%ANKI Basic Is $(b \land c)$ well-defined in $\{(b, T), (c, F)\}$? diff --git a/notes/logic/propositional.md b/notes/logic/propositional.md new file mode 100644 index 0000000..3600029 --- /dev/null +++ b/notes/logic/propositional.md @@ -0,0 +1,240 @@ +--- +title: Propositional Logic +TARGET DECK: Obsidian::STEM +FILE TAGS: logic::propositional +tags: + - logic + - propositional +--- + +## Overview + +A branch of logic derived from negation ($\neg$), conjunction ($\land$), disjunction ($\lor$), implication ($\Rightarrow$), and biconditionals ($\Leftrightarrow$). There exists a hierarchy of terms used to describe a string of English: + +* A **sentence** is any grammatical string of words. +* A **predicate** is a sentence with free variables. +* A **statement** is a sentence that can be assigned a truth or false value. + * A predicate with free variables "plugged in" is a statement. + +%%ANKI +Basic +What are the basic propositional logical operators? +Back: $\neg$, $\land$, $\lor$, $\Rightarrow$, and $\Leftrightarrow$ +Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. + +END%% + +%%ANKI +Basic +What is a propositional statement? +Back: A declarative sentence which is either true or false. +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +What two categories do propositional statements fall within? +Back: Atomic and molecular statements. +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +What is an atomic statement? +Back: It cannot be broken up into smaller statements. +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +What is a molecular statement? +Back: It can be broken up into smaller statements. +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Cloze +A {molecular} statement can be broken up into {atomic} statements. +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +What distinguishes a sentence from a statement? +Back: The latter is a sentence that can be derived a truth value. +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +What distinguishes a sentence from a predicate? +Back: The latter is a sentence that contains free variables. +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +What distinguishes a predicate from a statement? +Back: A statement does not contain free variables. +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +How are statements defined in terms of predicates? +Back: A statement is a predicate with $0$ free variables. +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +Why is "$3 + x = 12$" *not* a statement? +Back: Because $x$ is a variable. +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +## Implication + +Implication is denoted as $\Rightarrow$. It has truth table + +$p$ | $q$ | $p \Rightarrow q$ +--- | --- | ----------------- +$T$ | $T$ | $T$ +$T$ | $F$ | $F$ +$F$ | $T$ | $T$ +$F$ | $F$ | $T$ + +Implication has a few "equivalent" English expressions that are commonly used. +Given propositions $P$ and $Q$, we have the following equivalences: + +* $P$ if $Q$ +* $P$ only if $Q$ +* $P$ is necessary for $Q$ +* $P$ is sufficient for $Q$ + +%%ANKI +Basic +What name is given to operand $a$ in $a \Rightarrow b$? +Back: The antecedent +Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. + +END%% + +%%ANKI +Basic +What name is given to operand $b$ in $a \Rightarrow b$? +Back: The consequent +Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. + +END%% + +%%ANKI +Basic +How does "$P$ if $Q$" translate with $\Rightarrow$? +Back: $Q \Rightarrow P$ +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +How does "$P$ only if $Q$" translate with $\Rightarrow$? +Back: $P \Rightarrow Q$ +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +How does "$P$ is necessary for $Q$" translate with $\Rightarrow$? +Back: $Q \Rightarrow P$ +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +How does "$P$ is sufficient for $Q$" translate with $\Rightarrow$? +Back: $P \Rightarrow Q$ +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +Which of *if*/*only if* map to *necessary*? +Back: *if* +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +Which of *if*/*only if* map to *sufficient*? +Back: *only if* +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +Which logical operator maps to "if and only if"? +Back: $\Leftrightarrow$ +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +Which logical operator maps to "necessary and sufficient"? +Back: $\Leftrightarrow$ +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +What is the converse of $P \Rightarrow Q$? +Back: $Q \Rightarrow P$ +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +When is implication equivalent to its converse? +Back: It's indeterminate. +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +What is the contrapositive of $P \Rightarrow Q$? +Back: $\neg Q \Rightarrow \neg P$ +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +%%ANKI +Basic +When is implication equivalent to its contrapositive? +Back: They are always equivalent. +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + +## References + +* Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. +* Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). diff --git a/notes/logic/quantification.md b/notes/logic/quantification.md index b5d4bd2..c2a1c53 100644 --- a/notes/logic/quantification.md +++ b/notes/logic/quantification.md @@ -53,6 +53,14 @@ Reference: Gries, David. *The Science of Programming*. Texts and Monographs in END%% +%%ANKI +Basic +What term refers to $S$ in $\exists x : S, P(x)$? +Back: The domain of discourse. +Reference: Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). + +END%% + %%ANKI Basic What is the identity element of $\lor$? @@ -227,4 +235,5 @@ END%% ## References -* Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. \ No newline at end of file +* Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981. +* Oscar Levin, *Discrete Mathematics: An Open Introduction*, 3rd ed., n.d., [https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf](https://discrete.openmathbooks.org/pdfs/dmoi3-tablet.pdf). \ No newline at end of file