Make sure the Python binding works.
You may need to add the path to Z3’s bin directory to the environment variable PYTHONPATH.
$ pythonPython 2.7.10 (default, Oct 14 2015, 16:09:02)
[GCC 5.2.1 20151010] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from z3 import *
>>> x = Int('x')
>>> prove(x < x + 1)
proved
>>>
Class notes
Administrative
Class structure reminder
First assignment due this Friday. Turn in via Blackboard.
Too easy? Challenge problems too hard? Can be the basis for a project if so
Use Piazza for questions
Tools
Dafny
Coq
Lean
TLA+
F*
Rosette
Isabelle/HOL
Other interactive provers: ACL2, Twelf, PVS
How to read a research paper
Not reading a textbook. Be skeptical! But also look for good insights
you can use.
Interact with the paper!
Highlighter + red pen
The Verifying Compiler: A Grand Challenge for Computing Research
Clear measure of success
Research oriented: Industry very good at incremental advances
Updates to the list of challenges he mentions
Note the difference between a verified compiler and a verifying compiler
We will read CompCert paper
You can try out VCC
Are we done?
How important is verification of legacy code?
Note reference to tremendous improvement in SAT solving
Note repeated references to desire for trustworthy/secure software
SAT/SMT: Why start here?
Very successful
Can be used for lots of things, not just verification