Animated Logic: Correct Functional Conversion to Conjunctive Normal Form

by   Pedro Barroso, et al.

We present an approach to obtain formally verified implementations of classical Computational Logic algorithms. We choose the Why3 platform because it allows to implement functions in a style very close to the mathematical definitions, as well as it allows a high degree of automation in the verification process. As proof of concept, we present a mathematical definition of the algorithm to convert propositional formulae to conjunctive normal form, implementations in WhyML (the Why3 language, very similar to OCaml), and proofs of correctness of the implementations. We apply our proposal on two variants of this algorithm: one in direct-style and another with an explicit stack structure. Being both first-order versions, Why3 processes the proofs naturally.



page 6

page 11

page 15

page 17

page 20

page 21

page 22

page 23


A New Style of Mathematical Proof

Mathematical proofs will play a crucial role in building a universal dig...

Working with first-order proofs and provers

Verifying software correctness has always been an important and complica...

A Constructive Logic with Classical Proofs and Refutations (Extended Version)

We study a conservative extension of classical propositional logic disti...

What Does This Notation Mean Anyway?

Following the introduction of BNF notation by Backus for the Algol 60 re...

Syntheto: A Surface Language for APT and ACL2

Syntheto is a surface language for carrying out formally verified progra...

The Last Mile: High-Assurance and High-Speed Cryptographic Implementations

We develop a new approach for building cryptographic implementations. Ou...

Clausal Temporal Resolution

In this article, we examine how clausal resolution can be applied to a s...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.