HALO: Haskell to logic through denotational semantics
Paper i proceeding, 2013

Even well-typed programs can go wrong in modern functional languages, by encountering a pattern-match failure, or simply returning the wrong answer. An increasingly-popular response is to allow programmers to write contracts that express semantic properties, such as crash-freedom or some useful post-condition. We study the static verification of such contracts. Our main contribution is a novel translation to first-order logic of both Haskell programs, and contracts written in Haskell, all justified by denotational semantics. This translation enables us to prove that functions satisfy their contracts using an off-the-shelf first-order logic theorem prover.

first-order logic

static contract checking

Författare

Dimitrios Vytiniotis

Microsoft Research

Simon L. Peyton-Jones

Microsoft Research

Dan Rosén

Chalmers, Data- och informationsteknik, Programvaruteknik

Koen Lindström Claessen

Chalmers, Data- och informationsteknik, Programvaruteknik

Conference Record of the Annual ACM Symposium on Principles of Programming Languages

0730-8566 (ISSN)

431-442

Ämneskategorier

Programvaruteknik

DOI

10.1145/2429069.2429121

ISBN

978-1-4503-1832-7

Mer information

Senast uppdaterat

2018-09-06