Certification des raisonnements formels portant sur des systèmes d’information critiques

Depuis son ouverture sur les différents secteurs de la vie courante, l’informatique nous a permis de rouler des véhicules sans conducteur, de déplacer des robots sur Mars, d’assister des séances de chirurgie par des robots, de gérer des bases des données de banques, etc. En effet, la liste des applications assistées par ordinateur est devenue innombrable. Des applications critiques, telles que nous avons cité, mettent en jeu des ressources humaines, matérielles et financières importantes. La vérification que ces systèmes informatiques accomplissent leurs rôles souhaités en utilisant des méthodes basées sur des notions mathématiques et logiques, appelées méthodes formelles  , est fortement recommandée. Ces méthodes permettent de définir un système, de décrire ses propriétés et d’établir leurs preuves de validation dans le même environnement formel. Ces preuves se construisent formellement et conformément à la description du système.

Ancien sujet mathématique et philosophique, la théorie de la preuve joue de nos jours un rôle important en informatique, notamment pour le développement des logiciels critiques. Elle permet d’étudier les preuves en tant qu’objets formels. Jadis, on se contentait des preuves développées par l’homme. De nos jours, ces preuves sont devenues grandes et portent sur des systèmes de taille industrielle. L’homme est devenu incapable de les certifier et est remplacé par l’ordinateur.

Le raisonnement par récurrence est parmi les raisonnements mathématiques les plus adéquats pour le traitement des structures des données ou des fonctions récursivement définies. Les premières traces de ce raisonnement remontent à la philosophie grecque :

« De l’induction, son importance égale à celle du syllogisme  [. . .] ; l’induction est plus évidente que le syllogisme » Le premier maître  [Saint-Hilaire1843]. Depuis, il est utilisé par plusieurs mathématiciens et philosophes dans le monde oriental et occidental. Des mathématiciens comme Al-Karkhi  , Pascal  et Fermat  ont utilisé ce raisonnement pour résoudre des problèmes mathématiques [Al-Karkhi et Woepcke1853, Pascal et Lafuma1963, Brassinne1853]. D’autres savants l’ont considéré parmi les ressources de développement des mathématiques et de toutes les sciences.

« Si les mathématiques n’en avaient pas d’autre elles seraient donc tout de suite arrêtées dans leur développement ; mais elles ont de nouveau recours au même procédé, c’est-à-dire au raisonnement par récurrence et elles peuvent continuer leur marche en avant.

Raisonnement par récurrence noethérienne

Fréquemment utilisé dans la théorie de la preuve, le principe général de raisonnement par récurrence est le suivant : une proposition P définie sur un ensemble d’éléments E est vraie s’il existe une démonstration que cette proposition est vraie pour tout élément x de E en supposant qu’elle l’est pour tous les éléments plus petits que x . On dit que la proposition est montrée vraie par récurrence. Ce principe ne peut être appliqué que sur des ensembles d’éléments noethériens munis d’ordres de récurrence qu’on note par <. D’une façon formelle, on définit le principe général de récurrence noethérienne comme suit :
(RN ) : (∀y ∈ E,(∀ z ∈ E, z < y ⇒ P(z )) ⇒ P(y)) ⇒ ∀x ∈ E,P(x ).

L’application du principe RN sur l’ensemble E distingue les instances de P qui jouent le rôle des conclusions de récurrence, telles que (P(y), ∀y ∈ E), et celles qui sont des hypothèses de récurrence, telles que P(z ), ∀z ∈ E, z < y. La relation établie entre toutes les conclusions et leurs hypothèses de récurrence est nommée un schéma de récurrence. Ce schéma contient des cas de base qui n’ont pas d’hypothèses de récurrence, et des cas de récurrence qui en ont.

Correction des preuves par récurrence noethérienne 

La correction de la preuve par récurrence noethérienne dépend fortement de l’ordre de récurrence noethérienne. En effet, la preuve par récurrence d’une proposition P ne peut être considérée comme correcte que si l’ordre < est noethérien, i.e. garantit qu’il n’existe aucune séquence d’éléments de ε infiniment décroissante. La vérification de la correction de ces preuves consiste à la vérification que toute hypothèse de récurrence introduite est plus petite que sa conclusion.

Table des matières

Introduction
1 Raisonnement par récurrence
1.1 Raisonnement par récurrence noethérienne
1.2 Correction des preuves par récurrence noethérienne
1.3 Raisonnement par récurrence dans la logique du premier ordre
2 Exemple illustratif
3 Intégration des preuves par récurrence implicite dans Coq
3.1 Appeler Spike à partir de Coq
3.2 Intégrer la récurrence implicite à la Spike dans Coq
3.3 Effectuer le raisonnement par récurrence paresseuse et mutuelle interactivement dans Coq
4 Plan de la thèse
Chapitre 1 Preuves par récurrence noethérienne dans la logique de premier ordre
1.1 Algèbres de termes
1.2 Conséquence inductive
1.3 Ordres noethériens sur des clauses égalitaires
1.4 Raisonnement par récurrence noethérienne dans la logique égalitaire
1.4.1 Principe général de la récurrence noethérienne
1.4.2 Récurrence basée sur les termes vs récurrence basée sur les clauses
1.4.3 Exécution de la récurrence paresseuse et mutuelle par la récurrence explicite
Chapitre 2 Spike : un démonstrateur par récurrence implicite
2.1 Système d’inférence abstrait A
2.1.1 Définition
2.1.2 Correction
2.2 Système d’inférence de Spike
2.2.1 Techniques et raisonnements intégrés dans Spike
2.2.2 Version simplifiée de système d’inférence de Spike
2.2.3 Correction
2.3 Preuves par récurrence implicite par Spike
2.3.1 Exemple d’une spécification conditionnelle
2.3.2 Stratégie de construction des preuves
2.3.3 Résultats fournis par Spike
2.4 Correction des preuves par récurrence implicite de Spike
Chapitre 3 Certification du raisonnement par récurrence sur les formules
3.1 Certification formelle
3.1.1 Preuve, trace de preuve et certification
3.1.2 Méthodes et approches générales
3.1.3 Environnement de preuve certifiée
3.1.4 Certification d’un assistant de preuve automatique
3.2 Certification d’un ATP basé sur la récurrence sur les formules
3.2.1 Fusion d’un ATP basé sur la récurrence sur les formules et un ITP certifié
3.2.2 Construction automatique d’une preuve par récurrence sur les formules à l’ATP directement dans un ITP certifié
3.2.3 Validation interactive d’un théorème par récurrence sur les formules à l’ATP dans un ITP certifié
Chapitre 4 Coq : un environnement de preuve certifiée
4.1 Spécification GALLINA
4.1.1 Section, environnement et contexte
4.1.2 Terme GALLINA
4.1.3 Type inductif
4.1.4 Fonction récursive
4.2 Construction des preuves certifiées
4.2.1 But et séquent
4.2.2 Construction des preuves (Tactiques)
4.2.3 Certification
4.3 Raisonnement par récurrence noethérienne
4.3.1 Relation noethérienne
4.3.2 Récurrence structurelle
Conclusion

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *