English
Related papers

Related papers: Encapsulation for Practical Simplification Procedu…

200 papers

ACL2 provides a systems programming capability that allows one to write code that uses and extends ACL2 inside of ACL2. However, for soundness reasons, ACL2 bars the unrestricted use of certain kinds of programming constructs, like…

Logic in Computer Science · Computer Science 2022-05-25 Andrew T. Walter , Panagiotis Manolios

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

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

FGL is a successor to GL, a proof procedure for ACL2 that allows complicated finitary conjectures to be translated into efficient Boolean function representations and proved using SAT solvers. A primary focus of FGL is to allow greater…

Logic in Computer Science · Computer Science 2020-09-30 Sol Swords

The theory of asymptotic complexity provides an approach to characterizing the behavior of programs in terms of bounds on the number of computational steps executed or use of computational resources. We describe work using ACL2 to prove…

Computational Complexity · Computer Science 2022-05-25 William D. Young

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

Proving the correctness of programs written for multiple processors is a challenging problem, due in no small part to the weaker memory guarantees afforded by most modern architectures. In particular, the existence of store buffers means…

Logic in Computer Science · Computer Science 2014-06-09 Benjamin Selfridge

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

We illustrate the power of partial-encapsulate, showing how it is used in the implementation of floating-point operations in ACL2.

Logic in Computer Science · Computer Science 2025-08-04 Matt Kaufmann , J Strother Moore

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

Behavioral synthesis involves compiling an Electronic System-Level (ESL) design into its Register-Transfer Level (RTL) implementation. Loop pipelining is one of the most critical and complex transformations employed in behavioral synthesis.…

Logic in Computer Science · Computer Science 2014-06-09 Disha Puri , Sandip Ray , Kecheng Hao , Fei Xie

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

This paper describes a strategy for providing hints during an ACL2 proof, implemented in a utility called use-termhint. An extra literal is added to the goal clause and simplified along with the rest of the goal until it is stable under…

Logic in Computer Science · Computer Science 2018-10-11 Sol Swords

This paper aims to develop a verification method for procedural programs via a transformation into Logically Constrained Term Rewriting Systems (LCTRSs). To this end, we extend transformation methods based on integer TRSs to handle…

Logic in Computer Science · Computer Science 2025-09-01 Carsten Fuhs , Cynthia Kop , Naoki Nishida

Verification of algorithms and data structures utilized in modern autonomous and semi-autonomous vehicles for land, sea, air, and space presents a significant challenge. Autonomy algorithms, e.g., route planning, pattern matching, and…

Logic in Computer Science · Computer Science 2018-10-11 David Hardin , Konrad Slind

Rewriting is a formalism widely used in computer science and mathematical logic. The classical formalism has been extended, in the context of functional languages, with an order over the rules and, in the context of rewrite based languages,…

Logic in Computer Science · Computer Science 2019-06-12 Horatiu Cirstea , Pierre-Etienne Moreau

ACL2(ml) is an extension for the Emacs interface of ACL2. This tool uses machine-learning to help the ACL2 user during the proof-development. Namely, ACL2(ml) gives hints to the user in the form of families of similar theorems, and…

Logic in Computer Science · Computer Science 2014-06-09 Jónathan Heras , Ekaterina Komendantskaya

We report on our experience using ACL2 in the classroom to teach students about software testing. The course COSC2300 at the University of Wyoming is a mostly traditional Discrete Mathematics course, but with a clear focus on computer…

Logic in Computer Science · Computer Science 2022-05-25 Ruben Gamboa , Alicia Thoney

We describe the formal language MASC, based on a subset of SystemC and intended for modeling algorithms to be implemented in hardware. By means of a special-purpose parser, an algorithm coded in SystemC is converted to a MASC model for the…

Hardware Architecture · Computer Science 2014-06-09 John W. O'Leary , David M. Russinoff

We present the PML 2 language, which provides a uniform environment for programming, and for proving properties of programs in an ML-like setting. The language is Curry-style and call-by-value, it provides a control operator (interpreted in…

Logic in Computer Science · Computer Science 2019-01-11 Rodolphe Lepigre
‹ Prev 1 2 3 10 Next ›