Interrogation Testing of CHC Solvers
David Kaindlstorfer, Anastasia Isychev, Valentin Wüstholz, Maria Christakis
Abstract
A Constrained Horn Clause (CHC) is a specific type of logic formula that contains uninterpreted predicates. CHC formulas are often used by static program analyzers to encode program properties, which are then verified using CHC solvers. The solvers themselves are complex tools and may contain bugs, which can lead to verifying unsafe programs, flagging safe programs as unsafe, or providing analyzers with incorrect invariants and counterexamples. It is, therefore, crucial to develop techniques for systematically testing CHC solvers.
In this paper, we present the first interrogation-testing technique for CHC solvers, which we implement in a tool called HornGator. Our technique uses witnesses generated by the solver under test to form new CHC instances. It also integrates a knowledge base maintaining a history of past solver queries. All this information helps HornGator generate more diverse instances, thereby improving its bug-finding effectiveness. As a result, HornGator found 21 unique bugs in five state-of-the-art CHC solvers, all of which are confirmed by the developers, 18 are fixed, and eight are of the highest severity.
CCS Concepts: • Software and its engineering → Software testing and debugging.
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 08d19f79-b143-4bea-9dd0-33628dafc24cCited by top-tier papers1
Ask how each one uses itBuilds on14
- Validating SMT solvers via semantic fusionDominik Winterer, Chengyu Zhang, Zhendong SuPLDI 2020 · 80 citations
- On the unusual effectiveness of type-aware operator mutations for testing SMT solversDominik Winterer, Chengyu Zhang, Zhendong SuOOPSLA 2020 · 55 citations
- Detecting critical bugs in SMT solvers using blackbox mutational fuzzingMuhammad Numair Mansur, Maria Christakis, Valentin Wüstholz, Fuyuan ZhangFSE 2020 · 51 citations
- Generative type-aware mutation for testing SMT solversJiwon Park, Dominik Winterer, Chengyu Zhang, Zhendong SuOOPSLA 2021 · 31 citations
- Automatically testing string solversAlexandra Bugariu, Peter MüllerICSE 2020 · 28 citations
Related papers
- Constraint-Based Test Oracles for Program AnalyzersMarkus Fleischmann, David Kaindlstorfer, Anastasia Isychev, Valentin Wüstholz et al.ASE 2024 · 2 citations
- Interrogation Testing of Program Analyzers for Soundness and Precision IssuesDavid Kaindlstorfer, Anastasia Isychev, Valentin Wüstholz, Maria ChristakisASE 2024 · 2 citations
- Optimal CHC Solving via Termination ProofsYu Gu, Takeshi Tsukada, Hiroshi UnnoPOPL 2023 · 8 citations
- Probabilistic Inference for Predicate Constraint SatisfactionYuki Satake, Hiroshi Unno, Hinata YanagiAAAI 2020 · 17 citations
- Synthesizing Formal Semantics from Executable InterpretersJiangyi Liu, Charlie Murphy, Anvay Grover, Keith J. C. Johnson et al.OOPSLA 2024
