Logic and Computation
CS 2800 Fall 2019

Khoury College of Computer Sciences
Northeastern University

Schedule

Date
Topics, slides, code, other material
Readings
4 Sep 2019
  1. Introductions; Software science; Slides
5 Sep 2019
  1. Introduction and motivation continued; Class web pages; Programming review; Intro to ACL2s; Slides
Start reading lecture notes, Chapters 1 and 2
9 Sep 2019
  1. Invariants; Contracts; Slides
Read lecture notes, up to the end of section 2.6
11 Sep 2019
  1. The ACL2s Universe; Expressions; Syntax and Semantics; Slides
Read lecture notes, up to the end of section 2.8
12 Sep 2019
  1. Conses; Lists; True lists; Slides
Read lecture notes, up to the end of section 2.8
16 Sep 2019
  1. A function that rotates lists; quote; let and let*; Slides: 06-acl2s-rl-quote-let.pdf; Code: 06-acl2s.lisp
Read lecture notes, up to the end of section 2.11
18 Sep 2019
  1. Data definitions; Code: 07-defdata.lisp
Read lecture notes, up to the end of Chapter 2
19 Sep 2019
  1. Property-based testing; Slides: 08-property-testing.pdf;
Finish Chapter 2 of the lecture notes. Start reading Chapter 3.
23 Sep 2019
  1. Property-based testing continued; Slides: 09-property-testing.pdf;
Start reading Chapter 3 of the lecture notes.
25 Sep 2019
  1. Propositional logic: A brief history of logic; Syntax and Semantics of PL; Truth tables; Satisfiability and validity; Slides: 10-propositional-logic.pdf;
Chapter 3 of the lecture notes, up to and including Section 3.6.
26 Sep 2019
  1. Propositional logic continued: The SAT problem; P vs NP; SAT solvers; The power of XOR; Slides: 11-sat-xor.pdf;
Read to the end of Chapter 3 of the lecture notes.
Highly recommended: "Boolean Satisfiability" by Malik and Zhang
30 Sep 2019
  1. Propositional logic continued: CNF and DNF; Complete Boolean bases; Slides: 12-cnf-dnf.pdf;
Read the entire Chapter 3 of the lecture notes.
2 Oct 2019
  1. Boolean formula simplification; Equational proofs; Slides: 13-simplification.pdf;
Read the entire Chapter 3 of the lecture notes.
Start reading Chapter 4 of the lecture notes.
3 Oct 2019
  1. Introduction to equational reasoning; Lemmas; Axioms; Equality; Slides: 14-equational-reasoning.pdf;
Read Chapter 4 of the lecture notes up to 4.1.
7 Oct 2019
  1. Definitional axioms; Instantiation; Substitutions; Proof structure; Context; Examples; Slides: 15-definitional-axiom.pdf;
Read Chapter 4 of the lecture notes up to 4.4.
9 Oct 2019
  1. Propositional skeleton; Exportation; More examples; Slides: 16-exportation.pdf;
Read Chapter 4 of the lecture notes.
10 Oct 2019
  1. The automated proof checker; More proofs; Slides: 17-more-proofs.pdf;
    Code: 17-example3-proofchecker.lisp;
Read the entire Chapter 4 of the lecture notes.
16 Oct 2019
  1. More equational reasoning examples; More proof strategies; The del example and subtleties; Slides: 18-context-theorems.pdf;
17 Oct 2019
  1. Review of topics for Exam 1;
21 Oct 2019
  1. The definitional principle; Slides: 20-definitional-principle.pdf;
Read Chapter 5 of the lecture notes.
23 Oct 2019
  1. The hardness of proving theorems; The hardness of proving termination; Measure functions; Slides: 21-measure-functions.pdf;
Read Chapter 5 of the lecture notes.
24 Oct 2019
  1. Measure functions: more examples and proof obligations; Slides: 22-measure-functions.pdf;
Read the entire Chapter 5 of the lecture notes.
28 Oct 2019
  1. Guest lecture by Prof. Pete Manolios; Slides; C code; ACL2s code;
30 Oct 2019
  1. Measure functions: more examples and proof obligations; Alan Turing; Undecidability; Complexity vs Termination; Slides: 24-undecidability.pdf;
A simple way to explain undecidability (proudly rejected by arxiv.org).
31 Oct 2019
  1. Induction; Slides: 25-induction.pdf;
Read Chapter 6 of the lecture notes.
4 Nov 2019
  1. Induction; Slides: 26-induction.pdf;
Read Chapter 6 of the lecture notes.
6 Nov 2019
  1. Induction; Slides: 27-induction.pdf;
Read Chapter 6 of the lecture notes.
7 Nov 2019
  1. Induction; Slides: 28-induction.pdf;
Read Chapter 6 of the lecture notes.
13 Nov 2019
  1. Induction; Slides: 29-induction.pdf;
Read Chapter 6 of the lecture notes.
14 Nov 2019
  1. Reasoning about accumulators and tail recursion; Slides: 30-accumulators.pdf;
18 Nov 2019
  1. Reasoning about accumulators and tail recursion; Slides: 31-accumulators.pdf;
20 Nov 2019
  1. Reasoning about accumulators and tail recursion; Code: 32-accumulators.lisp;
21 Nov 2019
  1. Test on Chapters 5 and 6! Note room: SN 108
    Practice: the complete isort ordered proof.
25 Nov 2019
  1. Reasoning about imperative code; The invariant game; Slides: 34-invariants.pdf;
2 Dec 2019
  1. Abstract data types and observational equivalence; Code: 35-stacks.lisp;
4 Dec 2019
  1. In-class test on tail-recursion! Note room: WVF 020;
    Parting thoughts: Slides: 36-bye.pdf;