Skeletal approximation enumeration for SMT solver testing
Peisen Yao, Heqing Huang, Wensheng Tang, Qingkai Shi, Rongxin Wu, Charles Zhang
Abstract
Ensuring the equality of SMT solvers is critical due to its broad spectrum of applications in academia and industry, such as symbolic execution and program verification. Existing approaches to testing SMT solvers are either too costly or find difficulties generalizing to different solvers and theories, due to the test oracle problem. To complement existing approaches and overcome their weaknesses, this paper introduces skeletal approximation enumeration (SAE), a novel lightweight and general testing technique for all first-order theories. To demonstrate its practical utility, we have applied the SAE technique to test Z3 and CVC4, two comprehensively tested, state-of-the-art SMT solvers. By the time of writing, our approach had found 71 confirmed bugs in Z3 and CVC4, 55 of which had already been fixed.
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 08b8e374-9ed0-4acd-929d-6a55883a0640Cited by top-tier papers12
- Pinolo: Detecting Logical Bugs in Database Management Systems with Approximate Query SynthesisZongyin Hao, Quanfeng Huang, Chengpeng Wang, Jianfeng Wang et al.USENIX ATC 2023 · 26 citations
- Speeding up SMT Solving via Compiler OptimizationBenjamin Mikek, Qirun ZhangFSE 2023 · 11 citations
- Dependency-Aware Metamorphic Testing of Datalog EnginesMuhammad Numair Mansur, Valentin Wüstholz, Maria ChristakisISSTA 2023 · 10 citations
- Validating SMT Solvers via Skeleton Enumeration Empowered by Historical Bug-Triggering InputsMaolin Sun, Yibiao Yang, Ming Wen, Yongcong Wang et al.ICSE 2023 · 9 citations
- Diver: Oracle-Guided SMT Solver Testing with Unrestricted Random MutationsJongwook Kim, Sunbeom So, Hakjoo OhICSE 2023 · 7 citations
Builds on11
- NAUTILUS: Fishing for Deep Bugs with GrammarsCornelius Aschermann, Tommaso Frassetto, Thorsten Holz, Patrick Jauernig et al.NDSS 2019 · 291 citations
- CodeAlchemist: Semantics-Aware Code Generation to Find Vulnerabilities in JavaScript EnginesHyungSeok Han, DongHyeon Oh, Sang Kil ChaNDSS 2019 · 178 citations
- Finding bugs in database systems via query partitioningManuel Rigger, Zhendong SuOOPSLA 2020 · 116 citations
- Syntia: Synthesizing the Semantics of Obfuscated CodeTim Blazytko, Moritz Contag, Cornelius Aschermann, Thorsten HolzUSENIX Security 2017 · 99 citations
- Pangolin: Incremental Hybrid Fuzzing with Polyhedral Path AbstractionHeqing Huang, Peisen Yao, Rongxin Wu, Qingkai Shi et al.S&P 2020 · 94 citations
Related papers
- Validating SMT Solvers for Correctness and Performance via Grammar-Based EnumerationDominik Winterer, Zhendong SuOOPSLA 2024 · 12 citations
- Fuzzing SMT solvers via two-dimensional input space explorationPeisen Yao, Heqing Huang, Wensheng Tang, Qingkai Shi et al.ISSTA 2021 · 18 citations
- Fuzzing Symbolic ExpressionsLuca Borzacchiello, Emilio Coppa, Camil DemetrescuICSE 2021 · 25 citations
- SMT2Test: From SMT Formulas to Effective Test CasesChengyu Zhang, Zhendong SuOOPSLA 2024 · 5 citations
- Validating SMT solvers via semantic fusionDominik Winterer, Chengyu Zhang, Zhendong SuPLDI 2020 · 80 citations
