TY - GEN
T1 - Automatic Test-Case Reduction in Proof Assistants
T2 - 13th International Conference on Interactive Theorem Proving, ITP 2022
AU - Gross, Jason
AU - Zimmermann, Théo
AU - Poddar-Agrawal, Miraya
AU - Chlipala, Adam
N1 - Publisher Copyright:
© Jason Gross, Théo Zimmermann, Miraya Poddar-Agrawal, and Adam Chlipala.
PY - 2022/8/1
Y1 - 2022/8/1
N2 - As the adoption of proof assistants increases, there is a need for efficiency in identifying, documenting, and fixing compatibility issues that arise from proof-assistant evolution. We present the Coq Bug Minimizer, a tool for reproducing buggy behavior with minimal and standalone files, integrated with coqbot to trigger automatically on failures from Coq's reverse dependency compatibility testing. Our tool eliminates the overhead of having to download, set up, compile, and then explore and understand large developments, enabling Coq developers to easily obtain modular test-case files for fast experimentation. In this paper, we describe insights about how test-case reduction is different in Coq than in traditional compilers. We expect that our insights will generalize to other proof assistants. We evaluate the Coq Bug Minimizer on over 150 compatibility testing failures. Our tool succeeds in reducing failures to smaller test cases roughly 75% of the time. The minimizer produces a fully standalone test case 89% of the time, and it is on average about one-third the size of the original test. The average reduced test case compiles in 1.25 seconds, with 75% taking under half a second.
AB - As the adoption of proof assistants increases, there is a need for efficiency in identifying, documenting, and fixing compatibility issues that arise from proof-assistant evolution. We present the Coq Bug Minimizer, a tool for reproducing buggy behavior with minimal and standalone files, integrated with coqbot to trigger automatically on failures from Coq's reverse dependency compatibility testing. Our tool eliminates the overhead of having to download, set up, compile, and then explore and understand large developments, enabling Coq developers to easily obtain modular test-case files for fast experimentation. In this paper, we describe insights about how test-case reduction is different in Coq than in traditional compilers. We expect that our insights will generalize to other proof assistants. We evaluate the Coq Bug Minimizer on over 150 compatibility testing failures. Our tool succeeds in reducing failures to smaller test cases roughly 75% of the time. The minimizer produces a fully standalone test case 89% of the time, and it is on average about one-third the size of the original test. The average reduced test case compiles in 1.25 seconds, with 75% taking under half a second.
KW - Coq
KW - automatic test-case reduction
KW - bug minimizer
KW - debugging
U2 - 10.4230/LIPIcs.ITP.2022.18
DO - 10.4230/LIPIcs.ITP.2022.18
M3 - Conference contribution
AN - SCOPUS:85129863447
T3 - Leibniz International Proceedings in Informatics, LIPIcs
BT - 13th International Conference on Interactive Theorem Proving, ITP 2022
A2 - Andronick, June
A2 - de Moura, Leonardo
PB - Schloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing
Y2 - 7 August 2022 through 10 August 2022
ER -