Total Haskell is Reasonable Coq

11/25/2017
by   Antal Spector-Zabusky, et al.
0

We would like to use the Coq proof assistant to mechanically verify properties of Haskell programs. To that end, we present a tool, named hs-to-coq, that translates total Haskell programs into Coq programs via a shallow embedding. We apply our tool in three case studies -- a lawful Monad instance, "Hutton's razor", and an existing data structure library -- and prove their correctness. These examples show that this approach is viable: both that hs-to-coq applies to existing Haskell code, and that the output it produces is amenable to verification.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/22/2021

Cameleer: a Deductive Verification Tool for OCaml

OCaml is particularly well-fitted for formal verification. On one hand, ...
research
03/25/2023

The WhyRel Prototype for Relational Verification

Verifying relations between programs arises as a task in various verific...
research
11/13/2022

Choice Trees: Representing Nondeterministic, Recursive, and Impure Programs in Coq

This paper introduces Choice Trees (ctrees), a monad for modeling nondet...
research
02/24/2020

Superoptimization of WebAssembly Bytecode

Motivated by the fast adoption of WebAssembly, we propose the first func...
research
05/24/2022

A Proof-Generating C Code Generator for ACL2 Based on a Shallow Embedding of C in ACL2

This paper describes a C code generator for ACL2 that recognizes ACL2 re...
research
09/09/2019

CISE3: Verificação de aplicações com consistência fraca em Why3

In this article we present a tool for the verification of programs built...
research
03/19/2018

Ready, Set, Verify! Applying hs-to-coq to real-world Haskell code

Good tools can bring mechanical verification to programs written in main...

Please sign up or login with your details

Forgot password? Click here to reset