English
Related papers

Related papers: Advances in ACL2 Proof Debugging Tools

200 papers

Most software development projects rely on Integrated Development Environments (IDEs) based on the desktop paradigm, with an interactive, mouse-driven user interface. The standard installation of ACL2, on the other hand, is designed to work…

Software Engineering · Computer Science 2013-05-01 Caleb Eggensperger

Interactive theorem proving requires a lot of human guidance. Proving a property involves (1) figuring out why it holds, then (2) coaxing the theorem prover into believing it. Both steps can take a long time. We explain how to use GL, a…

Logic in Computer Science · Computer Science 2011-10-24 Sol Swords , Jared Davis

We present a tool, simplify-defun, that transforms the definition of a given function into a simplified definition of a new function, providing a proof checked by ACL2 that the old and new functions are equivalent. When appropriate it also…

Programming Languages · Computer Science 2017-05-04 Alessandro Coglio , Matt Kaufmann , Eric W. Smith

Two years on from the initial release of AlphaFold2 we have seen its widespread adoption as a structure prediction tool. Here we discuss some of the latest work based on AlphaFold2, with a particular focus on its use within the structural…

Biomolecules · Quantitative Biology 2024-03-05 Oleg Kovalevskiy , Juan Mateos-Garcia , Kathryn Tunyasuvunakool

Debuggers are a popular reverse engineering and tampering tool. Self-debugging is an effective technique for applications to defend themselves against hostile debuggers. In penetration tests on state-of-the-art self-debugging, we observed…

Cryptography and Security · Computer Science 2020-11-02 Bert Abrath , Bart Coppens , Ilja Nevolin , Bjorn De Sutter

Starting from two case histories, where only after thorough Failure Analysis the suddenly appearance of a failure was linked to much earlier events, the possibility of improving the reliability and of adjusting the reliability prediction…

Other Condensed Matter · Physics 2007-09-17 G. Mura , G. Cassanelli

Deep reinforcement learning (DRL) has shown success in diverse domains such as robotics, computer games, and recommendation systems. However, like any other software system, DRL-based software systems are susceptible to faults that pose…

Software Engineering · Computer Science 2024-10-08 Rached Bouchoucha , Ahmed Haj Yahmed , Darshan Patil , Janarthanan Rajendran , Amin Nikanjam , Sarath Chandar , Foutse Khomh

A recent case study from AWS by Chong et al. proposes an effective methodology for Bounded Model Checking in industry. In this paper, we report on a follow up case study that explores the methodology from the perspective of three research…

Software Engineering · Computer Science 2021-07-05 Siddharth Priya , Xiang Zhou , Yusen Su , Yakir Vizel , Yuyan Bao , Arie Gurfinkel

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

In recent years, software systems powered by deep learning (DL) techniques have significantly facilitated people's lives in many aspects. As the backbone of these DL systems, various DL libraries undertake the underlying optimization and…

Software Engineering · Computer Science 2025-02-06 Xiaoyu Zhang , Weipeng Jiang , Chao Shen , Qi Li , Qian Wang , Chenhao Lin , Xiaohong Guan

Teaching college students how to write rigorous proofs is a critical objective in courses that introduce formal reasoning. Over the course of several years, we have developed a mechanically-checkable style of calculational reasoning that we…

Logic in Computer Science · Computer Science 2023-07-25 Andrew T. Walter , Ankit Kumar , Panagiotis Manolios

Achieving fault-tolerance will require a strong relationship between the hardware and the protocols used. Different approaches will therefore naturally have tailored proof-of-principle experiments to benchmark progress. Nevertheless,…

Quantum Physics · Physics 2024-05-28 Milan Liepelt , Tommaso Peduzzi , James R. Wootton

Software verification is a tedious process that involves the analysis of multiple failed verification attempts, and adjustments of the program or specification. This is especially the case for complex requirements, e.g., regarding security…

This article examines the use of the Prolog language for writing verification, analysis and transformation tools. Guided by experience in teaching and the development of verification tools like ProB or specialisation tools like ECCE and…

Programming Languages · Computer Science 2020-08-10 Michael Leuschel

When using existing ACL2 datatype frameworks, many theorems require type hypotheses. These hypotheses slow down the theorem prover, are tedious to write, and are easy to forget. We describe a principled approach to types that provides…

Logic in Computer Science · Computer Science 2015-09-22 Sol Swords , Jared Davis

Iterative algorithms are traditionally expressed in ACL2 using recursion. On the other hand, Common Lisp provides a construct, loop, which -- like most programming languages -- provides direct support for iteration. We describe an ACL2…

Logic in Computer Science · Computer Science 2020-09-30 Matt Kaufmann , J Strother Moore

Belle II is a rapidly growing collaboration with members from one hundred and nineteen institutes spread around the globe. The software development team of the experiment, as well as the software users, are very much decentralised. Together…

Computers and Society · Computer Science 2020-12-01 Sam Cunliffe , Ilya Komarov , Thomas Kuhr , Martin Ritter , Francesco Tenchini

We present an experimental, verified clause processor ctv-cp that fits into the framework used at Arm for formal verification of arithmetic hardware designs. This largely automates the ACL2 proof development effort for integer multiplier…

Logic in Computer Science · Computer Science 2025-07-28 Mayank Manjrekar

RP-Rewriter (Retain-Property) is a verified clause processor that can use some of the existing ACL2 rewrite rules to prove conjectures through term rewriting. Optimized for conjectures that can expand into large terms, the rewriter tries to…

Logic in Computer Science · Computer Science 2020-09-30 Mertcan Temel

Clausal proofs have become a popular approach to validate the results of SAT solvers. However, validating clausal proofs in the most widely supported format (DRAT) is expensive even in highly optimized implementations. We present a new…

Logic in Computer Science · Computer Science 2017-08-09 Luís Cruz-Filipe , Marijn Heule , Warren Hunt , Matt Kaufmann , Peter Schneider-Kamp