An overview of the Leon verification system: Verification by translation to recursive functions
We present the Leon verification system for a subset of the Scala programming language.
Along with several functional features of Scala, Leon supports imperative constructs such as …
Along with several functional features of Scala, Leon supports imperative constructs such as …
Complete functional synthesis
Synthesis of program fragments from specifications can make programs easier to write and
easier to reason about. To integrate synthesis into programming languages, synthesis …
easier to reason about. To integrate synthesis into programming languages, synthesis …
Synthesis modulo recursive functions
We describe techniques for synthesis and verification of recursive functional programs over
unbounded domains. Our techniques build on top of an algorithm for satisfiability modulo …
unbounded domains. Our techniques build on top of an algorithm for satisfiability modulo …
Refinement reflection: complete verification with SMT
We introduce Refinement Reflection, a new framework for building SMT-based deductive
verifiers. The key idea is to reflect the code implementing a user-defined function into the …
verifiers. The key idea is to reflect the code implementing a user-defined function into the …
Satisfiability modulo recursive programs
We present a semi-decision procedure for checking satisfiability of expressive correctness
properties of recursive first-order functional programs. In our approach, both properties and …
properties of recursive first-order functional programs. In our approach, both properties and …
Natural proofs for structure, data, and separation
We propose natural proofs for reasoning with programs that manipulate data-structures
against specifications that describe the structure of the heap, the data stored within it, and …
against specifications that describe the structure of the heap, the data stored within it, and …
Complete first-order reasoning for properties of functional programs
Several practical tools for automatically verifying functional programs (eg, Liquid Haskell
and Leon for Scala programs) rely on a heuristic based on unrolling recursive function …
and Leon for Scala programs) rely on a heuristic based on unrolling recursive function …
Natural proofs for data structure manipulation in C using separation logic
E Pek, X Qiu, P Madhusudan - ACM SIGPLAN Notices, 2014 - dl.acm.org
The natural proof technique for heap verification developed by Qiu et al.[32] provides a
platform for powerful sound reasoning for specifications written in a dialect of separation …
platform for powerful sound reasoning for specifications written in a dialect of separation …
Beyond the elementary representations of program invariants over algebraic data types
First-order logic is a natural way of expressing properties of computation. It is traditionally
used in various program logics for expressing the correctness properties and certificates …
used in various program logics for expressing the correctness properties and certificates …