HyperAIHyperAI

Command Palette

Search for a command to run...

il y a 5 heures
Reasoning

Vérification de prouveurs et de solveurs

René Thiemann

Résumé

Les outils de déduction automatique, tels que les prouveurs automatiques de théorèmes, les solveurs SAT (satisfaisabilité), les solveurs SMT (satisfaisabilité modulo théories) et les analyseurs de terminaison, peuvent être connectés à des assistants de preuve par diverses approches, notamment par certification et par vérification. Ce chapitre passe en revue et compare les approches disponibles, et mentionne plusieurs applications réussies.

One-sentence Summary

René Thiemann's chapter surveys and contrasts the two principal approaches, certification and verification, for integrating automatic deduction tools such as theorem provers, SAT/SMT solvers, and termination analyzers with proof assistants, and reviews several successful applications of these methods.

Key Contributions

  • The chapter reviews and compares certification and verification approaches for connecting automatic deduction tools (SAT, SMT, termination analyzers) with proof assistants.
  • Verified certifiers have detected bugs in deduction tool implementations that had gone unnoticed for years, and they are now used to validate a large number of automatically generated proofs in tool competitions.
  • Formal verification of core deduction techniques has corrected faulty published proofs and enabled safe exploration of extensions, and a verified SAT solver (IsaSAT) outperformed unverified competitors in the EDA-Challenge 2021.

Introduction

The authors examine the interplay between proof assistants and automatic deduction tools such as SAT, SMT, and termination analyzers. Reliable automation is critical for verifying complex properties, but manual certification of these tools’ outputs is error-prone, inefficient, and fails to scale beyond toy examples. The authors show how proof assistants can formally verify the inference rules and termination orderings that underlie deduction tools, using the lexicographic path ordering (LPO) and recursive path ordering with status (RPO) as a running example. This formal treatment not only increases the trustworthiness of automated reasoners—verified certifiers have uncovered long‑hidden bugs—but also allows developers to safely modify or extend core inference rules without fear of introducing errors.

Method

The authors propose certification as a method to validate results from unreliable deduction tools. To address the need for high reliability, they leverage proof assistants, which possess a small trusted code base. This approach allows for the formal verification of both the soundness of applied techniques and the correctness of their application.

One primary workflow is certification via proof script generation. As shown in the figure below:

This process involves three main steps. First, the authors develop a library that formalizes domain-specific notions and theorems, such as strong normalization and term rewriting, without including specific inputs. Second, a proof script generator transforms a given input certificate into a proof script for the proof assistant. This script defines the property of interest and provides a formal proof by encoding the certificate's proof. Third, the proof assistant checks the script. The generator can handle certificates in different ways: it can translate inference trees from extended certificates into introduction rules, reconstruct trees from basic certificates, or invoke tailor-made tactics. Alternatively, a deep embedding can be used to implement a verified algorithm within the proof assistant to ensure the ordering relation r\succ_rr holds for all rules.

However, proof script generation can be slow due to the overhead of running the proof assistant. To address this, the authors introduce an alternative workflow: external certification. This method is applicable when proof scripts consist mainly of invoking verified algorithms that provide sufficient criteria for the desired property.

As shown in the figure below:

In this external certification workflow, the initial library development remains the same. The second step involves providing verified algorithms for each supported property and certificate type. These algorithms are proven to be sufficient conditions (e.g., if the algorithm accepts input III and certificate CCC, then property P(I)P(I)P(I) holds) and are exported into an executable program. The final step runs this executable program on the inputs and certificates, using a wrapper to select the appropriate algorithm.

External certification is significantly faster than the proof script approach, allowing more certificates to be handled in reasonable time, especially for tasks requiring heavy computations. To ensure efficiency, the authors often use a refinement approach, proving an abstract algorithm correct and then refining it into an executable version with efficient data structures. While external certification is less brittle to changes in the proof assistant, it has a larger trusted code base because it relies on the code generator and external compiler, and it precludes certain design decisions like creating specific datatypes for signatures.


Créer de l'IA avec l'IA

De l'idée au lancement — accélérez votre développement IA avec le co-codage IA gratuit, un environnement prêt à l'emploi et le meilleur prix pour les GPU.

Codage assisté par IA
GPU prêts à l’emploi
Tarifs les plus avantageux

HyperAI Newsletters

Abonnez-vous à nos dernières mises à jour
Nous vous enverrons les dernières mises à jour de la semaine dans votre boîte de réception à neuf heures chaque lundi matin
Propulsé par MailChimp