Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Simon Robillard is active.

Publication


Featured researches published by Simon Robillard.


symposium on principles of programming languages | 2017

Coming to terms with quantified reasoning

Laura Kovács; Simon Robillard; Andrei Voronkov

The theory of finite term algebras provides a natural framework to describe the semantics of functional languages. The ability to efficiently reason about term algebras is essential to automate program analysis and verification for functional or imperative programs over inductively defined data types such as lists and trees. However, as the theory of finite term algebras is not finitely axiomatizable, reasoning about quantified properties over term algebras is challenging. In this paper we address full first-order reasoning about properties of programs manipulating term algebras, and describe two approaches for doing so by using first-order theorem proving. Our first method is a conservative extension of the theory of term alge- bras using a finite number of statements, while our second method relies on extending the superposition calculus of first-order theorem provers with additional inference rules. We implemented our work in the first-order theorem prover Vampire and evaluated it on a large number of inductive datatype benchmarks, as well as game theory constraints. Our experimental results show that our methods are able to find proofs for many hard problems previously unsolved by state-of-the-art methods. We also show that Vampire implementing our methods outperforms existing SMT solvers able to deal with inductive data types.


international symposium on computing and networking | 2013

Powerlists in Coq: Programming and Reasoning

Frédéric Loulergue; Virginia Niculescu; Simon Robillard

For parallel programs, correctness by construction is an essential feature since debugging is extremely difficult and costly. Building correct programs by construction is not a simple task, and usually the methodologies used for this purpose are rather theoretical and based on a pen-and-paper style. A better approach could be based on tools and theories that allow a user to develop an efficient parallel application by easily implementing simple programs satisfying conditions, ideally automatically proved. Power lists theory and its variants represent a good theoretical base for such an approach, and the Coq proof assistant is a tool that could be used for automatic proofs. The goal of this paper is to model the power list theory in Coq, and to use this modelling to program and reason about parallel programs in Coq. This represents the first step in building a framework to ease the development of correct and verifiable parallel programs.


international conference on logic programming | 2015

Reasoning About Loops Using Vampire in KeY

Wolfgang Ahrendt; Laura Kovács; Simon Robillard

We describe symbol elimination and consequence finding in the first-order theorem prover Vampire for automatic generation of quantified invariants, possibly with quantifier alternations, of loops with arrays. Unlike the previous implementation of symbol elimination in Vampire, our work is not limited to a specific programming language but provides a generic framework by relying on a simple guarded command representation of the input loop. We also improve the loop analysis part in Vampire by generating loop properties more easily handled by the saturation engine of Vampire. Our experiments show that, with our changes, the number of generated invariants is decreased, in some cases, by a factor of 20. We also provide a framework to use our approach to invariant generation in conjunction with pre- and post-conditions of program loops. We use the program specification to find relevant invariants as well as to verify the partial correctness of the loop. As a case study, we demonstrate how symbol elimination in Vampire can be used as an interface for realistic imperative languages, by integrating our tool in the KeY verification system, thus allowing reasoning about loops in Java programs in a fully automated way, without any user guidance.


acm symposium on applied computing | 2014

Formal derivation and extraction of a parallel program for the all nearest smaller values problem

Frédéric Loulergue; Simon Robillard; Julien Tesson; Joeffrey Legaux; Zhenjiang Hu

The All Nearest Smaller Values (ANSV) problem is an important problem for parallel programming as it can be used to solve several problems and is one of the phases of several other parallel algorithms. We formally develop by construction a functional parallel program for solving the ANSV problem using the theory of Bulk Synchronous Parallel (BSP) homomorphisms within the Coq proof assistant. The performances of the Bulk Synchronous Parallel ML program obtained from Coq is compared to a version derived without software support (pen-and-paper) and implemented using the Orléans Skeleton Library of algorithmic skeletons, and to a (unproved correct) direct implementation of the BSP algorithm of He and Huang.


international joint conference on automated reasoning | 2018

Superposition with Datatypes and Codatatypes

Jasmin Christian Blanchette; Nicolas Peltier; Simon Robillard

The absence of a finite axiomatization of the first-order theory of datatypes and codatatypes represents a challenge for automatic theorem provers. We propose two approaches to reason by saturation in this theory: one is a conservative theory extension with a finite number of axioms; the other is an extension of the superposition calculus, in conjunction with axioms. Both techniques are refutationally complete with respect to nonstandard models of datatypes and nonbranching codatatypes. They take into account the acyclicity of datatype values and the existence and uniqueness of cyclic codatatype values. We implemented them in the first-order prover Vampire and compare them experimentally.


symbolic and numeric algorithms for scientific computing | 2014

Catamorphism Generation and Fusion Using Coq

Simon Robillard

Catamorphisms are a class of higher-order functions that recursively traverse an inductive data structure to produce a value. An important result related to catamorphisms is the fusion theorem, which gives sufficient conditions to rewrite compositions of catamorphisms. We use the Coq proof assistant to automatically define a catamorphism and a fusion theorem according to an arbitrary inductive type definition. Catamorphisms are then used to define functional specifications and the fusion theorem is applied to derive efficient programs that match those specifications.


Vampire Workshop | 2015

Reasoning About Loops Using Vampire.

Laura Kovács; Simon Robillard


Proceedings of the 3rd Vampire Workshop | 2016

Theory-Specific Reasoning about Loops with Arrays using Vampire

Yuting Chen; Laura Kovács; Simon Robillard


Archive | 2016

Analysis of Iterative or Recursive Programs Using a First-Order Theorem Prover

Simon Robillard


Approches Formelles dans l'Assistance au Développement de Logiciels (AFADL) | 2013

Dérivation formelle et extraction d'un programme data-parallèle pour le problème des valeurs inférieures les plus proches

Frédéric Loulergue; Simon Robillard; Julien Tesson; Joeffrey Legaux; Zhenjiang Hu

Collaboration


Dive into the Simon Robillard's collaboration.

Top Co-Authors

Avatar

Laura Kovács

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Zhenjiang Hu

National Institute of Informatics

View shared research outputs
Top Co-Authors

Avatar

Wolfgang Ahrendt

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Nicolas Peltier

Centre national de la recherche scientifique

View shared research outputs
Researchain Logo
Decentralizing Knowledge