tactician
Rango: Adaptive Retrieval-Augmented Proving for Automated Software Verification
Thompson, Kyle, Saavedra, Nuno, Carrott, Pedro, Fisher, Kevin, Sanchez-Stern, Alex, Brun, Yuriy, Ferreira, João F., Lerner, Sorin, First, Emily
Formal verification using proof assistants, such as Coq, enables the creation of high-quality software. However, the verification process requires significant expertise and manual effort to write proofs. Recent work has explored automating proof synthesis using machine learning and large language models (LLMs). This work has shown that identifying relevant premises, such as lemmas and definitions, can aid synthesis. We present Rango, a fully automated proof synthesis tool for Coq that automatically identifies relevant premises and also similar proofs from the current project and uses them during synthesis. Rango uses retrieval augmentation at every step of the proof to automatically determine which proofs and premises to include in the context of its fine-tuned LLM. In this way, Rango adapts to the project and to the evolving state of the proof. We create a new dataset, CoqStoq, of 2,226 open-source Coq projects and 196,929 theorems from GitHub, which includes both training data and a curated evaluation benchmark of well-maintained projects. On this benchmark, Rango synthesizes proofs for 32.0% of the theorems, which is 29% more theorems than the prior state-of-the-art tool Tactician. Our evaluation also shows that Rango adding relevant proofs to its context leads to a 47% increase in the number of theorems proven.
Online Machine Learning Techniques for Coq: A Comparison
Zhang, Liao, Blaauwbroek, Lasse, Piotrowski, Bartosz, Černý, Prokop, Kaliszyk, Cezary, Urban, Josef
We present a comparison of several online machine learning techniques for tactical learning and proving in the Coq proof assistant. This work builds on top of Tactician, a plugin for Coq that learns from proofs written by the user to synthesize new proofs. This learning happens in an online manner -- meaning that Tactician's machine learning model is updated immediately every time the user performs a step in an interactive proof. This has important advantages compared to the more studied offline learning systems: (1) it provides the user with a seamless, interactive experience with Tactician and, (2) it takes advantage of locality of proof similarity, which means that proofs similar to the current proof are likely to be found close by. We implement two online methods, namely approximate $k$-nearest neighbors based on locality sensitive hashing forests and random decision forests. Additionally, we conduct experiments with gradient boosted trees in an offline setting using XGBoost. We compare the relative performance of Tactician using these three learning methods on Coq's standard library.
The Tactician (extended version): A Seamless, Interactive Tactic Learner and Prover for Coq
Blaauwbroek, Lasse, Urban, Josef, Geuvers, Herman
Tactician helps users make tactical proof decisions while they retain control over the general proof strategy. To this end, Tactician learns from previously written tactic scripts and gives users either suggestions about the next tactic to be executed or altogether takes over the burden of proof synthesis. Tactician's goal is to provide users with a seamless, interactive, and intuitive experience together with robust and adaptive proof automation. In this paper, we give an overview of Tactician from the user's point of view, regarding both day-to-day usage and issues of package dependency management while learning in the large. Finally, we give a peek into Tactician's implementation as a Coq plugin and machine learning platform.
10 Algorithm Categories for A.I., Big Data, and Data Science
Are algorithms taking over our jobs? Yes, yes they are… and that a good thing. An algorithm is a series of steps with rules that help us solve problems and accomplish goals. And when we structure these steps and rules the right way we can automate the algorithm to establish Artificial Intelligence (A.I.). And it is this A.I. that helps us do our analytical heavy lifting so we can focus our time on doing the things that we're good at… the things we were hired to do.
10 Algorithm Categories for A.I., Big Data, and Data Science
This article was written by a Data-centric Executive Management, Chris Pehura. Chris is a management consultant with a data emphasis helping Fortune 100/1000 companies strategically evolve and reinvent their businesses to maximize their revenue growth. Are algorithms taking over our jobs? Yes, yes they are… and that a good thing. An algorithm is a series of steps with rules that help us solve problems and accomplish goals.