Extending Superposition with Integer Arithmetic, Structural Induction, and Beyond
Extensions de la Superposition pour l'Arithmétique Linéaire Entière, l'Induction Structurelle, et bien plus encore
Résumé
The central concept of theorem designates a claim
backed by an irrefutable argument that follows formal rules, called a proof.
Proving theorems is very useful in both Computer Science and Mathematics.
However, many theorems are too boring and tedious for human experts
(for instance, theorems generated to ensure that software abides by
some specification); hence the decades-long effort in automated theorem proving,
the field dedicated to writing programs that find proofs.
Superposition is a very competitive technique for proving theorems
in the language of first-order logic with equality over uninterpreted functions
(in a nutshell, being able to replace equals by equals in any expression).
Even then, Superposition falls short for many problems that
require theory-specific reasoning or inductive proofs.
In this thesis, we aim at developing new extensions to Superposition.
Our claim is that Superposition lends itself very well to being grafted
additional inference rules and reasoning mechanisms.
First, we develop a Superposition-based calculus for integer linear arithmetic.
Linear Integer Arithmetic is a widely studied and used theory in other areas of
automated deduction, in particular SMT (Satisfiability Modulo Theory).
This theory might also prove useful for problems that have a discrete,
totally ordered structure, such as temporal logic, and that might be encoded
efficiently into first-order logic with arithmetic.
Then, we define an extension of Superposition that is able to reason
by structural induction (natural numbers, lists, binary trees, etc.)
Inductive reasoning is pervasive in Mathematics and Computer Science but
its integration into general purpose first-order provers has not been
studied much.
Last, we present a theory detection system that, given a signature-agnostic
description of algebraic theories, detects their presence in sets of formulas.
This system is akin to the way a mathematician who studies a new object
discovers that this object belong to some known structure, such as groups,
allowing her to leverage the large body of knowledge on this specific theory.
A large implementation effort was also carried out in this thesis;
all the contributions presented above have been implemented in a library
and a theorem prover, Zipperposition, both written in OCaml
and released under a free software license.
Le concept central de théorème désigne une assertion justifiée par un
argument irréfutable agencé selon des règles formelles, qu'on appelle une preuve.
Prouver des théorèmes est utile à la fois en Informatique et en Mathématiques.
Cependant, beaucoup de théorèmes utiles, tels que ceux engendrés par
la vérification formelle qu'un programme respecte une spécification,
sont trop pénibles et inintéressants pour mériter l'attention d'experts
humains; plusieurs décennies de recherches ont donc été consacrées au domaine
de la démonstration automatique. La Superposition est une technique efficace
permettant de prouver les théorèmes exprimés en logique du premier ordre avec
égalité (en bref, la capacité de remplacer mutuellement deux
objets égaux dans n'importe quelle expression).
Pourtant, la Superposition montre ses limites dans beaucoup de cas où
des théories spécifiques ou du raisonnement par récurrence sont nécessaires.
Dans cette thèse, nous développons de nouvelles extensions à la Superposition;
nous soutenons que cette dernière se prête bien à l'ajout de règles d'inférence
et de mécanismes de raisonnement supplémentaires.
Tout d'abord, nous développons un système d'inférence qui donne à la Superposition
les moyens de raisonner dans l'arithmétique linéaire entière,
une théorie activement utilisée et étudiée dans d'autres domaines
de la preuve automatique tels que SMT (Satisfiabilité Modulo Théories).
L'arithmétique peut également permettre des encodages vers la logique
du premier ordre plus efficaces pour les structures discrètes totalement
ordonnées — par exemple, la logique temporelle.
Nous définissons ensuite un mécanisme permettant aux prouveurs fondés sur
la Superposition de raisonner par récurrence sur des types algébriques
(naturels, listes, arbres binaires, etc.)
Le raisonnement par récurrence est très courant en Mathématiques
et en Informatique, mais son intégration dans les systèmes de preuve dédiés
à la logique du premier ordre a été peu étudiée.
Enfin, nous présentons un système de détections de théories axiomatiques
capable de déceler la présence de structures algébriques connues
dans un ensemble de formules. Ce système rappelle la manière dont un
mathématicien qui étudie un nouvel objet peut découvrir que ce dernier
relève d'une structure connue — comme les groupes — ce qui lui permet
de mobiliser ses connaissances sur cette théorie.
Cette thèse comprend également une part importante de travail d'implémentation :
toutes les contributions listées ci-dessus ont été incorporées
dans une bibliothèque et un prouveur automatique, Zipperposition;
tous deux sont écrits en OCaml et publiés sous licence libre.
Fichier principal
thesis (1).pdf (1.58 Mo)
Télécharger le fichier
thesis.pdf (1.19 Mo)
Télécharger le fichier
Loading...