This work is a case study in program verification: We have written a simple parser and a corresponding pretty-printer in a non-strict functional programming language with lifted pairs and functions (Haskell). A natural aim is to prove that the programs are, in some sense, each others' inverses. The presence of partial and infinite values in the domains makes this exercise interesting, and having lifted types adds an extra spice to the task. We have tackled the problem in different ways, and this is a report on the merits of those approaches. More specifically, we first describe a method for testing properties of programs in the presence of partial and infinite values. By testing before proving we avoid wasting time trying to prove statement...
Traditionally, many automatic program verification techniques are applicable only to finite-state pr...
We present a new approach to deductive program verification based on auxiliary programs called ghost...
We show how the binary encoding and decoding of typed data and typed programs can be understood, pro...
This work is a case study in program verification: We have written a simple parser and a correspondi...
Abstract. This work is a case study in program verification: We have written a simple parser and a c...
This thesis consists of two parts. Both concern reasoning about non-strict functional programming la...
Abstract. We present an approach to software verification by program inversion, exploiting recent pr...
Functional programming languages such as Haskell or ML allow the programmer to implement and to use ...
We propose a method for improving confidence in the correctness of Haskell programs by combining tes...
This thesis is about methods for establishing semantic properties of programsand how those methods c...
The objective of this paper is to provide a theoretical foundation for program extraction from proof...
We establish principles for proving properties about infinite computations by reasoning about finit...
Static analysis of program semantics can be used to provide strong guarantees about the correctness ...
AbstractWe show that termination is a first-order notion if approached via Nonstandard Logics of Pro...
We have built several tools to help with testing and verifying functional programs. All three tools ...
Traditionally, many automatic program verification techniques are applicable only to finite-state pr...
We present a new approach to deductive program verification based on auxiliary programs called ghost...
We show how the binary encoding and decoding of typed data and typed programs can be understood, pro...
This work is a case study in program verification: We have written a simple parser and a correspondi...
Abstract. This work is a case study in program verification: We have written a simple parser and a c...
This thesis consists of two parts. Both concern reasoning about non-strict functional programming la...
Abstract. We present an approach to software verification by program inversion, exploiting recent pr...
Functional programming languages such as Haskell or ML allow the programmer to implement and to use ...
We propose a method for improving confidence in the correctness of Haskell programs by combining tes...
This thesis is about methods for establishing semantic properties of programsand how those methods c...
The objective of this paper is to provide a theoretical foundation for program extraction from proof...
We establish principles for proving properties about infinite computations by reasoning about finit...
Static analysis of program semantics can be used to provide strong guarantees about the correctness ...
AbstractWe show that termination is a first-order notion if approached via Nonstandard Logics of Pro...
We have built several tools to help with testing and verifying functional programs. All three tools ...
Traditionally, many automatic program verification techniques are applicable only to finite-state pr...
We present a new approach to deductive program verification based on auxiliary programs called ghost...
We show how the binary encoding and decoding of typed data and typed programs can be understood, pro...