John Matthews
This is a really basic web page I keep at Portland State University
describing what I'm about these days.
Chronology
Contact Information
Email: matthews@galois.com
Tel: (503) 626-6616 x121
Current Research Interests
Scaling-up formal verification. I am primarily interested in
making theorem provers powerful enough to formally verify security-
and safety-critical software. At Galois we are
combining theorem proving and model checking technology to obtain high
confidence that an implementation satisfies its specification for all
possible system behaviors. Many of these applications are too large
to be handled effectively by either theorem proving or model checking
alone. However, it is often possible to use theorem proving tactics to
abstract and decompose correctness properties of large designs into a
series of verification conditions over smaller finite state
machines. Each of these verification conditions can then be
automatically verified using model checking.
Most recently we have been applying this approach to verify that C code
is memory-safe (e.g. no buffer overflow flaws).
HOL as a formal modeling language. I am also interested in
increasing the expressiveness of higher order logic, and using a
subset of it as a high-level executable specification language that
can also be formally reasoned about in a theorem prover. As one
example, my dissertation describes a generalization of well-founded
recursion in higher order logic, called converging equivalence
relations (CERs). CERs can be used to define a large class of
recursive functions over coinductive types, such as lazy lists and
trees. Previous methods required one to define such functions
co-recursively, or placed syntactic restrictions on the form
definitions could take. I would like to integrate CER definition
mechanisms more closely into existing theorem provers such as Isabelle, so
that formal models written in higher order logic can be directly
translated into lazy functional languages such as Haskell and executed.
PhD Research
As a PhD student at OGI I was a member of the Pacific Software Research Center.
My research revolved around the Hawk project. My
advisor was John Launchbury,
who headed the project. I used the theorem prover Isabelle to verify
the correctness of microprocessor specifications written in Hawk, and to
perform correct source-to-source transformations of Hawk programs.
Publications
Verification Condition Generation via Theorem Proving
John Matthews, J Moore, Sandip Ray, and Daron Vroon
To appear in LPAR '06
abstract
and paper.
A Verifying Core for a Cryptographic Language Compiler
Lee Pike, Mark Shields, and John Matthews
Appears in ACL2 2006
abstract
and paper.
Axiomatic Constructor Classes in Isabelle/HOLCF
Brian Huffman, John Matthews, and Peter White
(Draft. Revised version will appear in
TPHOLs 2005)
abstract
and paper.
Partial Clock Functions in ACL2
John Matthews and Daron Vroon
Appears in the
2004 ACL2 Workshop
abstract
and paper.
Semantics of the reFLect Language
Sava Krstic and John Matthews
Appears in PPDP'04
Abstract and
paper.
Inductive Invariants for Nested Recursion
Sava Krstic and John Matthews
Appears in TPHOLs 2003
abstract
and paper.
We have formalized some of the paper's results in an Isabelle/HOL
theory file, as well as
example proofs of the termination of several nested recursive funtions, including a nested
recursive partial function that is defined only over a subset of "good" inputs.
Certifying Compositional Model Checking Algorithms in ACL2
Sandip Ray, John Matthews, and Mark Tuttle
Appears in ACL2 Workshop 2003
abstract
and paper.
Checking Cache-Coherence Protocols with TLA+
Rajeev Joshi, Leslie Lamport, John Matthews, Serdar Tasiran, Mark Tuttle, and Yuan Yu
Appears in Journal of Formal Methods in System Design
22 (2), pp. 125-131, March 2003.
abstract
and paper.
Specifying and Verifying Systems With TLA+
Leslie Lamport, John Matthews, Mark Tuttle, and Yuan Yu
Appears in the 10th ACM SIGOPS European Workshop
pp. 45-48, September 2002.
abstract
and paper.
Verifying BDD Algorithms through Monadic Interpretation
Sava Krstic and John Matthews
Appears in VMCAI'02
abstract
and paper.
Algebraic Specification and Verification of Processor Microarchitectures
(PhD Dissertation)
John Matthews
abstract
and paper.
Recursive Function Definition over Coinductive Types
John Matthews
Appears in TPHOLs `99
abstract
and paper.
Elementary Microarchitecture Algebra
John Matthews and John Launchbury
Appears in CAV99.
abstract
and paper.
There is also a companion
note (OGI Technical Report CSE-99-002), illustrating a top-level graphical
proof of the pipelined microarchitecture discussed in the paper.
We have also created a set of PowerPoint slides.
It includes an animation of a pipelined microprocessor being incrementally
simplified according to our algebraic laws.
Formal Verification of Explicitly Parallel Microprocessors
Byron Cook, John Launchbury, John Matthews, and Dick Kieburtz.
Appears in CHARME '99
abstract
and paper.
Top-level Refinement in Processor Verification
Sava Krstic, Byron Cook, John Launchbury, and John Matthews
Unpublished technical report
abstract
and paper.
Specifying Superscalar Microprocessors with Hawk
Byron Cook, John Launchbury, and John Matthews.
Appears in FTH '98
abstract
and paper.
Microprocessor Specification in Hawk
John Matthews, John Launchbury, and Byron Cook.
Appears in ICCL '98
abstract
and paper.