Homework is generally due at 4pm PT on Sundays.
Due date | Files |
---|---|
08-30 | Day01_intro.v and Day02_types.v due at 4pm PT |
09-06 | Day03_recursion.v and Day04_structures.v due at 4pm PT |
09-13 | Day05_lists.v and Day06_sorting.v due at 4pm PT |
09-20 | Day07_trees.v and Day08_sets.v due at 4pm PT |
09-27 | Day09_levenshtein.v and Day10_expressions.v due at 4pm PT |
10-04 | Day11_propositions.v and Day12_cases.v due at 4pm PT |
10-11 | Day13_induction.v and Day14_exists.v due at 4pm PT |
10-18 | Day15_induction2.v and Day16_indprop.v due at 4pm PT |
10-25 | Day17_sorting.v and Day18_levenshtein.v due at 4pm PT |
11-01 | Day19_latex.tex and Day20_translating.tex due at 4pm PT |
11-08 | Day21_sorting.tex and Day22_combo.tex due at 4pm PT |
11-15 | Day23_binomial.tex and Day24_sets.tex due at 4pm PT |
11-22 | Day25_relations.tex and Day26_countability.tex due at 4pm PT |
11-29 | Day27_graphs.tex due at 4pm PT |
Feel free to look at various chapters ahead of time, but know that we may change things before posting the homework here!
Worksheets are not for credit; they are excellent practice, though, and they resemble the kinds of problems we like to set on exams.
Guides are meant to give you an overview of proof techniques.
All times are in Pacific Time. Look in #general
on Zulip for Zoom info.
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
---|---|---|---|---|---|---|
Ethan 9-11am | ||||||
Jan 7-9pm | Grace & Millie 4-6pm | Prof. Greenberg 4-5pm |
Please see the syllabus for general course information. The course has three parts: programming, formal proof, and paper proof.
Day | Date | File | Plan |
---|---|---|---|
01 | 08-24 | Day01_intro | Coq, Emacs, how to read the book; boolean operations, truth tables, and DNA bases |
02 | 08-26 | Day02_types | numbers and recursive functions |
03 | 08-31 | Day03_recursion | more recursive functions |
04 | 09-02 | Day04_structures | pairs, options, lists, and trees |
05 | 09-07 | Day05_lists | list processing |
06 | 09-09 | Day06_sorting | insertion sort |
07 | 09-14 | Day07_trees | binary search trees |
08 | 09-16 | Day08_sets | list and tree representations of sets |
09 | 09-21 | Day09_levenshtein | the Levenshtein algorithm for edit distance |
10 | 09-23 | Day10_expressions | expressions and interpreters |
At this point, we'll have our first midterm on gradescope, about programming.
Day | Date | File | Plan |
---|---|---|---|
11 | 09-28 | Day11_propositions | basic formal proof; Coq tactics; equality and logical propositions |
12 | 09-30 | Day12_cases | proofs by case analysis |
13 | 10-05 | Day13_induction | induction |
14 | 10-07 | Day14_exists | existential quantification |
15 | 10-12 | Day15_induction2 | induction on other structures |
16 | 10-14 | Day16_indprop | inductive propositions |
17 | 10-19 | Day17_sorting | permutations and sorting |
18 | 10-21 | Day18_levenshtein | proving the Levenshtein algorithm correct and optimal |
At this point, we'll have our second midterm on gradescope, about formal proof.
Day | Date | File | Plan |
---|---|---|---|
19 | 10-26 | Day19_latex | mathematical typesetting in LaTeX |
20 | 10-28 | Day20_translating | translating formal proofs to paper |
21 | 11-02 | Day21_sorting | sort, informally |
22 | 11-04 | Day22_combinatorics | counting; sum rule, product rule, division rule, permutation, choose |
23 | 11-09 | Day23_binomial | the binomial theorem; Pascal's Identity |
24 | 11-11 | Day24_sets | set theory |
25 | 11-16 | Day25_relations | relations and functions |
26 | 11-18 | Day26_countability | cardinality and (un)countability |
27 | 11-23 | Day27_graphs | graphs and paths and trees |
And now: the 72-hour take-home final. The final will be released at 12:01am on Tuesday, December 1st. Submission will be open until 11:59pm on Thursday, December 3rd. You may use the book and any other resource from this class---notes, homeworks, Zulip, etc.---along with Wikipedia. Other sources of help are not permitted.
We're using Coq 8.12.0, Emacs 27.1 (macOS, Windows), and Proof General 4.4 (installed automatically by our init.el). To configure your emacs, you might want to download init.el.
We’ll be using an experimental new volume of Software Foundations, which we're calling for now Discrete Math in Coq. Name suggestions are welcome!