International audienceInterpreters are complex pieces of software: even if the abstract interpretation theory and companion algorithms are well understood, their implementations are subject to bugs, that might question the soundness of their computations. While some formally verified abstract interpreters have been written in the past, writing and understanding them requires expertise in the use of proof assistants, and requires a non-trivial amount of interactive proofs. This paper presents a formally verified abstract interpreter fully programmed and proved correct in the F* verified programming environment. Thanks to F* refinement types and SMT prover capabilities we demonstrate a substantial saving in proof effort compared to previous w...
When doing an interactive proof about a piece of software, it is important that the underlying progr...
Abstract interpretation is a technique for developing static analyses. Yet, proving abstract interpr...
National audienceDeductive verification enables one to check that a program satisfies its specificat...
International audienceInterpreters are complex pieces of software: even if the abstract interpretati...
. Starting from a denotational and a term-rewriting based operational semantics (an interpreter) fo...
Dependently-typed languages allow for a new paradigm: proof-oriented or type-driven programming, con...
n this paper we push forward the idea of applying the abstract interpretation concepts to the proble...
We present the foundations of a verifier for higher-order functional programs with generics and recu...
It is often claimed that functional programming languages, and in particular pure functional langua...
International audienceWe present a new, completely redesigned, version of F*, a language that works ...
International audienceA common belief is that formalizing semantics of programming languages require...
International audienceThis invited talk describes the logical foundations and the status of the ongo...
University of Minnesota Ph.D. dissertation.December 2016. Major: Computer Science. Advisor: Gopalan...
Not only does our software grow larger and more complex, we also become more dependent on it, thus m...
We examine the problem of finding fully abstract translations between programming languages, i.e., t...
When doing an interactive proof about a piece of software, it is important that the underlying progr...
Abstract interpretation is a technique for developing static analyses. Yet, proving abstract interpr...
National audienceDeductive verification enables one to check that a program satisfies its specificat...
International audienceInterpreters are complex pieces of software: even if the abstract interpretati...
. Starting from a denotational and a term-rewriting based operational semantics (an interpreter) fo...
Dependently-typed languages allow for a new paradigm: proof-oriented or type-driven programming, con...
n this paper we push forward the idea of applying the abstract interpretation concepts to the proble...
We present the foundations of a verifier for higher-order functional programs with generics and recu...
It is often claimed that functional programming languages, and in particular pure functional langua...
International audienceWe present a new, completely redesigned, version of F*, a language that works ...
International audienceA common belief is that formalizing semantics of programming languages require...
International audienceThis invited talk describes the logical foundations and the status of the ongo...
University of Minnesota Ph.D. dissertation.December 2016. Major: Computer Science. Advisor: Gopalan...
Not only does our software grow larger and more complex, we also become more dependent on it, thus m...
We examine the problem of finding fully abstract translations between programming languages, i.e., t...
When doing an interactive proof about a piece of software, it is important that the underlying progr...
Abstract interpretation is a technique for developing static analyses. Yet, proving abstract interpr...
National audienceDeductive verification enables one to check that a program satisfies its specificat...