Javascript must be enabled to continue!
Automated verification of termination certificates
View through CrossRef
Vérification automatisée de certificats de terminaison
S'assurer qu'un programme informatique se comporte bien, surtout dans des applications critiques (santé, transport, énergie, communications, etc.) est de plus en plus important car les ordinateurs et programmes informatiques sont de plus en plus omniprésents, voir essentiel au bon fonctionnement de la société. Mais comment vérifier qu'un programme se comporte comme prévu, quand les informations qu'il prend en entrée sont de très grande taille, voire de taille non bornée a priori ? Pour exprimer avec exactitude ce qu'est le comportement d'un programme, il est d'abord nécessaire d'utiliser un langage logique formel. Cependant, comme l'a montré Gödel dans, dans tout système formel suffisamment riche pour faire de l'arithmétique, il y a des formules valides qui ne peuvent pas être prouvées. Donc il n'y a pas de programme qui puisse décider si toute propriété est vraie ou fausse. Cependant, il est possible d'écrire un programme qui puisse vérifier la correction d'une preuve. Ce travail utilisera justement un tel programme, Coq, pour formellement vérifier la correction d'un certain programme. Dans cette thèse, nous expliquons le développement d'une nouvelle version de Rainbow, plus rapide et plus sûre, basée sur le mécanisme d'extraction de Coq. La version précédente de Rainbow vérifiait un certificat en deux étapes. Premièrement, elle utilisait un programme OCaml non certifié pour traduire un fichier CPF en un script Coq, en utilisant la bibliothèque Coq sur la théorie de la réécriture et la terminaison appelée CoLoR. Deuxièmement, elle appelait Coq pour vérifier la correction du script ainsi généré. Cette approche est intéressante car elle fournit un moyen de réutiliser dans Coq des preuves de terminaison générée par des outils extérieurs à Coq. C'est également l'approche suivie par CiME3. Mais cette approche a aussi plusieurs désavantages. Premièrement, comme dans Coq les fonctions sont interprétées, les calculs sont beaucoup plus lents qu'avec un langage où les programmes sont compilés vers du code binaire exécutable. Deuxièmement, la traduction de CPF dans Coq peut être erronée et conduire au rejet de certificats valides ou à l'acceptation de certificats invalides. Pour résoudre ce deuxième problème, il est nécessaire de définir et prouver formellement la correction de la fonction vérifiant si un certificat est valide ou non. Et pour résoudre le premier problème, il est nécessaire de compiler cette fonction vers du code binaire exécutable. Cette thèse montre comment résoudre ces deux problèmes en utilisant l'assistant à la preuve Coq et son mécanisme d'extraction vers le langage de programmation OCaml. En effet, les structures de données et fonctions définies dans Coq peuvent être traduits dans OCaml et compilées en code binaire exécutable par le compilateur OCaml. Une approche similaire est suivie par CeTA en utilisant l'assistant à la preuve Isabelle et le langage Haskell.
Title: Automated verification of termination certificates
Description:
Vérification automatisée de certificats de terminaison
S'assurer qu'un programme informatique se comporte bien, surtout dans des applications critiques (santé, transport, énergie, communications, etc.
) est de plus en plus important car les ordinateurs et programmes informatiques sont de plus en plus omniprésents, voir essentiel au bon fonctionnement de la société.
Mais comment vérifier qu'un programme se comporte comme prévu, quand les informations qu'il prend en entrée sont de très grande taille, voire de taille non bornée a priori ? Pour exprimer avec exactitude ce qu'est le comportement d'un programme, il est d'abord nécessaire d'utiliser un langage logique formel.
Cependant, comme l'a montré Gödel dans, dans tout système formel suffisamment riche pour faire de l'arithmétique, il y a des formules valides qui ne peuvent pas être prouvées.
Donc il n'y a pas de programme qui puisse décider si toute propriété est vraie ou fausse.
Cependant, il est possible d'écrire un programme qui puisse vérifier la correction d'une preuve.
Ce travail utilisera justement un tel programme, Coq, pour formellement vérifier la correction d'un certain programme.
Dans cette thèse, nous expliquons le développement d'une nouvelle version de Rainbow, plus rapide et plus sûre, basée sur le mécanisme d'extraction de Coq.
La version précédente de Rainbow vérifiait un certificat en deux étapes.
Premièrement, elle utilisait un programme OCaml non certifié pour traduire un fichier CPF en un script Coq, en utilisant la bibliothèque Coq sur la théorie de la réécriture et la terminaison appelée CoLoR.
Deuxièmement, elle appelait Coq pour vérifier la correction du script ainsi généré.
Cette approche est intéressante car elle fournit un moyen de réutiliser dans Coq des preuves de terminaison générée par des outils extérieurs à Coq.
C'est également l'approche suivie par CiME3.
Mais cette approche a aussi plusieurs désavantages.
Premièrement, comme dans Coq les fonctions sont interprétées, les calculs sont beaucoup plus lents qu'avec un langage où les programmes sont compilés vers du code binaire exécutable.
Deuxièmement, la traduction de CPF dans Coq peut être erronée et conduire au rejet de certificats valides ou à l'acceptation de certificats invalides.
Pour résoudre ce deuxième problème, il est nécessaire de définir et prouver formellement la correction de la fonction vérifiant si un certificat est valide ou non.
Et pour résoudre le premier problème, il est nécessaire de compiler cette fonction vers du code binaire exécutable.
Cette thèse montre comment résoudre ces deux problèmes en utilisant l'assistant à la preuve Coq et son mécanisme d'extraction vers le langage de programmation OCaml.
En effet, les structures de données et fonctions définies dans Coq peuvent être traduits dans OCaml et compilées en code binaire exécutable par le compilateur OCaml.
Une approche similaire est suivie par CeTA en utilisant l'assistant à la preuve Isabelle et le langage Haskell.
Related Results
Intrinsic RNA hairpin-mediated transcription termination at high temperature in
Thermus aquaticus
Intrinsic RNA hairpin-mediated transcription termination at high temperature in
Thermus aquaticus
ABSTRACT
Transcription termination establishes gene boundaries and limits regulatory interference. In bacteria, intrinsic termination, mediated b...
Verification of High Speed on Chip with VIP using System Verilog
Verification of High Speed on Chip with VIP using System Verilog
Abstract - The exploration work is addressing verification of High speed on chips protocol; we've used the system Verilog grounded test bench structure. I developed a system Verilo...
The moment of termination of corporate legal relations
The moment of termination of corporate legal relations
The long-term nature of corporate legal relations necessitates the theoretical selection of certain moments of their emergence, change and termination. The update of the corporate ...
Rho-dependent terminators and transcription termination
Rho-dependent terminators and transcription termination
Rho-dependent transcription terminators participate in sophisticated genetic regulatory mechanisms, in both bacteria and phages; they occur in regulatory regions preceding the codi...
Enhancing Non-Formal Learning Certificate Classification with Text Augmentation: A Comparison of Character, Token, and Semantic Approaches
Enhancing Non-Formal Learning Certificate Classification with Text Augmentation: A Comparison of Character, Token, and Semantic Approaches
Aim/Purpose: The purpose of this paper is to address the gap in the recognition of prior learning (RPL) by automating the classification of non-formal learning certificates using d...
Shenzi 16-Inch Oil Export SCR CVA Verification
Shenzi 16-Inch Oil Export SCR CVA Verification
Abstract
In 2006 Enterprise developed a 16-inch oil export system from Shenzi field located in Green Canyon Block 653 in the Gulf of Mexico, approximately 120 nau...
Hybrid Approach for Certificate Verification using Blockchain in Cloud Environment
Hybrid Approach for Certificate Verification using Blockchain in Cloud Environment
Abstract
The current analog system for managing educational certificates was unreliable and slow. Students have to request their official transcripts from their university ...
A worldwide analysis of ISO 9000 standard diffusion
A worldwide analysis of ISO 9000 standard diffusion
PurposeTo provide a cross‐section of International Standardization Organization (ISO) 9000 quality certification diffusion over time and its impact on industrial systems.Design/met...

