Automated Formal Verification

Code translation with Rust, Coq, Lean, and more

CHOOSE

Lightning Talk

Index

...the use of tools that mathematically analyze the space of possible behaviors of a design, rather than computing results for particular values.

 

...a powerful technique used to mathematically prove that an appropriately scaled model of a system does or does not exhibit desirable properties. [1]

Formal verification

Testing is a poor substitute for proof.

Category Theory for Programmers

[A] proof is rigorous when it is (or could be) written out in the first-order predicate language… as a sequence of inferences from the axioms ZFC, each inference made according to one of the stated rules…

Formally Verified Mathematics [2]

I verified some code

I don't need to understand functional programming and the de Bruijn Criterion to understand your work, right?

I don't have to, right?

mind the gap

"formality gap"

Model

Implementation

"Math" world

"Real" world

\sqrt{x}

< />

Real & math

Removes formality gap

Single code base

Well known language

Better than nothing

real = math

Removes formality gap

Single code base

Well known language

Better than nothing

cross the gap

real     math

Removes formality gap

Single code base

Well known language

Better than nothing

code translation

Real & math

"Math" world

"Real" world

Real = math

"Math" world

"Real" world

code translation

Intermediate

Representation

Why3

"Math" world

"Real" world

code translation

YO DAWG, I HEARD YOU LIKE CONTAINERS SO I PUT SOME CONTAINERS IN YOUR CONTAINER SO YOU CAN CONTAINER WHILE YOU CONTAINER

docker run -it \
    --privileged \
    --name notebook \
    --hostname $(hostname) \
    --gpus all \
    -p 1337:1337 \
    -p 13337:13337 \
    ghcr.io/jhwohlgemuth/lambda

Dockerfiles, scripts, and documentation

some light reading

verified contact