Date Day Lecture Topic Notes Covered (Expected to pre-read) Assigned HW Assigned HW Content Due HW Friday Lab Content
9/9/20 Wed. Welcome, why?, website, what’s where, programming review Website HW1 Setup, Config    
9/10/20 Thurs. Programming review, datatypes, expressions, primitives’ syntax & semantics 1-2.4 + REPL + ACL2 Ref       Setup, Config
9/14/20 Mon. The ACL2 environment: ACL2 design: contracts, termination 2.5-2.10 HW2 My first ACL2HW, functions HW1  
9/16/20 Wed. The dirty dozen: quote let datatype enum range product, etc 2.11-2.13        
9/17/20 Thurs. Property based-testing 2.14-2.17       My first ACL2HW, functions
9/21/20 Mon. Boolean logic, truth tables, formulae, 3-3.2 HW3 Syntax, Semantics, instantiation HW2  
9/23/20 Wed. Complexity, P ?= NP, proofs: instantiation, cases, eqnl proofs, decision procs 3.3-3.5        
9/24/20 Thurs. Boolean logic in ACL2s, normal forms, set theory, applications 3.6-3.10       Syntax and Semantics of a lang
9/28/20 Mon. Limitations of boolean logic, Equational reasoning for programs 4 HW4 Propositional Logic, Truth Tables (+ Project Proposals) HW3  
9/30/20 Wed. Axioms for equality cons/car/cdr rules, 4.1        
9/31/20 Thurs. Conjectures, ACL2s conjectures, 4.2-4.4       Prop Logic, Minimization
10/5/20 Mon. Undecidability results, reasoning about arithmetic, program equivalence 4.5 HW5 Substitutions, minimization, normalization HW4  
10/7/20 Wed. Context vs. theorems 4.6        
10/8/20 Thurs. Proving theorems via equational reasoning. Live Code REPL       Substitutions, minimization, normalization
10/12/20 Mon. CANCELLED (Columbus Day)   HW6 Proofs over programs    
10/14/20 Wed. Definition, soundness termination, contracts, acl2 definition principle 5.1     HW5 + Pro. Proposal  
10/15/20 Thurs. Termination, measure functions, project          
10/19/20 Mon. Showing soundness of common recursion schemes via termination; big O analysis wrt terminations 5.2-5.3 HW7   HW6  
10/21/20 Wed. Undecidability of the Halting problem, proof by contradiction, 5.4-5.5 “Snooping”        
10/22/20 Thurs. Mathematical induction, well-foundedness, correctness of math. induction, extracting induction schemes 6-6.2        
10/26/20 Mon. Proving program correctness via induction 6.3 HW8   HW7  
10/28/20 Wed. Data-function-induction trinity; why termination matters 6.4-6.6        
10/29/20 Thurs. Induction like a professional; reasoning about algs, generalization, lemma generation, 6.7        
11/2/20 Mon. Intro to reasoning w/accumulators; tail recursion, efficiency considerations; 6.8 HW9   HW8  
11/4/20 Wed. Project discussion 6.9        
11/5/20 Thurs. Prior proof presentation 6.9       Accumulator try-out + real proving
11/9/20 Mon. proving correctness wrt accs; Accumulator reasoning 6.9 HW10 A chonky accumulator proof HW9 + Project  
11/11/20 Wed. CANCELLED (Veteran’s Day) Bonus???          
11/12/20 Thurs. Logic programming and Prolog “Predicate Logic as …”, Downward       Accumulator Proofs + LP Racket Set-up
11/16/20 Mon. miniKanren introduction Presentation/Talk Walk-through HW11 My first miniKanren programs HW10  
11/18/20 Wed. microKanren implementation Paper   (Please plan on meeting w/me on or by here)    
11/19/20 Thurs. microKanren implementation II         miniKanren Basics (Nothing due)
11/23/20 Mon. Interpreter Lecture       HW11  
11/25/20 Wed. CANCELLED (Thanksgiving Recess)          
11/26/20 Thurs. CANCELLED (Thanksgiving Recess)          
11/30/20 Mon. Inference and judgment miniKanren Type Inference, Type Inhabitation HW12 Type inferencer, inhabiter Project Status Report  
12/2/20 Wed. Type inference II & judgments          
12/3/20 Thurs. miniKanren constraint systems Slides + (Optional!)       more intepreter + Type inference (nothing due)
12/7/20 Mon. Relational interpreters None. Expect surprise     HW12  
12/9/20 Wed. What you could have learned in this class       Project, Presentation