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...
Analysis of the Conditions and Regulations of Contract Termination in the Laws of Iran and Iraq
Analysis of the Conditions and Regulations of Contract Termination in the Laws of Iran and Iraq
Contract termination is an essential legal tool in contractual systems, allowing the termination of contracts when specific conditions arise or when one party breaches its obligati...
Birth Certificates, Biology, And (In)Equality
Birth Certificates, Biology, And (In)Equality
<p><span>Birth certificates are the subject of fierce debate. This conflict is most visible in battles over gender markers for transgender people. Less visible, but no ...
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...
Electronic Land Certificates: Its Goals and Challenges
Electronic Land Certificates: Its Goals and Challenges
Recently, the Government through the Ministry of ATR/BPN launched a plan to adopt digital transformation. In accordance with this goal, there is a new breakthrough in making land c...

