This list will certainly change as the term progresses.
Quite a few of the papers are quite long, dense, or both, and we won't
actually cover the material in a single class session. Also, I want
to do examples on the white board or on the computer. So, I'll adjust
the schedule to make room as we go along. I'll note the changes in
class, but you should come back to this page to check if you're not
sure what we'll be covering.
The URLs that I'm including for the papers use
UBC ezproxy links when I could find them.
If the proxy isn't working for you, click
here to log-in.
If you're not from UBC but reading this because you want
references on formal verification, that's great! I'll try to remember to include
links without the proxy -- if I forget, you can just delete the
.ezproxy.library.ubc.ca stuff from the URL.
Formal verification is progressing very rapidly both in research and in applications.
There's no way we'll cover the whole field in one term.
To help make up for some of the inevitable gaps, I've suggested papers
"For Further Reading" throughout this list.
September 10:
- Course overview (no reading assigned).
- lecture slides
- For further reading:
September 15:
September 17:
Choose one of the two papers below to read (and write a short review):
- “Satisfiability Modulo Theories: An Appetizer”,
L. de Moura, and
N. Bjørner, in
12th Brazilian Symposium on Formal Methods,
LNCS
Vol. 5902, pages 23-36 (Aug. 2009).
Springer.
(non-UBC link)
- “Satisfiability Modulo Theories: Introduction and Applications”,
L. de Moura, and
N. Bjørner, in
Communications of the ACM,
Vol. 54
No. 9, pages 69-77, (Sep. 2011).
(non-UBC link)
September 22:
For further reading (optional):
- “CUTE:
a concolic unit testing engine for C”,
K. Sen,
D. Marinov, and
G. Agha, in
10th ESEC,
pages 263-272 (Sep. 2005).
(non-UBC link)
- “KLEE:
Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs”,
C. Cadar,
D. Dunbar, and
D. Engler, in
OSDI'08,
pages 209-224 (Dec. 2008).
(non-UBC link)
September 24:
For further reading (optional):
- “An Axiomatic Basis for Computer Programming”,
C.A.R. Hoare, in
Communications of the ACM,
Vol. 12
No. 10, pages 576-580, (Oct. 1969).
(non-UBC link)
- “Guarded Commands, Non-Determinacy, and Formal Derivation of Programs”,
E.W. Dijkstra, in
Communications of the ACM,
Vol. 19
No. 8, pages 576-580, (Aug. 1976).
(non-UBC link)
September 29:
- Handbook of Satisfiability
( A. Biere,
M. Heule,
H. van Maaren, and
T. Walsh, Eds),
Chapter 3: "Complete Algorithms",
A. Darwiche and
K. Pipatsrisawat.
We'll cover Sections 3.5-3.7 which describes the DPLL SAT solving algorithm
along with the basic ideas that motivate more advanced algorithms.
For further reading (optional):
- “The Quest for Efficient Boolean Satisfiability Solvers”,
L. Zhang and
S. Malik, in
14th CAV,
LNCS
Vol. 2404, pages 17-36 (July 2002).
Springer.
(non-UBC link)
- “Understanding the empirical hardness
of NP-complete problems”,
K. Leyton-Brown,
H. Hoos,
F. Hutter, and
Lin Xu, in
Communications of the ACM,
Vol. 57,
No. 5, pages 98-107, (May 2014).
(non-UBC link)
- “A survey
of recent advances in SAT-based formal verification”,
M.R. Prasad,
A. Biere,
A. Gupta, in
Software Tools for Technology Transfer,
Vol 7, No. 2,
pages 156-173 (Apr. 2005),
Springer.
(non-UBC link)
October 1:
For further reading (optional):
- “Formal hardware verification with BDDs: an introduction”,
A.J. Hu, in
IEEE Pacific Rim Conference on
Communications, Computers and Signal Processing, pages 677-682 (Aug. 1997).
(non-UBC link)
- “On the complexity
of VLSI implementations and graph representations of Boolean functions with application to integer multiplication”,
R.E. Bryant, in
IEEE Transactions on Computers,
Vol. 40, no. 2,
pages 205-213 (Feb. 1991).
(non-UBC link)
- “Equivalence checking using cuts and heaps”,
A. Kuehlmann and F. Krohm, in
34thDesign Automation Conference,
pages 263-268 (June 1997).
(non-UBC link)
October 6:
- “Replacing
Testing with Formal Verification in Intel® CoreTM i7 Processor Execution Engine Validation”,
R. Kaivola,
R. Ghughal,
N. Narasimhan, A. Telfer, J. Whittemore, S. Pandav,
A. Slobodová,
C. Taylor, V. Frolov,
E. Reeber, and A. Naik, in
21st CAV,
LNCS
Vol. 5643, pages 414-429 (June 2009).
Springer.
(non-UBC link)
For further reading (optional):
October 8:
For further reading (optional):
October 13:
For further reading (optional):
- “Protocol
Verification as a Hardware Design Aid”,
D. Dill,
A.J. Drexler,
A.J. Hu, and C.H. Yang, in
ICCD'92,
pages 522-525 (Oct. 1992).
- “Better
verification through symmetry”,
C. Norris Ip,
D. Dill, in
Formal Methods in System Design,
Vol. 9, No. 2, pages 41-75 (Aug. 1996).
(non-UBC link)
- “A Simple Method
for Parameterized Verification of Cache Coherence Protocols”,
C-T. Chou, P.K. Mannava, S.Park, in
5th FMCAD,
LNCS
Vol. 3312, pages 382-398 (Nov. 2004),
Springer.
(non-UBC link)
- “A case study
in model checking software systems”,
J.M. Wing and
M. Vaziri-Farahani, in
Science of Computer Programming
Vol. 28, No. 2-3,
pages 273–299,(Apr. 1997)
Elsevier.
(non-UBC link)
October 15:
October 20:
October 22:
TLA+ and pluscal
October 27:
Verifying Paxos
October 29:
Using TLA+ at Amazon
November 3:
Cyber-physical systems
November 5:
more cyber-physical systems
November 10:
cyber-physical or circuits
November 12:
circuits
November 17:
more circuits
November 19:
TBD: probably interpolants, or more on abstraction and/or CEGAR
November 24:
TBD: or decision procedures for real-arithmetic,
November 26:
TBD: or interactive theorem proving (but don't tell AJH),
December 1:
TBD: or some other topic(s) that have come up in class
December 3:
TBD: or ...
Last modified
(GMT)