PML 2 : Integrated Program Verification in ML

01/10/2019
by   Rodolphe Lepigre, et al.
0

We present the PML 2 language, which provides a uniform environment for programming, and for proving properties of programs in an ML-like setting. The language is Curry-style and call-by-value, it provides a control operator (interpreted in terms of classical logic), it supports general recursion and a very general form of (implicit, non-coercive) subtyping. In the system, equational properties of programs are expressed using two new type formers, and they are proved by constructing terminating programs. Although proofs rely heavily on equational reasoning, equalities are exclusively managed by the type-checker. This means that the user only has to choose which equality to use, and not where to use it, as is usually done in mathematical proofs. In the system, writing proofs mostly amounts to applying lemmas (possibly recursive function calls), and to perform case analyses (pattern matchings).

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
10/30/2020

Programming Metamorphic Algorithms: An Experiment in Type-Driven Algorithm Design

In dependently typed programming, proofs of basic, structural properties...
research
09/02/2020

Check Your (Students') Proofs-With Holes

Cyp (Check Your Proofs) (Durner and Noschinski 2013; Traytel 2019) verif...
research
12/30/2020

Analysis of MiniJava Programs via Translation to ML

MiniJava is a subset of the object-oriented programming language Java. S...
research
09/11/2019

The Marriage of Univalence and Parametricity

Reasoning modulo equivalences is natural for everyone, including mathema...
research
02/15/2022

Weighted Programming

We study weighted programming, a programming paradigm for specifying mat...
research
05/24/2022

Modeling Asymptotic Complexity Using ACL2

The theory of asymptotic complexity provides an approach to characterizi...

Please sign up or login with your details

Forgot password? Click here to reset