More "Science of Programming" and `awk`.
parent
bbf5bf459e
commit
3e5bb9b9a7
|
@ -1,3 +1,4 @@
|
||||||
{
|
{
|
||||||
"alwaysUpdateLinks": true
|
"alwaysUpdateLinks": true,
|
||||||
|
"spellcheck": false
|
||||||
}
|
}
|
|
@ -75,16 +75,16 @@
|
||||||
"Added Media": [],
|
"Added Media": [],
|
||||||
"File Hashes": {
|
"File Hashes": {
|
||||||
"algorithms/index.md": "1583c07edea4736db27c38fe2b6c4c31",
|
"algorithms/index.md": "1583c07edea4736db27c38fe2b6c4c31",
|
||||||
"algorithms/sorting/index.md": "3dea2ae728a19fa2d877711fa319ed87",
|
"algorithms/sorting/index.md": "7b3b43d63ab2143e1314bb1b4e8392d2",
|
||||||
"algorithms/sorting/insertion-sort.md": "c78c9983f87cdc4198f82803d418967f",
|
"algorithms/sorting/insertion-sort.md": "6ad645860c9c281eb8eb06c93135746f",
|
||||||
"bash/index.md": "3b5296277f095acdf16655adcdf524af",
|
"bash/index.md": "3b5296277f095acdf16655adcdf524af",
|
||||||
"bash/prompts.md": "61cb877e68da040a15b85af76b1f68ba",
|
"bash/prompts.md": "61cb877e68da040a15b85af76b1f68ba",
|
||||||
"bash/quoting.md": "b1d8869a91001f8b22f0cdc54d806f61",
|
"bash/quoting.md": "b1d8869a91001f8b22f0cdc54d806f61",
|
||||||
"bash/robustness.md": "7ab094b95ba2bfa885adba8e9efedf68",
|
"bash/robustness.md": "7ab094b95ba2bfa885adba8e9efedf68",
|
||||||
"bash/shebang.md": "9006547710f9a079a3666169fbeda7aa",
|
"bash/shebang.md": "9006547710f9a079a3666169fbeda7aa",
|
||||||
"c/escape-sequences.md": "07f0811b0fff14f54f78abc33f2e6606",
|
"c/escape-sequences.md": "0d6219ebb51f6f21e026de67603e25b8",
|
||||||
"c/index.md": "aa8a34c62e7bc284ff589e28609222dc",
|
"c/index.md": "aa8a34c62e7bc284ff589e28609222dc",
|
||||||
"gawk/index.md": "0263448c8ae1ecfc0eacc4788f8402e9",
|
"gawk/index.md": "d23f281fcfef7169a1ab68b974359c5b",
|
||||||
"gawk/variables.md": "4482c297e7f4f5987f42f1926a880ca7",
|
"gawk/variables.md": "4482c297e7f4f5987f42f1926a880ca7",
|
||||||
"index.md": "e48e895feeed7046425bb2ee15419770",
|
"index.md": "e48e895feeed7046425bb2ee15419770",
|
||||||
"journal/2024-01-31.md": "7c7fbfccabc316f9e676826bf8dfe970",
|
"journal/2024-01-31.md": "7c7fbfccabc316f9e676826bf8dfe970",
|
||||||
|
@ -92,16 +92,26 @@
|
||||||
"journal/2024-02-02.md": "a3b222daee8a50bce4cbac699efc7180",
|
"journal/2024-02-02.md": "a3b222daee8a50bce4cbac699efc7180",
|
||||||
"journal/2024-02-03.md": "c6d411f0e2e964270399dd3a99f48382",
|
"journal/2024-02-03.md": "c6d411f0e2e964270399dd3a99f48382",
|
||||||
"logic/index.md": "3084b41fe1451259a0cf3e54560c2e85",
|
"logic/index.md": "3084b41fe1451259a0cf3e54560c2e85",
|
||||||
"logic/propositional.md": "45aee8bf688aa8fef4b136145085d38a",
|
"logic/propositional.md": "e7dbb24674336beb44dc9ef4c9ae51ff",
|
||||||
"lua/index.md": "26632dae1f852519e2f1af11d65c34eb",
|
"lua/index.md": "26632dae1f852519e2f1af11d65c34eb",
|
||||||
"nix/callPackage.md": "59796c480e2856fa7491f62ceb7e3c9c",
|
"nix/callPackage.md": "59796c480e2856fa7491f62ceb7e3c9c",
|
||||||
"nix/index.md": "dd5ddd19e95d9bdbe020c68974d77a33",
|
"nix/index.md": "dd5ddd19e95d9bdbe020c68974d77a33",
|
||||||
"posix/index.md": "f7b1ae55f8f5e8f50f89738b1aca9111",
|
"posix/index.md": "f7b1ae55f8f5e8f50f89738b1aca9111",
|
||||||
"posix/signals.md": "2120ddd933fc0d57abb93c33f639afd8",
|
"posix/signals.md": "2120ddd933fc0d57abb93c33f639afd8",
|
||||||
"templates/daily.md": "7866014e730e85683155207a02e367d8",
|
"templates/daily.md": "7866014e730e85683155207a02e367d8",
|
||||||
"posix/regexp.md": "d7effae06677d559b15180ce30f1d306",
|
"posix/regexp.md": "2529451da41c81b891ea8ce82cca549e",
|
||||||
"journal/2024-02-04.md": "e2b5678fc53d7284b71ed6820c02b954",
|
"journal/2024-02-04.md": "e2b5678fc53d7284b71ed6820c02b954",
|
||||||
"gawk/regexp.md": "2dbc2548ed9212ddac8e8f66d979b5b7"
|
"gawk/regexp.md": "dbd5f9f85a2658b304a635a47379e871",
|
||||||
|
"_templates/daily.md": "7866014e730e85683155207a02e367d8",
|
||||||
|
"_journal/2024-02-05.md": "f8505abd415c50fd97c81fd6153a6d4f",
|
||||||
|
"_journal/2024-02-06.md": "1ea415f3c3f5be17f796b9a0d4df565f",
|
||||||
|
"_journal/2024-02-04.md": "f77a3c5f3ce7969120f226738836dc92",
|
||||||
|
"_journal/2024-02-03.md": "c6d411f0e2e964270399dd3a99f48382",
|
||||||
|
"_journal/2024-02-02.md": "a3b222daee8a50bce4cbac699efc7180",
|
||||||
|
"_journal/2024-02-01.md": "3aa232387d2dc662384976fd116888eb",
|
||||||
|
"_journal/2024-01-31.md": "7c7fbfccabc316f9e676826bf8dfe970",
|
||||||
|
"logic/equiv-trans.md": "82a3376977bc5579fba5f9201c9f2c14",
|
||||||
|
"_journal/2024-02-07.md": "9197386e8caaf9502f12fdc10d68fa9f"
|
||||||
},
|
},
|
||||||
"fields_dict": {
|
"fields_dict": {
|
||||||
"Basic": [
|
"Basic": [
|
||||||
|
|
|
@ -2,10 +2,12 @@
|
||||||
title: "2024-02-04"
|
title: "2024-02-04"
|
||||||
---
|
---
|
||||||
|
|
||||||
- [ ] Anki Flashcards
|
- [x] Anki Flashcards
|
||||||
- [x] KoL
|
- [x] KoL
|
||||||
- [ ] Sheet Music (10 min.)
|
- [ ] Sheet Music (10 min.)
|
||||||
- [ ] OGS (1 Life & Death Problem)
|
- [ ] OGS (1 Life & Death Problem)
|
||||||
- [ ] Korean (Read 1 Story)
|
- [ ] Korean (Read 1 Story)
|
||||||
- [ ] Interview Prep (1 Practice Problem)
|
- [ ] Interview Prep (1 Practice Problem)
|
||||||
- [ ] Log Work Hours (Max 3 hours)
|
- [ ] Log Work Hours (Max 3 hours)
|
||||||
|
|
||||||
|
* Today was spent primarily traveling.
|
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
title: "2024-02-04"
|
||||||
|
---
|
||||||
|
|
||||||
|
- [x] Anki Flashcards
|
||||||
|
- [ ] 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)
|
||||||
|
|
||||||
|
* Today was spent mostly hanging out with Brittany and Katie.
|
||||||
|
* I spent a brief amount of time thinking about the equivalence-transformation system described by Gries.
|
|
@ -8,6 +8,7 @@ title: "2024-02-06"
|
||||||
- [ ] OGS (1 Life & Death Problem)
|
- [ ] OGS (1 Life & Death Problem)
|
||||||
- [ ] Korean (Read 1 Story)
|
- [ ] Korean (Read 1 Story)
|
||||||
- [ ] Interview Prep (1 Practice Problem)
|
- [ ] Interview Prep (1 Practice Problem)
|
||||||
- [ ] Log Work Hours (Max 3 hours)
|
- [x] Log Work Hours (Max 3 hours)
|
||||||
|
|
||||||
*
|
* Continued reading about `awk` regular expressions. Finished Chapter 3 of "GAWK: Effective AWK Programming".
|
||||||
|
* Translated more notes on equivalence-transformation.
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
title: "2024-02-07"
|
||||||
|
---
|
||||||
|
|
||||||
|
- [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)
|
||||||
|
|
||||||
|
* Read section 4.1 of "GAWK: Effective AWK Programming".
|
|
@ -14,21 +14,21 @@ Let $n \geq 0$. The **sorting problem** refers to permuting **records** $a_1, a_
|
||||||
%%ANKI
|
%%ANKI
|
||||||
Cloze
|
Cloze
|
||||||
In the sorting problem, a "{record}" refers to {the entries being sorted}.
|
In the sorting problem, a "{record}" refers to {the entries being sorted}.
|
||||||
Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
<!--ID: 1706981319280-->
|
<!--ID: 1706981319280-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
%%ANKI
|
%%ANKI
|
||||||
Cloze
|
Cloze
|
||||||
In the sorting problem, a "{key}" refers to {the value records are sorted by}.
|
In the sorting problem, a "{key}" refers to {the value records are sorted by}.
|
||||||
Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
<!--ID: 1706981319310-->
|
<!--ID: 1706981319310-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
%%ANKI
|
%%ANKI
|
||||||
Cloze
|
Cloze
|
||||||
In the sorting problem, "{satellite data}" refers to {the non-key values of records}.
|
In the sorting problem, "{satellite data}" refers to {the non-key values of records}.
|
||||||
Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
<!--ID: 1706981319317-->
|
<!--ID: 1706981319317-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ END%%
|
||||||
Basic
|
Basic
|
||||||
What term does Cormen et al. use to describe the record value used for sorting?
|
What term does Cormen et al. use to describe the record value used for sorting?
|
||||||
Back: Keys.
|
Back: Keys.
|
||||||
Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
<!--ID: 1706981319324-->
|
<!--ID: 1706981319324-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ END%%
|
||||||
Basic
|
Basic
|
||||||
What makes a sorting algorithm stable?
|
What makes a sorting algorithm stable?
|
||||||
Back: "Equal" values are ordered the same in the output as they are in the input.
|
Back: "Equal" values are ordered the same in the output as they are in the input.
|
||||||
Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
<!--ID: 1706925787139-->
|
<!--ID: 1706925787139-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ END%%
|
||||||
Basic
|
Basic
|
||||||
What is an in place sorting algorithm?
|
What is an in place sorting algorithm?
|
||||||
Back: One in which only a constant number of input values are ever stored outside the array.
|
Back: One in which only a constant number of input values are ever stored outside the array.
|
||||||
Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
<!--ID: 1706925787146-->
|
<!--ID: 1706925787146-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ END%%
|
||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
* Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
* Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
* “Kernel — Elixir v1.16.1,” accessed February 2, 2024, [https://hexdocs.pm/elixir/1.16/Kernel.html#module-structural-comparison](https://hexdocs.pm/elixir/1.16/Kernel.html#module-structural-comparison).
|
* “Kernel — Elixir v1.16.1,” accessed February 2, 2024, [https://hexdocs.pm/elixir/1.16/Kernel.html#module-structural-comparison](https://hexdocs.pm/elixir/1.16/Kernel.html#module-structural-comparison).
|
||||||
|
|
||||||
[^structural]: [Structural Comparison](https://hexdocs.pm/elixir/1.16/Kernel.html#module-structural-comparison)
|
[^structural]: [Structural Comparison](https://hexdocs.pm/elixir/1.16/Kernel.html#module-structural-comparison)
|
|
@ -24,7 +24,7 @@ Insertion sort works by advancing an index `i` through an array `A[1..n]` such t
|
||||||
Basic
|
Basic
|
||||||
What is insertion sort's best case runtime?
|
What is insertion sort's best case runtime?
|
||||||
Back: $O(n)$
|
Back: $O(n)$
|
||||||
Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
<!--ID: 1706925879541-->
|
<!--ID: 1706925879541-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ END%%
|
||||||
Basic
|
Basic
|
||||||
What input value does insertion sort perform best on?
|
What input value does insertion sort perform best on?
|
||||||
Back: An already sorted array.
|
Back: An already sorted array.
|
||||||
Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
<!--ID: 1706925921544-->
|
<!--ID: 1706925921544-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ END%%
|
||||||
Basic
|
Basic
|
||||||
What is insertion sort's worst case runtime?
|
What is insertion sort's worst case runtime?
|
||||||
Back: $O(n^2)$
|
Back: $O(n^2)$
|
||||||
Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
<!--ID: 1706926586947-->
|
<!--ID: 1706926586947-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ END%%
|
||||||
Basic
|
Basic
|
||||||
What input value does insertion sort perform worst on?
|
What input value does insertion sort perform worst on?
|
||||||
Back: An array in reverse-sorted order.
|
Back: An array in reverse-sorted order.
|
||||||
Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
<!--ID: 1706926586951-->
|
<!--ID: 1706926586951-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ END%%
|
||||||
Basic
|
Basic
|
||||||
Is insertion sort in place?
|
Is insertion sort in place?
|
||||||
Back: Yes
|
Back: Yes
|
||||||
Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
<!--ID: 1706926586955-->
|
<!--ID: 1706926586955-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ END%%
|
||||||
Basic
|
Basic
|
||||||
Is insertion sort stable?
|
Is insertion sort stable?
|
||||||
Back: Yes
|
Back: Yes
|
||||||
Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
<!--ID: 1706926586959-->
|
<!--ID: 1706926586959-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ void insertion_sort(const int n, int A[static n]) {
|
||||||
Basic
|
Basic
|
||||||
What loop invariant is maintained in insertion sort?
|
What loop invariant is maintained in insertion sort?
|
||||||
Back: `A[1..i]` is in sorted order.
|
Back: `A[1..i]` is in sorted order.
|
||||||
Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
<!--ID: 1706927594718-->
|
<!--ID: 1706927594718-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ If you repeat this process for every card in the deck, your left hand will event
|
||||||
Basic
|
Basic
|
||||||
What analogy does Cormen et al. use to explain insertion sort?
|
What analogy does Cormen et al. use to explain insertion sort?
|
||||||
Back: Sorting a shuffled deck of playing cards.
|
Back: Sorting a shuffled deck of playing cards.
|
||||||
Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
<!--ID: 1706927594729-->
|
<!--ID: 1706927594729-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -107,10 +107,10 @@ END%%
|
||||||
Basic
|
Basic
|
||||||
What invariant does the left hand maintain in Cormen et al.'s insertion sort analogy?
|
What invariant does the left hand maintain in Cormen et al.'s insertion sort analogy?
|
||||||
Back: It contains all drawn cards in sorted order.
|
Back: It contains all drawn cards in sorted order.
|
||||||
Reference: Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
Reference: Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
<!--ID: 1706927594732-->
|
<!--ID: 1706927594732-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
* Thomas H. Cormen et al., _Introduction to Algorithms_, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
* Thomas H. Cormen et al., *Introduction to Algorithms*, 3rd ed (Cambridge, Mass: MIT Press, 2009).
|
||||||
|
|
|
@ -19,7 +19,7 @@ C has a standard for processing different escape sequences. Many languages built
|
||||||
Basic
|
Basic
|
||||||
How are C escape sequences for octal digits denoted?
|
How are C escape sequences for octal digits denoted?
|
||||||
Back: As `\ooo`.
|
Back: As `\ooo`.
|
||||||
Reference: Brian W. Kernighan and Dennis M. Ritchie, _The C Programming Language_, 2nd ed (Englewood Cliffs, N.J: Prentice Hall, 1988).
|
Reference: Brian W. Kernighan and Dennis M. Ritchie, *The C Programming Language*, 2nd ed (Englewood Cliffs, N.J: Prentice Hall, 1988).
|
||||||
<!--ID: 1706975891805-->
|
<!--ID: 1706975891805-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ END%%
|
||||||
Basic
|
Basic
|
||||||
In C, `\ooo` allows specifying how many octal digits?
|
In C, `\ooo` allows specifying how many octal digits?
|
||||||
Back: One to three.
|
Back: One to three.
|
||||||
Reference: Brian W. Kernighan and Dennis M. Ritchie, _The C Programming Language_, 2nd ed (Englewood Cliffs, N.J: Prentice Hall, 1988).
|
Reference: Brian W. Kernighan and Dennis M. Ritchie, *The C Programming Language*, 2nd ed (Englewood Cliffs, N.J: Prentice Hall, 1988).
|
||||||
<!--ID: 1706975891810-->
|
<!--ID: 1706975891810-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ END%%
|
||||||
Basic
|
Basic
|
||||||
How are C escape sequences for hexadecimal digits denoted?
|
How are C escape sequences for hexadecimal digits denoted?
|
||||||
Back: As `\xhh`.
|
Back: As `\xhh`.
|
||||||
Reference: Brian W. Kernighan and Dennis M. Ritchie, _The C Programming Language_, 2nd ed (Englewood Cliffs, N.J: Prentice Hall, 1988).
|
Reference: Brian W. Kernighan and Dennis M. Ritchie, *The C Programming Language*, 2nd ed (Englewood Cliffs, N.J: Prentice Hall, 1988).
|
||||||
<!--ID: 1706975891820-->
|
<!--ID: 1706975891820-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ END%%
|
||||||
Basic
|
Basic
|
||||||
In C, `\x` allows specifying how many hexadecimal digits?
|
In C, `\x` allows specifying how many hexadecimal digits?
|
||||||
Back: One or more.
|
Back: One or more.
|
||||||
Reference: Brian W. Kernighan and Dennis M. Ritchie, _The C Programming Language_, 2nd ed (Englewood Cliffs, N.J: Prentice Hall, 1988).
|
Reference: Brian W. Kernighan and Dennis M. Ritchie, *The C Programming Language*, 2nd ed (Englewood Cliffs, N.J: Prentice Hall, 1988).
|
||||||
<!--ID: 1706975891824-->
|
<!--ID: 1706975891824-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ END%%
|
||||||
## References
|
## References
|
||||||
|
|
||||||
* Arnold D. Robbins, “GAWK: Effective AWK Programming,” October 2023, [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf).
|
* Arnold D. Robbins, “GAWK: Effective AWK Programming,” October 2023, [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf).
|
||||||
* Brian W. Kernighan and Dennis M. Ritchie, _The C Programming Language_, 2nd ed (Englewood Cliffs, N.J: Prentice Hall, 1988).
|
* Brian W. Kernighan and Dennis M. Ritchie, *The C Programming Language*, 2nd ed (Englewood Cliffs, N.J: Prentice Hall, 1988).
|
||||||
* Jens Gustedt, _Modern C_ (Shelter Island, NY: Manning Publications Co, 2020).
|
* Jens Gustedt, _Modern C_ (Shelter Island, NY: Manning Publications Co, 2020).
|
||||||
* Mendel Cooper, “Advanced Bash-Scripting Guide,” n.d., 916.
|
* Mendel Cooper, “Advanced Bash-Scripting Guide,” n.d., 916.
|
||||||
* Roberto Ierusalimschy, _Programming in Lua_, Fourth edition (Rio de Janeiro: Lua.org, 2016).
|
* Roberto Ierusalimschy, _Programming in Lua_, Fourth edition (Rio de Janeiro: Lua.org, 2016).
|
|
@ -119,12 +119,89 @@ Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 202
|
||||||
<!--ID: 1706822165641-->
|
<!--ID: 1706822165641-->
|
||||||
END%%
|
END%%
|
||||||
|
|
||||||
**Targets** are specified as `$n` where `n` is a placeholder for the `n`th whitespace-separated **field**s of the input line. For example, `$1` refers to the first field of the input line. `$0` is a special target referring to the entire list of arguments, i.e. the entire line.
|
`awk` reads in files in units called **records**. Each record is automatically broken up into chunks called **fields**. By default, a record corresponds to a single line. `$0` would then refer to the entire line and `$1` would refer to the first field of this line.
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
In `awk`, what does a "record" refer to?
|
||||||
|
Back: The unit that input is read in.
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707310981378-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What is the default record separator?
|
||||||
|
Back: The newline character.
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707310981380-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Cloze
|
||||||
|
The {`RS`} variable is used to change the {record separator}.
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707310981382-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Cloze
|
||||||
|
If `RS` is a string with {more than one character}, it is treated as a {regexp}.
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707310981384-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Cloze
|
||||||
|
The {`RT`} variable matches the {input characters that matched `RS`}.
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707310981386-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
Barring the final record, when is `RT` always equal to `RS`?
|
||||||
|
Back: When `RS` is a string containing a single character.
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707310981388-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What value of `RS` may `gawk` not process correctly?
|
||||||
|
Back: A regexp with optional trailing part, e.g. `AB(XYZ)?`.
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707310981390-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What implementation detail inspires avoiding `RS = "\0"`?
|
||||||
|
Back: Most `awk` implementations store strings internally as C-style strings?
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707310981392-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What equivalent assignment do most `awk` implementations interpret `RS = "\0"` as?
|
||||||
|
Back: `RS = ""`
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707310981394-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
In `awk`, what does a "field" refer to?
|
||||||
|
Back: A specific part of a record.
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707310981395-->
|
||||||
|
END%%
|
||||||
|
|
||||||
%%ANKI
|
%%ANKI
|
||||||
Basic
|
Basic
|
||||||
What is `$0` a placeholder for?
|
What is `$0` a placeholder for?
|
||||||
Back: The entire input line.
|
Back: An entire record.
|
||||||
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
<!--ID: 1706823790230-->
|
<!--ID: 1706823790230-->
|
||||||
END%%
|
END%%
|
||||||
|
@ -132,7 +209,7 @@ END%%
|
||||||
%%ANKI
|
%%ANKI
|
||||||
Basic
|
Basic
|
||||||
What is `$1` a placeholder for?
|
What is `$1` a placeholder for?
|
||||||
Back: The first field of the input line.
|
Back: The first field of a record.
|
||||||
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
<!--ID: 1706823790233-->
|
<!--ID: 1706823790233-->
|
||||||
END%%
|
END%%
|
||||||
|
@ -159,7 +236,7 @@ Describe what the following command does in in a single sentence:
|
||||||
```bash
|
```bash
|
||||||
$ awk 'NF > 0' data
|
$ awk 'NF > 0' data
|
||||||
```
|
```
|
||||||
Back: Prints every line of `data` with at least one field.
|
Back: Prints every record in `data` with at least one field.
|
||||||
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
<!--ID: 1706823927382-->
|
<!--ID: 1706823927382-->
|
||||||
END%%
|
END%%
|
||||||
|
@ -170,7 +247,7 @@ Describe what the following command does in in a single sentence:
|
||||||
```bash
|
```bash
|
||||||
$ awk 'END { print NR }' data
|
$ awk 'END { print NR }' data
|
||||||
```
|
```
|
||||||
Back: Prints the number of lines in `data`.
|
Back: Prints the number of records in `data`.
|
||||||
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
<!--ID: 1706824091124-->
|
<!--ID: 1706824091124-->
|
||||||
END%%
|
END%%
|
||||||
|
@ -181,7 +258,7 @@ Describe what the following command does in in a single sentence:
|
||||||
```bash
|
```bash
|
||||||
$ awk 'NR % 2 == 0' data
|
$ awk 'NR % 2 == 0' data
|
||||||
```
|
```
|
||||||
Back: Prints every even-numbered line in `data`.
|
Back: Prints every even-numbered record in `data`.
|
||||||
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
<!--ID: 1706824091128-->
|
<!--ID: 1706824091128-->
|
||||||
END%%
|
END%%
|
||||||
|
|
|
@ -20,6 +20,64 @@ $ awk '$1 ~ /li/' data
|
||||||
|
|
||||||
`awk`'s implementation of regexps are a superset of [[posix/regexp|POSIX EREs]].
|
`awk`'s implementation of regexps are a superset of [[posix/regexp|POSIX EREs]].
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What is the result of the following?
|
||||||
|
```bash
|
||||||
|
$ echo aaaabcd | awk '{ sub(/a+/, "<A>"); print }'
|
||||||
|
```
|
||||||
|
Back: `<A>bcd`
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707231831794-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Cloze
|
||||||
|
In `awk`, `/.../` is to a {regexp} constant whereas `"..."` is to a {string} constant.
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707232573706-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
How are string constants processed differently from regexp constants?
|
||||||
|
Back: The string constant is scanned twice.
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707232573708-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What term describes a regexp that isn't a regexp constant?
|
||||||
|
Back: A dynamic regexp.
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707232573710-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
How is `*` escaped in a regexp constant?
|
||||||
|
Back: `/\*/`
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707232573712-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
How is `*` escaped in a string constant (dynamic regexp)?
|
||||||
|
Back: `"\\*"`
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707232573713-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
Why is it recommended to avoid using `^`/`$` in `RS`?
|
||||||
|
Back: These anchors match the beginning/end of a string, not of a line.
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707310981375-->
|
||||||
|
END%%
|
||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
* Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
* Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
|
@ -0,0 +1,650 @@
|
||||||
|
---
|
||||||
|
title: Equivalence Transformation
|
||||||
|
TARGET DECK: Obsidian::STEM
|
||||||
|
FILE TAGS: logic::equiv-trans
|
||||||
|
tags:
|
||||||
|
- logic
|
||||||
|
- equiv-trans
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
Who is the author of "The Science of Programming"?
|
||||||
|
Back: David Gries
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861286-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What are the constant propositions?
|
||||||
|
Back: $T$ and $F$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861289-->
|
||||||
|
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 {$=$}.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861295-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
How does Lean define propositional equality?
|
||||||
|
Back: Expressions `a` and `b` are propositionally equal iff `a = b` is true.
|
||||||
|
Reference: Avigad, Jeremy. ‘Theorem Proving in Lean’, n.d.
|
||||||
|
Tags: lean
|
||||||
|
<!--ID: 1706994861298-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
How does Lean define `propext`?
|
||||||
|
Back:
|
||||||
|
```lean
|
||||||
|
axiom propext {a b : Prop} : (a ↔ b) → (a = b)
|
||||||
|
```
|
||||||
|
Reference: Avigad, Jeremy. ‘Theorem Proving in Lean’, n.d.
|
||||||
|
Tags: lean
|
||||||
|
<!--ID: 1706994861300-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What Lean theorem justifies Gries' choice of $=$ over $\Leftrightarrow$?
|
||||||
|
Back: `propext`
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
Tags: lean
|
||||||
|
<!--ID: 1706994861302-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What name is given to $\land$ operands?
|
||||||
|
Back: Conjuncts
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861304-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What name is given to $\lor$ operands?
|
||||||
|
Back: Disjuncts
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861306-->
|
||||||
|
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)\}$?
|
||||||
|
Back: Yes
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861318-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
Is $(b \lor d)$ well-defined in $\{(b, T), (c, F)\}$?
|
||||||
|
Back: No
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861320-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What C operator corresponds to $\neg$?
|
||||||
|
Back: `!`
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
Tags: c
|
||||||
|
<!--ID: 1706994861325-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What C operator corresponds to $\land$?
|
||||||
|
Back: There isn't one.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
Tags: c
|
||||||
|
<!--ID: 1706994861327-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What C operator corresponds to $\lor$?
|
||||||
|
Back: There isn't one.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
Tags: c
|
||||||
|
<!--ID: 1706994861329-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What C operator corresponds to $\Rightarrow$?
|
||||||
|
Back: There isn't one.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
Tags: c
|
||||||
|
<!--ID: 1706994861331-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What C operator corresponds to $\Leftrightarrow$?
|
||||||
|
Back: `==`
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
Tags: c
|
||||||
|
<!--ID: 1706994861333-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What proposition represents states $\{(b, T)\}$ and $\{(c, F)\}$?
|
||||||
|
Back: $b \lor \neg c$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861337-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What set of states does $a \land b$ represent?
|
||||||
|
Back: The set containing just state $\{(a, T), (b, T)\}$.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861339-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What is sloppy about phrase "the states in $b \lor \neg c$"?
|
||||||
|
Back: $b \lor \neg c$ is not a set but a representation of a set (of states).
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861341-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What is the weakest proposition?
|
||||||
|
Back: $T$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861348-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What set of states does $T$ represent?
|
||||||
|
Back: The set of all states.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861350-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What is the strongest proposition?
|
||||||
|
Back: $F$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861352-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What set of states does $F$ represent?
|
||||||
|
Back: The set of no states.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861354-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What does a proposition *represent*?
|
||||||
|
Back: The set of states in which it is true.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861335-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
When is $p$ stronger than $q$?
|
||||||
|
Back: When $p \Rightarrow q$.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861343-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
When is $p$ weaker than $q$?
|
||||||
|
Back: When $q \Rightarrow p$.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861346-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
A proposition is well-defined with respect to what?
|
||||||
|
Back: A state to evaluate against.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861316-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
Why is $b \land c$ stronger than $b \lor c$?
|
||||||
|
Back: The former represents a subset of the states the latter represents.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861356-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What is a state?
|
||||||
|
Back: A function mapping identifiers to values.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861314-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What are the two calculi Gries describes equivalence-transformation with?
|
||||||
|
Back: A formal system and a system of evaluation.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673342-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
## Equivalence Schemas
|
||||||
|
|
||||||
|
A proposition is said to be a **tautology** if it evaluates to $T$ in every state it is well-defined in. We say propositions $E1$ and $E2$ are **equivalent** if $E1 = E2$ is a tautology. In this case, we say $E1 = E2$ is an **equivalence**.
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What does it mean for a proposition to be a tautology?
|
||||||
|
Back: That the proposition is true in every state it is well-defined in.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861323-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
The term "equivalent" refers to a comparison between what two objects?
|
||||||
|
Back: Propositions.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673345-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What does it mean for two propositions to be equivalent?
|
||||||
|
Back: Given propositions $E1$ and $E2$, it means $E1 = E2$ is a tautology.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673347-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What is an equivalence?
|
||||||
|
Back: Given propositions $E1$ and $E2$, tautology $E1 = E2$.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673348-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
* Commutative Laws
|
||||||
|
* $(E1 \land E2) = (E2 \land E1)$
|
||||||
|
* $(E1 \lor E2) = (E2 \lor E1)$
|
||||||
|
* $(E1 = E2) = (E2 = E1)$
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
Which of the basic logical operators do the commutative laws apply to?
|
||||||
|
Back: $\land$, $\lor$, and $=$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673350-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What do the commutative laws allow us to do?
|
||||||
|
Back: Reorder operands.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673351-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What is the commutative law of e.g. $\land$?
|
||||||
|
Back: $E1 \land E2 = E2 \land E1$
|
||||||
|
<!--ID: 1707251673353-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
* Associative Laws
|
||||||
|
* $E1 \land (E2 \land E3) = (E1 \land E2) \land E3$
|
||||||
|
* $E1 \lor (E2 \lor E3) = (E1 \lor E2) \lor E3$
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
Which of the basic logical operators do the associative laws apply to?
|
||||||
|
Back: $\land$ and $\lor$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673354-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What do the associative laws allow us to do?
|
||||||
|
Back: Remove parentheses.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673355-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What is the associative law of e.g. $\land$?
|
||||||
|
Back: $E1 \land (E2 \land E3) = (E1 \land E2) \land E3$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673357-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
* Distributive Laws
|
||||||
|
* $E1 \lor (E2 \land E3) = (E1 \lor E2) \land (E1 \lor E3)$
|
||||||
|
* $E1 \land (E2 \lor E3) = (E1 \land E2) \lor (E1 \land E3)$
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
Which of the basic logical operators do the distributive laws apply to?
|
||||||
|
Back: $\land$ and $\lor$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673358-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What do the distributive laws allow us to do?
|
||||||
|
Back: "Factor" propositions.
|
||||||
|
Reference: Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673360-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What is the distributive law of e.g. $\land$ over $\lor$?
|
||||||
|
Back: $E1 \land (E2 \lor E3) = (E1 \land E2) \lor (E1 \land E3)$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673361-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
* De Morgan's Laws
|
||||||
|
* $\neg (E1 \land E2) = \neg E1 \lor \neg E2$
|
||||||
|
* $\neg (E1 \lor E2) = \neg E1 \land \neg E2$
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
Which of the basic logical operators do De Morgan's Laws apply to?
|
||||||
|
Back: $\land$ and $\lor$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673363-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What is De Morgan's Law of e.g. $\land$?
|
||||||
|
Back: $\neg (E1 \land E2) = \neg E1 \lor \neg E2$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673364-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
* Law of Negation
|
||||||
|
* $\neg (\neg E1) = E1$
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What does the Law of Negation say?
|
||||||
|
Back: $\neg (\neg E1) = E1$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673365-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
* Law of the Excluded Middle
|
||||||
|
* $E1 \lor \neg E1 = T$
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
Which of the basic logical operators does the Law of the Excluded Middle apply to?
|
||||||
|
Back: $\lor$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673367-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What does the Law of the Excluded Middle say?
|
||||||
|
Back: $E1 \lor \neg E1 = T$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673368-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
Which equivalence schema is "refuted" by sentence, "This sentence is false."
|
||||||
|
Back: Law of the Excluded Middle
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251779153-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
* Law of Contradiction
|
||||||
|
* $E1 \land \neg E1 = F$
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
Which of the basic logical operators does the Law of Contradiction apply to?
|
||||||
|
Back: $\land$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673370-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What does the Law of Contradiction say?
|
||||||
|
Back: $E1 \land \neg E1 = F$
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673371-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Cloze
|
||||||
|
The Law of {1:the Excluded Middle} is to {2:$\lor$} whereas the Law of {2:Contradiction} is to {1:$\land$}.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707251673373-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
Gries lists other "Laws" but they don't seem as important to note here.
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
How is $\Rightarrow$ written in terms of other logical operators?
|
||||||
|
Back: $p \Rightarrow q$ is equivalent to $\neg p \lor q$.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861358-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
How is $\Leftrightarrow$/$=$ written in terms of other logical operators?
|
||||||
|
Back: $p \Leftrightarrow q$ is equivalent to $(p \Rightarrow q) \land (q \Rightarrow p)$.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1706994861360-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
## Equivalence Rules
|
||||||
|
|
||||||
|
* Rule of Substitution
|
||||||
|
* Let $P(r)$ be a predicate and $E1 = E2$ be an equivalence. Then $P(E1) = P(E2)$ is an equivalence.
|
||||||
|
* Rule of Transitivity
|
||||||
|
* Let $E1 = E2$ and $E2 = E3$ be equivalences. Then $E1 = E3$ is an equivalence.
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What two inference rules make up the equivalence-transformation formal system?
|
||||||
|
Back: Substitution and transitivity.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707253246450-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What does the rule of substitution say in the system of evaluation?
|
||||||
|
Back: Let $P(r)$ be a predicate and $E1 = E2$ be an equivalence. Then $P(E1) = P(E2)$ is an equivalence.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707253246452-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
How is the rule of substitution written as an inference rule (in standard form)?
|
||||||
|
Back:
|
||||||
|
$$
|
||||||
|
\begin{matrix}
|
||||||
|
E1 = E2 \\
|
||||||
|
\hline P(E1) = P(E2)
|
||||||
|
\end{matrix}
|
||||||
|
$$
|
||||||
|
<!--ID: 1707253246454-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What does the rule of transitivity state in the system of evaluation?
|
||||||
|
Back: Let $E1 = E2$ and $E2 = E3$. Then $E1 = E3$.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707253246455-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
How is the rule of transitivity written as an inference rule (in standard form)?
|
||||||
|
Back:
|
||||||
|
$$
|
||||||
|
\begin{matrix}
|
||||||
|
E1 = E2, E2 = E3 \\
|
||||||
|
\hline E1 = E3
|
||||||
|
\end{matrix}
|
||||||
|
$$
|
||||||
|
<!--ID: 1707253246457-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Cloze
|
||||||
|
The system of evaluation has {equivalences} whereas the formal system has {theorems}.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707253246458-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
## Normal Forms
|
||||||
|
|
||||||
|
Every proposition can be written in **disjunctive normal form** (DNF) and **conjunctive normal form** (CNF). This is evident with the use of truth tables. To write a proposition in DNF, write its corresponding truth table and $\lor$ each row that evaluates to $T$. To write the same proposition in CNF, apply $\lor$ to each row that evaluates to $F$ and negate it.
|
||||||
|
|
||||||
|
$$\neg (a \Rightarrow b) \Leftrightarrow c$$
|
||||||
|
|
||||||
|
It's truth table looks like
|
||||||
|
|
||||||
|
$$\begin{array}{c|c|c|c|c|c}
|
||||||
|
\neg & (a & \Rightarrow & b) & \Leftrightarrow & c \\
|
||||||
|
\hline
|
||||||
|
F & T & T & T & F & T \\
|
||||||
|
F & T & T & T & T & F \\
|
||||||
|
T & T & F & F & T & T \\
|
||||||
|
T & T & F & F & F & F \\
|
||||||
|
F & F & T & T & F & T \\
|
||||||
|
F & F & T & T & T & F \\
|
||||||
|
F & F & T & F & F & T \\
|
||||||
|
F & F & T & F & T & F
|
||||||
|
\end{array}$$
|
||||||
|
|
||||||
|
and it's DNF looks like
|
||||||
|
|
||||||
|
$$
|
||||||
|
(a \land b \land \neg c) \lor
|
||||||
|
(a \land \neg b \land c) \lor
|
||||||
|
(\neg a \land b \land \neg c) \lor
|
||||||
|
(\neg a \land \neg b \land \neg c)
|
||||||
|
$$
|
||||||
|
|
||||||
|
It's CNF results from applying De Morgan's Law to the truth table's "complement":
|
||||||
|
|
||||||
|
$$
|
||||||
|
\neg(
|
||||||
|
(a \land b \land c) \lor
|
||||||
|
(a \land \neg b \land \neg c) \lor
|
||||||
|
(\neg a \land b \land c) \lor
|
||||||
|
(\neg a \land \neg b \land c)
|
||||||
|
)
|
||||||
|
$$
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What construct is used to prove every proposition can be written in DNF or CNF?
|
||||||
|
Back: Truth tables
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707311868994-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
Where are $\land$ and $\lor$ found within a proposition in DNF?
|
||||||
|
Back: $\lor$ separates disjuncts containing $\land$.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707311868998-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What is DNF an acronym for?
|
||||||
|
Back: **D**isjunctive **N**ormal **F**orm.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707311869000-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What is CNF an acronym for?
|
||||||
|
Back: **C**onjunctive **N**ormal **F**orm.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707311869002-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
Where are $\land$ and $\lor$ found within a proposition in CNF?
|
||||||
|
Back: $\land$ separates conjuncts containing $\lor$.
|
||||||
|
Reference: Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
||||||
|
<!--ID: 1707311869003-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
* Avigad, Jeremy. ‘Theorem Proving in Lean’, n.d.
|
||||||
|
* Gries, David. *The Science of Programming*. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
@ -1,307 +0,0 @@
|
||||||
---
|
|
||||||
title: Propositional Logic
|
|
||||||
TARGET DECK: Obsidian::STEM
|
|
||||||
FILE TAGS: logic::0-order
|
|
||||||
tags:
|
|
||||||
- logic
|
|
||||||
- 0-order
|
|
||||||
---
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
Propositional logic (or `0`-order logic) refers to the manipulation of **propositions** using the following five logical operators: $\neg$, $\land$, $\lor$, $\Rightarrow$, $\Leftrightarrow$.
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
Who is the author of "The Science of Programming"?
|
|
||||||
Back: David Gries
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861286-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
What are the constant propositions?
|
|
||||||
Back: $T$ and $F$
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861289-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
What are the five 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 {$=$}.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861295-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
How does Lean define propositional equality?
|
|
||||||
Back: Expressions `a` and `b` are propositionally equal iff `a = b` is true.
|
|
||||||
Reference: Avigad, Jeremy. ‘Theorem Proving in Lean’, n.d.
|
|
||||||
Tags: lean
|
|
||||||
<!--ID: 1706994861298-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
How does Lean define `propext`?
|
|
||||||
Back:
|
|
||||||
```lean
|
|
||||||
axiom propext {a b : Prop} : (a ↔ b) → (a = b)
|
|
||||||
```
|
|
||||||
Reference: Avigad, Jeremy. ‘Theorem Proving in Lean’, n.d.
|
|
||||||
Tags: lean
|
|
||||||
<!--ID: 1706994861300-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
What Lean theorem justifies Gries choice of $=$ over $\Leftrightarrow$?
|
|
||||||
Back: `propext`
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
Tags: lean
|
|
||||||
<!--ID: 1706994861302-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
What name is given to $\land$ operands?
|
|
||||||
Back: Conjuncts
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861304-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
What name is given to $\lor$ operands?
|
|
||||||
Back: Disjuncts
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861306-->
|
|
||||||
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
|
|
||||||
What does the evaluation model of propositional logic refer to?
|
|
||||||
Back: An interpretation of propositional logic that associates values to identifiers.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861312-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
Evaluation model. What is a state?
|
|
||||||
Back: A function mapping identifiers to values.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861314-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
What is necessary to determine if a proposition is well-defined?
|
|
||||||
Back: A state to evaluate against.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861316-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
Is $(b \land c)$ well-defined in $\{(b, T), (c, F)\}$?
|
|
||||||
Back: Yes
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861318-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
Is $(b \lor d)$ well-defined in $\{(b, T), (c, F)\}$?
|
|
||||||
Back: No
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861320-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
Evaluation model. What does it mean for a proposition to be a tautology?
|
|
||||||
Back: A proposition is true in every state it is well-defined in.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861323-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
What C operator corresponds to $\neg$?
|
|
||||||
Back: `!`
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
Tags: c
|
|
||||||
<!--ID: 1706994861325-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
What C operator corresponds to $\land$?
|
|
||||||
Back: There isn't one.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
Tags: c
|
|
||||||
<!--ID: 1706994861327-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
What C operator corresponds to $\lor$?
|
|
||||||
Back: There isn't one.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
Tags: c
|
|
||||||
<!--ID: 1706994861329-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
What C operator corresponds to $\Rightarrow$?
|
|
||||||
Back: There isn't one.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
Tags: c
|
|
||||||
<!--ID: 1706994861331-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
What C operator corresponds to $\Leftrightarrow$?
|
|
||||||
Back: `=`
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
Tags: c
|
|
||||||
<!--ID: 1706994861333-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
Evaluation model. What does a proposition *represent*?
|
|
||||||
Back: The set of states in which it is true.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861335-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
Evaluation model. What proposition represents states $\{(b, T)\}$ and $\{(c, F)\}$?
|
|
||||||
Back: $b \lor \neg c$
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861337-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
Evaluation model. What set of states does $a \land b$ represent?
|
|
||||||
Back: The set containing just state $\{(a, T), (b, T)\}$.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861339-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
Evaluation model. What is sloppy about phrase "the states in $b \lor \neg c$"?
|
|
||||||
Back: $b \lor \neg c$ is not a set.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861341-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
When is $p$ stronger than $q$?
|
|
||||||
Back: When $p \Rightarrow q$.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861343-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
When is $p$ weaker than $q$?
|
|
||||||
Back: When $q \Rightarrow p$.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861346-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
What is the weakest proposition?
|
|
||||||
Back: $T$
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861348-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
What set of states does $T$ represent?
|
|
||||||
Back: The set of all states.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861350-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
What is the strongest proposition?
|
|
||||||
Back: $F$
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861352-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
What set of states does $F$ represent?
|
|
||||||
Back: The set of no states.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861354-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
Evaluation model. Why is $b \land c$ stronger than $b \lor c$?
|
|
||||||
Back: The former represents a subset of the states the latter represents.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861356-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
How is $\Rightarrow$ written in terms of other logical operators?
|
|
||||||
Back: $p \Rightarrow q$ is equivalent to $\neg p \lor q$.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861358-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
%%ANKI
|
|
||||||
Basic
|
|
||||||
How is $\Leftrightarrow$ written in terms of other logical operators?
|
|
||||||
Back: $p \Leftrightarrow q$ is equivalent to $(p \Rightarrow q) \land (q \Rightarrow p)$.
|
|
||||||
Reference: Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
||||||
<!--ID: 1706994861360-->
|
|
||||||
END%%
|
|
||||||
|
|
||||||
## References
|
|
||||||
|
|
||||||
* Avigad, Jeremy. ‘Theorem Proving in Lean’, n.d.
|
|
||||||
* Gries, David. _The Science of Programming_. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
|
|
|
@ -8,7 +8,38 @@ tags:
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
The following ERE (**E**xtended **R**egular **E**xpression) operators were defined to achieve consistency between programs like `grep`, `sed`, and `awk`.
|
The following ERE (**E**xtended **R**egular **E**xpression) operators were defined to achieve consistency between programs like `grep`, `sed`, and `awk`. In POSIX, regexps are greedy.
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Cloze
|
||||||
|
Regular expressions are either {greedy} or {lazy}.
|
||||||
|
Reference: “POSIX Basic Regular Expressions,” accessed February 4, 2024, [https://en.wikibooks.org/wiki/Regular_Expressions/POSIX_Basic_Regular_Expressions](https://en.wikibooks.org/wiki/Regular_Expressions/POSIX_Basic_Regular_Expressions).
|
||||||
|
<!--ID: 1707231745948-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
Are POSIX regexps greedy or lazy?
|
||||||
|
Back: Greedy.
|
||||||
|
Reference: Robbins, Arnold D. “GAWK: Effective AWK Programming,” October 2023. [https://www.gnu.org/software/gawk/manual/gawk.pdf](https://www.gnu.org/software/gawk/manual/gawk.pdf)
|
||||||
|
<!--ID: 1707231745951-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What does it mean for a regexp to be greedy?
|
||||||
|
Back: The regexp matches as many characters as it can.
|
||||||
|
Reference: “POSIX Basic Regular Expressions,” accessed February 4, 2024, [https://en.wikibooks.org/wiki/Regular_Expressions/POSIX_Basic_Regular_Expressions](https://en.wikibooks.org/wiki/Regular_Expressions/POSIX_Basic_Regular_Expressions).
|
||||||
|
<!--ID: 1707231745952-->
|
||||||
|
END%%
|
||||||
|
|
||||||
|
%%ANKI
|
||||||
|
Basic
|
||||||
|
What does it mean for a regexp to be lazy?
|
||||||
|
Back: The regexp matches as few characters as it can.
|
||||||
|
Reference: “POSIX Basic Regular Expressions,” accessed February 4, 2024, [https://en.wikibooks.org/wiki/Regular_Expressions/POSIX_Basic_Regular_Expressions](https://en.wikibooks.org/wiki/Regular_Expressions/POSIX_Basic_Regular_Expressions).
|
||||||
|
<!--ID: 1707231745954-->
|
||||||
|
END%%
|
||||||
|
|
||||||
%%ANKI
|
%%ANKI
|
||||||
Basic
|
Basic
|
||||||
|
@ -94,7 +125,7 @@ END%%
|
||||||
|
|
||||||
%%ANKI
|
%%ANKI
|
||||||
Cloze
|
Cloze
|
||||||
The {`$`} operator matches {the ending position of a string}.
|
The {`$$`} operator matches {the ending position of a string}.
|
||||||
Reference: “POSIX Basic Regular Expressions,” accessed February 4, 2024, [https://en.wikibooks.org/wiki/Regular_Expressions/POSIX_Basic_Regular_Expressions](https://en.wikibooks.org/wiki/Regular_Expressions/POSIX_Basic_Regular_Expressions).
|
Reference: “POSIX Basic Regular Expressions,” accessed February 4, 2024, [https://en.wikibooks.org/wiki/Regular_Expressions/POSIX_Basic_Regular_Expressions](https://en.wikibooks.org/wiki/Regular_Expressions/POSIX_Basic_Regular_Expressions).
|
||||||
<!--ID: 1707050923635-->
|
<!--ID: 1707050923635-->
|
||||||
END%%
|
END%%
|
||||||
|
|
Loading…
Reference in New Issue