English
Related papers

Related papers: ACL2s Systems Programming

200 papers

AIJ (ACL2 In Java) is a deep embedding in Java of an executable, side-effect-free, non-stobj-accessing subset of the ACL2 language without guards. ATJ (ACL2 To Java) is a simple Java code generator that turns ACL2 functions into AIJ…

Programming Languages · Computer Science 2018-10-11 Alessandro Coglio

The rapid evolution of large language models (LLMs) has opened new possibilities for automating various tasks in software development. This paper evaluates the capabilities of the Llama 2-70B model in automating these tasks for scientific…

Software Engineering · Computer Science 2025-07-09 Patrick Diehl , Nojoud Nader , Maxim Moraru , Steven R. Brandt

We describe a Common Lisp package suitable for the high-level design, specification, simulation, and instrumentation of real-time distributed algorithms and hardware on which to run them. We discuss various design decisions around the…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-04-26 Eric C. Peterson , Peter J. Karalekas

The demonstrated code-understanding capability of LLMs raises the question of whether they can be used for automated program verification, a task that demands high-level abstract reasoning about program properties that is challenging for…

Formal Languages and Automata Theory · Computer Science 2024-04-26 Haoze Wu , Clark Barrett , Nina Narodytska

The ACL2 theorem prover is a complex system. Its libraries are vast. Industrial verification efforts may extend this base with hundreds of thousands of lines of additional modeling tools, specifications, and proof scripts. High quality…

Software Engineering · Computer Science 2014-06-10 Jared Davis , Matt Kaufmann

Instead of a monolithic programming language trying to cover all features of interest, some programming systems are designed by combining together simpler languages that cooperate to cover the same feature space. This can improve usability…

Programming Languages · Computer Science 2018-04-13 Gabriel Scherer , Max New , Nick Rioux , Amal Ahmed

Automatic and efficient verification of multiplier designs, especially through a provably correct method, is a difficult problem. We show how to utilize a theorem prover, ACL2, to implement an efficient rewriting algorithm for multiplier…

Logic in Computer Science · Computer Science 2022-05-25 Mertcan Temel

The experience of an ACL2 user generally includes many failed proof attempts. A key to successful use of the ACL2 prover is the effective use of tools to debug those failures. We focus on changes made after ACL2 Version 8.5: the improved…

Artificial Intelligence · Computer Science 2023-11-16 Matt Kaufmann , J Strother Moore

In our current work a library of formally verified software components is to be created, and assembled, using the Low-Level Virtual Machine (LLVM) intermediate form, into subsystems whose top-level assurance relies on the assurance of the…

Programming Languages · Computer Science 2014-06-09 David S. Hardin , Jennifer A. Davis , David A. Greve , Jedidiah R. McClurg

Concolic testing is a popular software verification technique based on a combination of concrete and symbolic execution. Its main focus is finding bugs and generating test cases with the aim of maximizing code coverage. A previous approach…

Logic in Computer Science · Computer Science 2020-09-23 Fred Mesnard , Etienne Payet , German Vidal

Large Language Models (LLMs) such as ChatGPT and GitHub Copilot have revolutionized automated code generation in software engineering. However, as these models are increasingly utilized for software development, concerns have arisen…

Cryptography and Security · Computer Science 2024-12-03 Ahmad Mohsin , Helge Janicke , Adrian Wood , Iqbal H. Sarker , Leandros Maglaras , Naeem Janjua

Applications of Large Language Models~(LLMs) have evolved from simple text generators into complex software systems that integrate retrieval augmentation, tool invocation, and multi-turn interactions. Their inherent non-determinism,…

Software Engineering · Computer Science 2025-08-29 Wei Ma , Yixiao Yang , Qiang Hu , Shi Ying , Zhi Jin , Bo Du , Zhenchang Xing , Tianlin Li , Junjie Shi , Yang Liu , Linxiao Jiang

We report on highlights of the ACL2 enhancements introduced in ACL2 releases since the 2011 ACL2 Workshop. Although many enhancements are critical for soundness or robustness, we focus in this paper on those improvements that could benefit…

Mathematical Software · Computer Science 2013-05-01 Matt Kaufmann , J Strother Moore

We present a novel technique for combining statistical machine learning for proof-pattern recognition with symbolic methods for lemma discovery. The resulting tool, ACL2(ml), gathers proof statistics and uses statistical pattern-recognition…

Logic in Computer Science · Computer Science 2013-10-16 Jónathan Heras , Ekaterina Komendantskaya , Moa Johansson , Ewen Maclean

We present a data definition framework that enables the convenient specification of data types in ACL2s, the ACL2 Sedan. Our primary motivation for developing the data definition framework was pedagogical. We were teaching undergraduate…

Programming Languages · Computer Science 2014-06-09 Harsh Raju Chamarthi , Peter C. Dillinger , Panagiotis Manolios

In this work, we present an approach towards constructing executable specifications of existing filesystems and verifying their functional properties in a theorem proving environment. We detail an application of this approach to the FAT32…

Logic in Computer Science · Computer Science 2018-10-11 Mihir Parang Mehta

Large language models (LLMs) are increasingly used to generate requirements specifications, design documents, code, and test cases. In contrast, much less attention has been given to a more difficult assurance problem: statically verifying…

Software Engineering · Computer Science 2026-05-19 Zhi Quan Zhou , Dave Towey , Tsong Yueh Chen

Large language models (LLMs) have emerged as powerful tools for many AI problems and exhibit remarkable in-context learning (ICL) capabilities. Compositional ability, solving unseen complex tasks that combine two or more simple tasks, is an…

Computation and Language · Computer Science 2024-08-13 Zhuoyan Xu , Zhenmei Shi , Yingyu Liang

ACL2 has long supported user-defined simplifiers, so-called metafunctions and clause processors, which are installed when corresponding rules of class :meta or :clause-processor are proved. Historically, such simplifiers could access the…

Logic in Computer Science · Computer Science 2017-05-04 Matt Kaufmann , Sol Swords

We assess how the code reasoning abilities of large language models (LLMs) generalize to different kinds of programs. We present techniques for obtaining in- and out-of-distribution programs with different characteristics: code sampled from…

Software Engineering · Computer Science 2025-04-09 Rem Yang , Julian Dai , Nikos Vasilakis , Martin Rinard