SMLtoCoq: Automated Generation of Coq Specifications and Proof Obligations from SML Programs with Contracts

07/16/2021
by   Laila El-Beheiry, et al.
0

Formally reasoning about functional programs is supposed to be straightforward and elegant, however, it is not typically done as a matter of course. Reasoning in a proof assistant requires "reimplementing" the code in those tools, which is far from trivial. SMLtoCoq provides an automatic translation of SML programs and function contracts into Coq. Programs are translated into Coq specifications, and function contracts into theorems, which can then be formally proved. Using the Equations plugin and other well established Coq libraries, SMLtoCoq is able to translate SML programs without side-effects containing partial functions, structures, functors, records, among others. Additionally, we provide a Coq version of many parts of SML's basis library, so that calls to these libraries are kept almost as is.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/22/2022

CoqQ: Foundational Verification of Quantum Programs

CoqQ is a framework for reasoning about quantum programs in the Coq proo...
research
08/04/2022

Deductive Verification of Smart Contracts with Dafny

We present a methodology to develop verified smart contracts. We write s...
research
01/23/2021

Calculating a backtracking algorithm: an exercise in monadic program derivation

Equational reasoning is among the most important tools that functional p...
research
02/19/2018

A Method to Translate Order-Sorted Algebras to Many-Sorted Algebras

Order-sorted algebras and many sorted algebras exist in a long history w...
research
05/18/2022

An approach to translating Haskell programs to Agda and reasoning about them

We are using the Agda programming language and proof assistant to formal...
research
12/20/2021

Relational Models of Microarchitectures for Formal Security Analyses

There is a growing need for hardware-software contracts which precisely ...
research
05/05/2020

Experiences from Exporting Major Proof Assistant Libraries

The interoperability of proof assistants and the integration of their li...

Please sign up or login with your details

Forgot password? Click here to reset