Raisonnement automatisé pour la logique de séparation avec des définitions inductives

La contribution principale de cette thèse est un système de preuve correct et complet pour les implications entre les prédicats inductifs, fréquemment rencontrées lors de la vérification des programmes qui utilisent des structures de données récursives allouées dynamiquement. Nous introduisons un sy...

Full description

Bibliographic Details
Main Author: Serban, Cristina
Other Authors: Grenoble Alpes
Language:en
Published: 2018
Subjects:
004
Online Access:http://www.theses.fr/2018GREAM030/document
id ndltd-theses.fr-2018GREAM030
record_format oai_dc
spelling ndltd-theses.fr-2018GREAM0302019-05-22T03:29:33Z Raisonnement automatisé pour la logique de séparation avec des définitions inductives Automated reasoning in separation logic with inductive definitions Vérification formelle Théorie des langages Analyse de programmes Logique de séparation Formal verification Automata theory Program Analysis Separation Logic 004 La contribution principale de cette thèse est un système de preuve correct et complet pour les implications entre les prédicats inductifs, fréquemment rencontrées lors de la vérification des programmes qui utilisent des structures de données récursives allouées dynamiquement. Nous introduisons un système de preuve généralisé pour la logique du premier ordre et nous l'adaptons à la logique de séparation, car ceci est un cadre qui répond aux plusieurs difficultés posées par le raisonnement sur les tas alloués dynamiquement. La correction et la complétude sont assurées par quatre restrictions sémantiques et nous proposons également un semi-algorithme de recherche de preuves qui devient une procédure de décision pour le problème d'implication lorsque les restrictions sémantiques sont respectées.Ce raisonnement d'ordre supérieur sur les implications nécessite des procédures de décision de premier ordre pour la logique sous-jacente lors de l'application des règles d'inférence et lors de la recherche des preuves. Ainsi, nous fournissons deux procédures de décision pour la logique de séparation, en considérant le fragment sans quantificateurs et le fragment quantifié de façon Exists*Forall*, qui ont été intégrées dans le solveur SMT open source CVC4.Finalement, nous présentons une implémentation de notre système de preuve pour la logique de séparation, qui utilise ces procédures de décision. Étant donné des prédicats inductifs et une requête d'implication, un avertissement est émis lorsqu'une ou plusieurs restrictions sémantiques sont violées. Si l'implication est valide, la sortie est une preuve. Sinon, un ou plusieurs contre-exemples sont fournis. The main contribution of this thesis is a sound and complete proof system for entailments between inductive predicates, which are frequently encountered when verifying programs that work with dynamically allocated recursive data structures. We introduce a generalized proof system for first-order logic, and then adapt it to separation logic, a framework that addresses many of the difficulties posed by reasoning about dynamically allocated heaps. Soundness and completeness are ensured through four semantic restrictions and we also propose a proof-search semi-algorithm that becomes a decision procedure for the entailment problem when the semantic restrictions hold.This higher-order reasoning about entailments requires first-order decision procedures for the underlying logic when applying inference rules and during proof search. Thus, we provide two decision procedures for separation logic, considering the quantifier-free and the Exists*Forall*-quantified fragments, which were integrated in the open-source, DPLL(T)-based SMT solver CVC4.Finally, we also give an implementation of our proof system for separation logic, which uses these decision procedures. Given some inductive predicate definitions and an entailment query as input, a warning is issued when one or more semantic restrictions are violated. If the entailment is found to be valid, the output is a proof. Otherwise, one or more counterexamples are provided. Electronic Thesis or Dissertation Text en http://www.theses.fr/2018GREAM030/document Serban, Cristina 2018-05-31 Grenoble Alpes Iosif, Radu
collection NDLTD
language en
sources NDLTD
topic Vérification formelle
Théorie des langages
Analyse de programmes
Logique de séparation
Formal verification
Automata theory
Program Analysis
Separation Logic
004
spellingShingle Vérification formelle
Théorie des langages
Analyse de programmes
Logique de séparation
Formal verification
Automata theory
Program Analysis
Separation Logic
004
Serban, Cristina
Raisonnement automatisé pour la logique de séparation avec des définitions inductives
description La contribution principale de cette thèse est un système de preuve correct et complet pour les implications entre les prédicats inductifs, fréquemment rencontrées lors de la vérification des programmes qui utilisent des structures de données récursives allouées dynamiquement. Nous introduisons un système de preuve généralisé pour la logique du premier ordre et nous l'adaptons à la logique de séparation, car ceci est un cadre qui répond aux plusieurs difficultés posées par le raisonnement sur les tas alloués dynamiquement. La correction et la complétude sont assurées par quatre restrictions sémantiques et nous proposons également un semi-algorithme de recherche de preuves qui devient une procédure de décision pour le problème d'implication lorsque les restrictions sémantiques sont respectées.Ce raisonnement d'ordre supérieur sur les implications nécessite des procédures de décision de premier ordre pour la logique sous-jacente lors de l'application des règles d'inférence et lors de la recherche des preuves. Ainsi, nous fournissons deux procédures de décision pour la logique de séparation, en considérant le fragment sans quantificateurs et le fragment quantifié de façon Exists*Forall*, qui ont été intégrées dans le solveur SMT open source CVC4.Finalement, nous présentons une implémentation de notre système de preuve pour la logique de séparation, qui utilise ces procédures de décision. Étant donné des prédicats inductifs et une requête d'implication, un avertissement est émis lorsqu'une ou plusieurs restrictions sémantiques sont violées. Si l'implication est valide, la sortie est une preuve. Sinon, un ou plusieurs contre-exemples sont fournis. === The main contribution of this thesis is a sound and complete proof system for entailments between inductive predicates, which are frequently encountered when verifying programs that work with dynamically allocated recursive data structures. We introduce a generalized proof system for first-order logic, and then adapt it to separation logic, a framework that addresses many of the difficulties posed by reasoning about dynamically allocated heaps. Soundness and completeness are ensured through four semantic restrictions and we also propose a proof-search semi-algorithm that becomes a decision procedure for the entailment problem when the semantic restrictions hold.This higher-order reasoning about entailments requires first-order decision procedures for the underlying logic when applying inference rules and during proof search. Thus, we provide two decision procedures for separation logic, considering the quantifier-free and the Exists*Forall*-quantified fragments, which were integrated in the open-source, DPLL(T)-based SMT solver CVC4.Finally, we also give an implementation of our proof system for separation logic, which uses these decision procedures. Given some inductive predicate definitions and an entailment query as input, a warning is issued when one or more semantic restrictions are violated. If the entailment is found to be valid, the output is a proof. Otherwise, one or more counterexamples are provided.
author2 Grenoble Alpes
author_facet Grenoble Alpes
Serban, Cristina
author Serban, Cristina
author_sort Serban, Cristina
title Raisonnement automatisé pour la logique de séparation avec des définitions inductives
title_short Raisonnement automatisé pour la logique de séparation avec des définitions inductives
title_full Raisonnement automatisé pour la logique de séparation avec des définitions inductives
title_fullStr Raisonnement automatisé pour la logique de séparation avec des définitions inductives
title_full_unstemmed Raisonnement automatisé pour la logique de séparation avec des définitions inductives
title_sort raisonnement automatisé pour la logique de séparation avec des définitions inductives
publishDate 2018
url http://www.theses.fr/2018GREAM030/document
work_keys_str_mv AT serbancristina raisonnementautomatisepourlalogiquedeseparationavecdesdefinitionsinductives
AT serbancristina automatedreasoninginseparationlogicwithinductivedefinitions
_version_ 1719192071230717952