Formal Methods Foundation

Schedule

Only few of the electronic lecture notes are available here, most are on blackboard.

This schedule is tentative and subject to change at any time.


Date Topic Lectures Assignments
Sep. 15 Introduction LEC: introduction;
Basic set theory;
Context-free grammars;
Principal of induction;

Code: set code;
relation code;
function code;
subset sum code;
grammar code;
induction code;

Read: set;
grammars;
induction;
Lab 1: Software setup
DDL: Sep. 28
Sep. 16 Propositional logic; Constructive logic LEC: Syntax;
Natural deduction;
Semantics (truth table, Boolean algebra);
Soundness and completeness;
proposition notes;
constructive notes;

Code: truth table code;

Read: propositional logic;
constructive logic
Lab 2: Proof engineering
DDL: Oct. 12
Sep. 22 SAT LEC: Normal form;
Resolution;
DPLL;
(notes)

Code: subset sum problem;
knapsack problem;
n-queen problem;

Read: SAT
Lab 3: SAT
DDL: Oct. 26
Sep. 23 Recitation I notes: notes
Sep. 29 Predicate logic LEC: Syntax;
Natural deduction;
Semantics;
Soundness and completeness;
(notes)

Code: deduction code;

Read: predicate logic
 
Sep. 30 EUF theory LEC: Theories;
Equality;
uninterpreted functions;
(notes)

Code: connectivity code

Read: EUF theory
Lab 4: Theory for EUF
DDL: Nov. 3
Oct. 1 No class Happy National Day!
Oct. 13 Linear arithmetic LEC: Syntax;
Fourier-Motzkin;
Simplex;
Branch and Bound;
(notes)

Code: IMO problems
Sudoku problem

Read: Linear arithmetic
Lab 5: Linear arithmetic
DDL: Nov. 10
Oct. 14 Recitation II notes: notes
Oct. 20 Theories for
data structures I
LEC: Bit vectors;
Arrays;

Read: Bit vectors
Arrays
Lab 6: Theories for Data Structures
Oct. 21 Theories for
data structures II
LEC: Pointers (notes)

Read: Pointers
Oct. 27 Theory combination
LEC: Theory combination;
DPLL(T);

Read: Theory combination ;
DPLL(T)
Oct. 28 Symbolic execution LEC: Symbolic execution ;
Concolic execution;

Read: Survey of symbolic execution ;
DART
Lab 7: Symbolic execution
Nov. 3 Verification LEC: Hoare triple ;
Axiomatic semantics;
VC generation ;

Code: Verus code;

Read: Hoare logic ;
Proof-Carrying Code
Lab 8: Hoare logic
Nov. 4 Program synthesis LEC: Program synthesis (notes)

Read: TBA
Lab 9: Program synthesis
Nov. 10 Recitation III notes: notes
Nov. 11
Nov. 17
Nov. 18
Nov. 24
Nov. 25 Final test Location: TBA

Open book, open notes;
no electronic devices.

Good luck!