Program synthesis from polymorphic refinement types
We present a method for synthesizing recursive functions that provably satisfy a given
specification in the form of a polymorphic refinement type. We observe that such …
specification in the form of a polymorphic refinement type. We observe that such …
Continuous reasoning: Scaling the impact of formal methods
PW O'Hearn - Proceedings of the 33rd annual ACM/IEEE symposium …, 2018 - dl.acm.org
This paper describes work in continuous reasoning, where formal reasoning about a
(changing) codebase is done in a fashion which mirrors the iterative, continuous model of …
(changing) codebase is done in a fashion which mirrors the iterative, continuous model of …
Semantic code refactoring for abstract data types
Modifications to the data representation of an abstract data type (ADT) can require
significant semantic refactoring of the code. Motivated by this observation, this paper …
significant semantic refactoring of the code. Motivated by this observation, this paper …
Inference of robust reachability constraints
Y Sellami, G Girol, F Recoules, D Couroussé… - Proceedings of the …, 2024 - dl.acm.org
Characterization of bugs and attack vectors is in many practical scenarios as important as
their finding. Recently, Girol et. al. have introduced the concept of robust reachability, which …
their finding. Recently, Girol et. al. have introduced the concept of robust reachability, which …
Symbolic execution with existential second-order constraints
Symbolic execution systematically explores program paths by solving path conditions---
formulas over symbolic variables. Typically, the symbolic variables range over numbers …
formulas over symbolic variables. Typically, the symbolic variables range over numbers …
Specification synthesis with constrained Horn clauses
The problem of synthesizing specifications of undefined procedures has a broad range of
applications, but the usefulness of the generated specifications depends on their quality. In …
applications, but the usefulness of the generated specifications depends on their quality. In …
Phased synthesis of divide and conquer programs
We propose a fully automated method that takes as input an iterative or recursive reference
implementation and produces divide-and-conquer implementations that are functionally …
implementation and produces divide-and-conquer implementations that are functionally …
Strategy synthesis for linear arithmetic games
Many problems in formal methods can be formalized as two-player games. For several
applications—program synthesis, for example—in addition to determining which player wins …
applications—program synthesis, for example—in addition to determining which player wins …
Learning stateful preconditions modulo a test generator
In this paper, we present a novel learning framework for inferring stateful preconditions (ie,
preconditions constraining not only primitive-type inputs but also non-primitive-type object …
preconditions constraining not only primitive-type inputs but also non-primitive-type object …
Theory exploration powered by deductive synthesis
This paper presents a symbolic method for automatic theorem generation based on
deductive inference. Many software verification and reasoning tasks require proving …
deductive inference. Many software verification and reasoning tasks require proving …