Integer encodings and discrete math.
parent
5fdd0b718e
commit
ae71557589
|
@ -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": [
|
||||
|
|
|
@ -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".
|
|
@ -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".
|
|
@ -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).
|
||||
<!--ID: 1708117310004-->
|
||||
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).
|
||||
<!--ID: 1708117310011-->
|
||||
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).
|
||||
<!--ID: 1708117310015-->
|
||||
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).
|
||||
<!--ID: 1708117310018-->
|
||||
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).
|
||||
<!--ID: 1708117310021-->
|
||||
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).
|
||||
<!--ID: 1708174545522-->
|
||||
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).
|
||||
<!--ID: 1708174545527-->
|
||||
END%%
|
||||
|
||||
## References
|
||||
|
||||
* Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
|
@ -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
|
||||
<!--ID: 1708177246087-->
|
||||
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
|
||||
<!--ID: 1708177246093-->
|
||||
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.
|
||||
<!--ID: 1708177246097-->
|
||||
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.
|
||||
<!--ID: 1708177246102-->
|
||||
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.
|
||||
<!--ID: 1708177246105-->
|
||||
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.
|
||||
<!--ID: 1708177246109-->
|
||||
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.
|
||||
<!--ID: 1708177246114-->
|
||||
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.
|
||||
<!--ID: 1708177246119-->
|
||||
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.
|
||||
<!--ID: 1708177246123-->
|
||||
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.
|
||||
<!--ID: 1708177246128-->
|
||||
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.
|
||||
<!--ID: 1708177246133-->
|
||||
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.
|
||||
<!--ID: 1708177246138-->
|
||||
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.
|
||||
<!--ID: 1708177246143-->
|
||||
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.
|
||||
<!--ID: 1708177246148-->
|
||||
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.
|
||||
<!--ID: 1708179147785-->
|
||||
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.
|
||||
<!--ID: 1708179147791-->
|
||||
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.
|
||||
<!--ID: 1708179147795-->
|
||||
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.
|
||||
<!--ID: 1708179147798-->
|
||||
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.
|
||||
<!--ID: 1708179147801-->
|
||||
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.
|
||||
<!--ID: 1708179147804-->
|
||||
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.
|
||||
<!--ID: 1708179147807-->
|
||||
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.
|
||||
<!--ID: 1708179147810-->
|
||||
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.
|
||||
<!--ID: 1708177246128-->
|
||||
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.
|
||||
<!--ID: 1708179147813-->
|
||||
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.
|
||||
<!--ID: 1708179649872-->
|
||||
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.
|
||||
<!--ID: 1708179649876-->
|
||||
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.
|
||||
<!--ID: 1708179649881-->
|
||||
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.
|
||||
<!--ID: 1708179649887-->
|
||||
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.
|
||||
<!--ID: 1708179649894-->
|
||||
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.
|
||||
<!--ID: 1708179649901-->
|
||||
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.
|
||||
<!--ID: 1708179649907-->
|
||||
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.
|
||||
<!--ID: 1708179649913-->
|
||||
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.
|
||||
<!--ID: 1708179649921-->
|
||||
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.
|
||||
<!--ID: 1708179649928-->
|
||||
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.
|
||||
<!--ID: 1708179649935-->
|
||||
END%%
|
||||
|
||||
## References
|
||||
|
||||
* Bryant, Randal E., and David O'Hallaron. *Computer Systems: A Programmer's Perspective*. Third edition, Global edition. Always Learning. Pearson, 2016.
|
|
@ -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
|
|||
<!--ID: 1707422675517-->
|
||||
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.
|
||||
<!--ID: 1706994861291-->
|
||||
END%%
|
||||
|
||||
%%ANKI
|
||||
Cloze
|
||||
Gries replaces logical operator {$\Leftrightarrow$} in favor of {$=$}.
|
||||
|
@ -72,22 +64,6 @@ Tags: lean
|
|||
<!--ID: 1706994861302-->
|
||||
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.
|
||||
<!--ID: 1706994861308-->
|
||||
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.
|
||||
<!--ID: 1706994861310-->
|
||||
END%%
|
||||
|
||||
%%ANKI
|
||||
Basic
|
||||
Is $(b \land c)$ well-defined in $\{(b, T), (c, F)\}$?
|
||||
|
|
|
@ -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.
|
||||
<!--ID: 1706994861291-->
|
||||
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).
|
||||
<!--ID: 1708199272076-->
|
||||
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).
|
||||
<!--ID: 1708199272083-->
|
||||
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).
|
||||
<!--ID: 1708199272087-->
|
||||
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).
|
||||
<!--ID: 1708199272091-->
|
||||
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).
|
||||
<!--ID: 1708199272095-->
|
||||
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).
|
||||
<!--ID: 1708199272099-->
|
||||
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).
|
||||
<!--ID: 1708199272103-->
|
||||
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).
|
||||
<!--ID: 1708199272110-->
|
||||
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).
|
||||
<!--ID: 1708199272115-->
|
||||
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).
|
||||
<!--ID: 1708199272121-->
|
||||
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.
|
||||
<!--ID: 1706994861308-->
|
||||
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.
|
||||
<!--ID: 1706994861310-->
|
||||
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).
|
||||
<!--ID: 1708199272127-->
|
||||
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).
|
||||
<!--ID: 1708199272134-->
|
||||
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).
|
||||
<!--ID: 1708199272140-->
|
||||
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).
|
||||
<!--ID: 1708199272145-->
|
||||
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).
|
||||
<!--ID: 1708199272151-->
|
||||
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).
|
||||
<!--ID: 1708199272157-->
|
||||
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).
|
||||
<!--ID: 1708199272163-->
|
||||
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).
|
||||
<!--ID: 1708199272168-->
|
||||
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).
|
||||
<!--ID: 1708199272173-->
|
||||
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).
|
||||
<!--ID: 1708199272178-->
|
||||
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).
|
||||
<!--ID: 1708199272184-->
|
||||
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).
|
||||
<!--ID: 1708199272189-->
|
||||
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).
|
|
@ -53,6 +53,14 @@ Reference: Gries, David. *The Science of Programming*. Texts and Monographs in
|
|||
<!--ID: 1707494819968-->
|
||||
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).
|
||||
<!--ID: 1708199272194-->
|
||||
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.
|
||||
* 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).
|
Loading…
Reference in New Issue