Deductive Program Analysis with First-Order Theorem Provers
Doctoral thesis, 2019

Software is ubiquitous in nearly all aspects of human life, including safety-critical activities. It is therefore crucial to analyze programs and provide strong guarantees that they perform as expected. Automated theorem provers are increasingly popular tools to assist in this task, as they can be used to automatically discover and prove some semantic properties of programs. This thesis explores new ways to use automated theorem provers for first-order logic in the context of program analysis and verification.

Firstly, we present a first-order logic encoding of the semantics of imperative programs containing loops. This encoding can be used to express both functional and temporal properties of loops, and is particularly suited to program analysis with an automated theorem prover. We employ it to automate functional verification, termination analysis and invariant generation for iterative programs operating over arrays.

Secondly, we describe how to extend theorems provers based on the superposition calculus to reason about datatypes and codatatypes, which are central to many programs. As the first-order theory of datatypes and codatatypes does not have a finite axiomatization, traditional means to perform theory reasoning in superposition-based provers cannot be used. We overcome this by introducing theory extensions as well as augmenting the superposition calculus with new rules.

Automated theorem proving

Program semantics

Program Verification

Program analysis

Automated reasoning

First-order logic

Lecture hall EA, EDIT building, Rännvägen 6B, Chalmers University of Technology
Opponent: Pascal Fontaine, Université de Lorraine, France

Author

Simon Robillard

Chalmers, Computer Science and Engineering (Chalmers), Formal methods

An Inference Rule for the Acyclicity Property of Term Algebras

Proceedings of the 4th Vampire Workshop,; Vol. 53(2018)p. 20-32

Paper in proceeding

Loop Analysis by Quantification over Iterations

EPiC Series in Computing,; Vol. 57(2018)p. 381-399

Paper in proceeding

Superposition with Datatypes and Codatatypes

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics),; Vol. 10900(2018)p. 370-387

Paper in proceeding

Coming to Terms with Quantified Reasoning

SIGPLAN Notices (ACM Special Interest Group on Programming Languages),; Vol. 52(2017)p. 260-270

Paper in proceeding

Reasoning About Loops Using Vampire in KeY

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics),; Vol. 9450(2015)p. 434-443

Paper in proceeding

Areas of Advance

Information and Communication Technology

Subject Categories

Philosophy

Computer Science

Computer Systems

ISBN

978-91-7905-106-8

Doktorsavhandlingar vid Chalmers tekniska högskola. Ny serie: 4573

Publisher

Chalmers

Lecture hall EA, EDIT building, Rännvägen 6B, Chalmers University of Technology

Opponent: Pascal Fontaine, Université de Lorraine, France

More information

Latest update

5/3/2019 2