FoCaLiZe: Inside an F-IDE

@inproceedings{Pessaux2014FoCaLiZeIA,
  title={FoCaLiZe: Inside an F-IDE},
  author={François Pessaux},
  booktitle={F-IDE},
  year={2014}
}
For years, Integrated Development Environments have demonstrated their usefulness in order to ease the development of software. High-level security or safety systems require proofs of compliance to standards, based on analyses such as code review and, increasingly nowadays, formal proofs of conformance to specifications. This implies mixing computational and logical aspects all along the development, which naturally raises the need for a notion of Formal IDE. This paper examines the FoCaLiZe… 

Termination Proofs for Recursive Functions in FoCaLiZe Extended Abstract

This paper extends the language and the compiler to handle termination proofs relying on well-founded relations or measures, and proposes an approach where the user's burden is lighten as much as possible, leaving glue code to the compiler.

Termination Proofs for Recursive Functions in FoCaLiZe

This paper extends the language and the compiler to handle termination proofs relying on well-founded relations or measures, and proposes an approach where the user's burden is lightened as much as possible, leaving glue code to the compiler.

Modular Verification of Programs with Effects and Effect Handlers in Coq

FreeSpec is introduced, a formalism built upon the key idea that components can be modelled as programs with algebraic effects to be realized by other components to pave the way for “architectural attacks”.

Modular verification of programs with effects and effects handlers

FreeSpec is introduced, a formalism built upon the key idea that components can be Modeled as programs with algebraic effects to be realized by other components to modular modeling of a complex system.

Modular verification of programs with effects and effects handlers

FreeSpec is introduced, a formalism built upon the key idea that components can be Modeled as programs with algebraic effects to be realized by other components to modular modeling of a complex system.

FreeSpec: specifying, verifying, and executing impure computations in Coq

This article proposes a novel iteration of FreeSpec formalism specifically designed to write certified programs and libraries, and presents in depth how this formalism is used to verify a static files webserver.

Formal Reasoning Using an Iterative Approach with an Integrated Web IDE

The paper discusses the IDE's usage in verified software development using several examples drawn from actual classroom lectures and student assignments to illustrate principles of design-by-contract and the iterative process of creating and subsequently refining assertions, such as loop invariants in object-based code.

Object-Oriented Mechanisms for Interoperability between Proof Systems. (Mécanismes Orientés-Objets pour l'Interopérabilité entre Systèmes de Preuve)

Dedukti is used as a meta-language for eliminating unnecessary axioms in interoperability of proof systems through FoCaLiZe, Zenon, and Dedukti.

Interactive Theorem Proving: 8th International Conference, ITP 2017, Brasília, Brazil, September 26–29, 2017, Proceedings

The metaprogramming language currently in use in Lean, a new open source theorem prover that is designed to bridge the gap between interactive use and automation, is described and evidence is provided to show that the implementation is performant, and that it provides a convenient and flexible way of writing not only small-scale interactive tactics, but also more substantial kinds of automation.

FoCaLiZe and Dedukti to the Rescue for Proof Interoperability

A methodology to combine proofs coming from different theorem provers, which relies on the Dedukti logical framework as a common formalism in which proofs can be translated and combined, is proposed and illustrated on the Sieve of Eratosthenes.

References

SHOWING 1-10 OF 24 REFERENCES

Development Life-cycle of Critical Software Under FoCaL

Development of a Generic Voter under FoCal

This paper examines how to specify and implement a concrete example following a safety development cycle customised to FoCal and shows that indeed it is feasible and how FoCal features fit with software best practises like modularity, reuse, fault confinement and maintenance.

Algorithms and Proofs Inheritance in the FOC Language

This paper presents the FOC langugage, dedicated to the development of certified computer algebra libraries, and describes the static analyses, which reject inconsistent programs.

On the way to certify Computer Algebra Systems

Making proofs in a hierarchy of mathematical structures

A coding style is proposed to minimize the number of proofs that must be redone after a redefinition of an operation, which may have an huge impact on some of the proofs of the species, and may even invalidate some of them.

Algebraic Structures and Dependent Records

This paper recalls the conditions that must be fulfilled when going from a species to another, as formalized by S. Boulme in his PhD [3], and shows how these conditions can be checked through a static analysis of the Foc code.

Lambda Lifting: Treansforming Programs to Recursive Equations

Different ways of doing lambda lifting are presented, as well as reasons for rejecting or selecting the method used in the Lazy ML compiler.

How to Write a Proof

The structure of mathematical proofs has not changed in 300 years, and as many as a third of all papers published in mathematical journals contain mistakes not just minor errors, but incorrect theorems and proofs.

Conception et implantation du langage FoC pour le développement de logiciels certifiés. (Design and implementation of the FoC language for developping certified software)

La traduction dans le langage de preuves COQ, la liaison retardee etant traduite par des lambda-abstractions, nous montrons ensuite comment utiliser cette technique pour optimiser les executables OCAML.

Specification d'un environnement dedie a la programmation certifiee de bibliotheques de calcul formel

Cette these decrit un systeme pour specifier, programmer et certifier (prouver) des bibliotheques de calcul formel. Chaque unite de bibliotheque represente une certaine structure algebrique, comme