AbstractPlover is an automated property-verifier for Haskell programs that has been under development for the past three years as a component of the Programatica project. In Programatica, predicate definitions and property assertions written in P-logic, a programming logic for Haskell, can be embedded in the text of a Haskell program module. Properties refine the type system of Haskell but cannot be verified by type-checking alone; a more powerful logical verifier is needed.Plover codes the proof rules of P-logic, and additionally, embeds strategies and decision procedures for their application and discharge. It integrates a reduction system that implements a rewriting semantics for Haskell terms with a congruence-closure algorithm that sup...
We propose a new approach to the verification of epistemic properties of programmes. First, we intro...
Abstract. Result checking is a general methodology for ensuring that untrusted computations are vali...
Program errors are hard to detect and are costly, to both programmers who spend sig-nificant efforts...
AbstractHaskell employs a melange of strict and non-strict evaluation semantics, hence a Haskell ver...
Abstract. Haskell is a functional programming language whose evaluation is lazy by default. However,...
This thesis is about methods for establishing semantic properties of programsand how those methods c...
Code deficiencies and bugs constitute an unavoidable part of software systems. In safety-critical sy...
We propose a method for improving confidence in the correctness of Haskell programs by combining tes...
We propose a program verification method that combines random testing, model checking and interactiv...
Current formal software engineering methodologies provide a vast array of languages for specifying c...
Abstract Proof assistants based on dependent type theory are closely relatedto functional programmin...
Equational reasoning based verification address some of the limitations of classical testing. The Cu...
The use of typed intermediate languages can significantly increase the reliability of a compiler. By...
Liquid Haskell is an extension to the type system of Haskell that supports formal reasoning about pr...
Abstract. We compare Haskell with Standard ML as programming languages for verification tools based ...
We propose a new approach to the verification of epistemic properties of programmes. First, we intro...
Abstract. Result checking is a general methodology for ensuring that untrusted computations are vali...
Program errors are hard to detect and are costly, to both programmers who spend sig-nificant efforts...
AbstractHaskell employs a melange of strict and non-strict evaluation semantics, hence a Haskell ver...
Abstract. Haskell is a functional programming language whose evaluation is lazy by default. However,...
This thesis is about methods for establishing semantic properties of programsand how those methods c...
Code deficiencies and bugs constitute an unavoidable part of software systems. In safety-critical sy...
We propose a method for improving confidence in the correctness of Haskell programs by combining tes...
We propose a program verification method that combines random testing, model checking and interactiv...
Current formal software engineering methodologies provide a vast array of languages for specifying c...
Abstract Proof assistants based on dependent type theory are closely relatedto functional programmin...
Equational reasoning based verification address some of the limitations of classical testing. The Cu...
The use of typed intermediate languages can significantly increase the reliability of a compiler. By...
Liquid Haskell is an extension to the type system of Haskell that supports formal reasoning about pr...
Abstract. We compare Haskell with Standard ML as programming languages for verification tools based ...
We propose a new approach to the verification of epistemic properties of programmes. First, we intro...
Abstract. Result checking is a general methodology for ensuring that untrusted computations are vali...
Program errors are hard to detect and are costly, to both programmers who spend sig-nificant efforts...