DeepAI AI Chat
Log In Sign Up

A Deductive Verification Framework For Higher Order Programs

by   Tiago Lopes Soares, et al.

In this report, we present the preliminary work developed for our research project for the APDC (Área Prática de Desenvolvimento Curricular) course. The main goal of this project is to develop a framework, on top of the Why3 tool, for the verification of effectful higher-order programs. We use defunctionalization as an intermediate transformation from higher-order OCaml implementations into first order ones. The target for our translation is WhyML, the Why3's programming language. We believe defunctionalization can be an interesting route for the automated verification of higher-order programs, since one can employ off-the-shelf automated program verifiers to prove the correctness of the generated first-order program. This report also serves to introduce the reader to the subject of deductive program verification and some of the tools and concepts used to prove higher order effectful programs.


page 1

page 2

page 3

page 4


Desfuncionalizar para Provar

This paper explores the idea of using defunctionalization as a proof tec...

Automating the Diagram Method to Prove Correctness of Program Transformations

We report on the automation of a technique to prove the correctness of p...

Staged Specifications for Automated Verification of Higher-Order Imperative Programs

Higher-order functions and imperative references are language features s...

A Framework for Modelling, Verification and Transformation of Concurrent Imperative Programs

The paper gives a comprehensive presentation of a framework, embedded in...

Analysis of MiniJava Programs via Translation to ML

MiniJava is a subset of the object-oriented programming language Java. S...

Trustworthy Graph Algorithms

The goal of the LEDA project was to build an easy-to-use and extendable ...

anthem: Transforming gringo Programs into First-Order Theories (Preliminary Report)

In a recent paper by Harrison et al., the concept of program completion ...