Navigating AND-OR Graph Modifications to Debug Failing Proof Search
Justin Lubin, Marlena Preigh, Max Willsey, Sarah E. Chasins
Abstract
Proof search powers our most advanced programming tools, from type systems, to search tactics for interactive theorem provers, to Datalog-backed program analyses. Although proof search tooling is powerful and now pervasive, debugging it is hard, even for experts. When proof search cannot prove the goal, the programmer's best source of information is a massive AND-OR graph representing the tool's internal state during the proof search process. The difficulty of understanding and debugging this vast trace of internal state locks programmers out of exactly the high-assurance automated reasoning tools we want them to adopt.
We propose a new formulation of proof search debugging, which: (i) views AND-OR graphs as a partial representations of the underlying proof system, (ii) treats debugging as a process of applying modifications to this proof system, and (iii) uses a debugging tool to solicit these modifications until the resulting proof system proves the original goal. This approach unifies decades of ad-hoc strategies in a single general-purpose framework and is applicable to the diverse range of programming tools that use proof search. Our framework can express existing "why-not" debugging strategies as well as new strategies, and we evaluate such strategies on 284 AND-OR graphs. We find that a strategy that enforces a property called Strong Soundness reduces the number of decisions by 1.4×-3.2× compared to an unsound baseline, and a new property we call Strong Completeness Modulo Observability enables pruning to further reduce decisions by 1.0×-2.8× for an overall reduction of 2.0×-3.8×. CCS Concepts: • Software and its engineering → Automatic programming.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 218c6e6f-0354-401b-8ff5-78f618b12031Builds on7
- Better Together: Unifying Datalog and Equality SaturationYihong Zhang, Yisu Remy Wang, Oliver Flatt, David Cao et al.PLDI 2023 · 38 citations
- Type error feedback via analytic program repairGeorgios Sakkas, Madeline Endres, Benjamin Cosman, Westley Weimer et al.PLDI 2020 · 24 citations
- Total Type Error Localization and Recovery with HolesEric Zhao, Raef Maroof, Anand Dukkipati, Andrew Blinn et al.POPL 2024 · 15 citations
- Engineering an Efficient Probabilistic Exact Model CounterMate Soos, Kuldeep S. MeelCAV 2025 · 4 citations
- Interactive Debugging of Datalog ProgramsAndré Pacak, Sebastian ErdwegOOPSLA 2023 · 4 citations
Related papers
- Online and Interactive Bayesian Inference DebuggingNathanael Nussbaumer, Markus Böck, Jürgen CitoICSE 2026
- A Grounded Theory of Debugging in Professional Software Engineering PracticeHaolin Li, Michael CoblenzFSE 2026
- Engineering a Formally Verified Automated Bug FinderArthur Correnson, Dominic SteinhöfelFSE 2023 · 6 citations
- Diaframe: automated verification of fine-grained concurrent programs in IrisIke Mulder, Robbert Krebbers, Herman GeuversPLDI 2022 · 27 citations
- TacticZero: Learning to Prove Theorems from Scratch with Deep Reinforcement LearningMinchao Wu, Michael Norrish, Christian Walder, Amir DezfouliNeurIPS 2021 · 56 citations
