English
Related papers

Related papers: A Failed Proof Can Yield a Useful Test

200 papers

Program verifiers are not exempt from the bugs that affect nearly every piece of software. In addition, they often exhibit brittle behavior: their performance changes considerably with details of how the input program is expressed-details…

Software Engineering · Computer Science 2018-05-10 Yu-Ting Chen , Carlo A. Furia

Formal verification using interactive theorem provers ensures high-quality software. However, writing proof scripts for interactive theorem provers is labor-intensive and requires deep expertise. Recent studies have leveraged deep learning…

Logic in Computer Science · Computer Science 2026-04-28 Manqing Zhang , Yunwei Dong , Lingru Zhou , Bingxu Xiao , Yepang Liu

Proof Blocks is a software tool which enables students to write proofs by dragging and dropping prewritten proof lines into the correct order. These proofs can be graded completely automatically, enabling students to receive rapid feedback…

Computers and Society · Computer Science 2022-05-06 Seth Poulsen , Mahesh Viswanathan , Geoffrey L. Herman , Matthew West

Software artifacts are ubiquitous in our lives being an essential part of home appliances, cars, cel phones, and even in more critical activities like aeronautics and health sciences. In this context software failures may produce enormous…

Software Engineering · Computer Science 2022-06-16 Carlos Gustavo Lopez Pombo , Agustín Eloy Martinez Suñé

Trustworthy machine learning is of primary importance to the practical deployment of deep learning models. While state-of-the-art models achieve astonishingly good performance in terms of accuracy, recent literature reveals that their…

Machine Learning · Computer Science 2023-02-07 Ailin Deng , Shen Li , Miao Xiong , Zhirui Chen , Bryan Hooi

Self-Correction aims to enable large language models (LLMs) to self-verify and self-refine their initial responses without external feedback. However, LLMs often fail to effectively self-verify and generate correct feedback, further…

Computation and Language · Computer Science 2025-05-28 Xiaoshuai Song , Yanan Wu , Weixun Wang , Jiaheng Liu , Wenbo Su , Bo Zheng

Formal modelling languages play a key role in the development of software since they enable users to prove correctness of system properties. However, there is still not a clear understanding on how to map a formal model to a specific…

Software Engineering · Computer Science 2017-06-15 Victor Rivera , JooYoung Lee , Manuel Mazzara , Leonard Johard

Using an interactive theorem prover to reason about programs involves a sequence of interactions where the user challenges the theorem prover with conjectures. Invariably, many of the conjectures posed are in fact false, and users often…

Software Engineering · Computer Science 2011-10-24 Harsh Raju Chamarthi , Peter C. Dillinger , Matt Kaufmann , Panagiotis Manolios

Recent advances in Automated Theorem Proving have shown the effectiveness of leveraging a (large) language model that generates tactics (i.e. proof steps) to search through proof states. The current model, while trained solely on successful…

Artificial Intelligence · Computer Science 2024-07-31 Chenyang An , Zhibo Chen , Qihao Ye , Emily First , Letian Peng , Jiayun Zhang , Zihan Wang , Sorin Lerner , Jingbo Shang

Scientists form hypotheses and experimentally test them. If a hypothesis fails (is refuted), scientists try to explain the failure to eliminate other hypotheses. The more precise the failure analysis the more hypotheses can be eliminated.…

Artificial Intelligence · Computer Science 2023-05-25 Rolf Morel , Andrew Cropper

Estimating software testability can crucially assist software managers to optimize test budgets and software quality. In this paper, we propose a new approach that radically differs from the traditional approach of pursuing testability…

Software Engineering · Computer Science 2023-08-01 Luca Guglielmo , Leonardo Mariani , Giovanni Denaro

How to apply automated verification technology such as model checking and static program analysis to millions of lines of embedded C/C++ code? How to package this technology in a way that it can be used by software developers and engineers,…

Software Engineering · Computer Science 2013-01-03 Ralf Huuck

In theorem prover or SMT solver based verification, the program to be verified is often given in an intermediate verification language such as Boogie, Why, or CHC. This setting raises new challenges. We investigate a preprocessing step…

Software Engineering · Computer Science 2019-01-08 Daniel Dietsch , Matthias Heizmann , Jochen Hoenicke , Alexander Nutz , Andreas Podelski

Automated software testing involves the execution of test scripts by a machine instead of being manually run. This significantly reduces the amount of manual time & effort needed and thus is of great interest to the software testing…

Software Engineering · Computer Science 2018-09-26 Anurag Dwarakanath , Neville Dubash , Sanjay Podder

2LS ("tools") is a verification tool for C programs, built upon the CPROVER framework. It allows one to verify user-specified assertions, memory safety properties (e.g. buffer overflows), numerical overflows, division by zero, memory leaks,…

Software Engineering · Computer Science 2023-02-07 Daniel Kroening , Viktor Malík , Peter Schrammel , Tomáš Vojnar

Formal verification provides mathematical guarantees that a software is correct. Design-level verification tools ensure software specifications are correct, but they do not expose defects in actual implementations. For this purpose,…

Software Engineering · Computer Science 2025-05-01 Paschal C. Amusuo , Parth V. Patil , Owen Cochell , Taylor Le Lievre , James C. Davis

Mathematical theorems are human knowledge able to be accumulated in the form of symbolic representation, and proving theorems has been considered intelligent behavior. Based on the BHK interpretation and the Curry-Howard isomorphism, proof…

Neural and Evolutionary Computing · Computer Science 2016-04-18 Li-An Yang , Jui-Pin Liu , Chao-Hong Chen , Ying-ping Chen

Software is used in critical applications in our day-to-day life and it is important to ensure its correctness. One popular approach to assess correctness is to evaluate software on tests. If a test fails, it indicates a fault in the…

Software Engineering · Computer Science 2025-04-01 Max Hort , Leon Moonen

Software testing is a mandatory activity in any serious software development process, as bugs are a reality in software development. This raises the question of quality: good tests are effective in finding bugs, but until a test case…

Software Engineering · Computer Science 2023-07-14 Daniel Lucrédio , Auri Marcelo Rizzo Vincenzi , Eduardo Santana de Almeida , Iftekhar Ahmed

Vibe coding, the much-touted use of AI techniques for programming, faces two overwhelming obstacles: the difficulty of specifying goals ("prompt engineering" is a form of requirements engineering, one of the toughest disciplines of software…

Software Engineering · Computer Science 2026-04-24 Bertrand Meyer