John Matthews

My photo

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.