No abstract available.
Proceeding Downloads
User control and direction of a more efficient simplifier in ACL2
We present an efficient term simplifier written in ACL2 and interfaced with ACL2 as an untrusted clause processor. We also demonstrate how an advanced user can extend this simplifier in a sound manner by proving rewrite rules with special annotations ...
Automatically computing functional instantiations
Among the standard books distributed with ACL2 is the consider-hint book in the hints subdirectory, which implements a heuristic for computing functional instantiations. The implementation of the hint involves four basic algorithms: a second-order ...
Symbolic simulation in ACL2
We have created an experimental extension to ACL2 that provides a means to symbolically evaluate ACL2 expressions. This modified implementation can be used to compute the 'general' application of an ACL2 function to generalized data. In particular, we ...
Proving a specific type of inequality theorems in ACL2: a bind-free experience report
We describe how we guide ACL2 to follow a divide-andconquer strategy for proving inequalities of the type |P(e)| ≤ C. P(e) is a polynomial in variables e and C is a constant.
Our approach involves (1) writing an ACL2 program to estimate the upper-bound ...
Computational logic in the undergraduate curriculum
Logic provides the mathematical basis for hardware design and software development. In fact, digital circuits and computer programs are logic formulas expressed in a formal language. Accordingly, educated computer scientists should have experience in ...
Automatic verification for interactive graphical programs
Modern software applications come with interactive graphical displays. In the past, verification efforts for such programs have usually ignored the I/O aspects of programs and focused instead on their core functionality. This approach leaves open the ...
DoubleCheck your theorems
Theorem proving in ACL2 is a complex undertaking. Initial attempts to admit a lemma often fail, in which case the programmer must either redirect ACL2's efforts or change the lemma. ACL2's output does not always indicate whether the formulation of the ...
Hypertext navigation of ACL2 proofs with XMLEye
Difficult problems often require complex solutions, and the proofs checked by ACL2 are no exception. There are steep learning curves involved both in producing the proof script and analyzing its long and complex results. Existing tools, such as DrACuLa ...
Inverse functions in ACL2(r)
ACL2(r) supports the definition of real-valued functions. In this paper, we introduce a theory of inverse functions into ACL2(r). The theory is developed in stages, from an abstract description of inverse functions, to a still abstract but more ...
Abbreviated output for input in ACL2: an implementation case study
ACL2 has long provided a way to print expressions in an abbreviated manner, where information about hidden subexpressions is lost. We present a new ACL2 feature that allows the missing subexpressions to be recovered. One purpose of this paper is to ...
ACL2-certified AVL trees
AVL trees supply operations for information storage and retrieval in time proportional to the logarithm of the number of items stored and in a space increment, beyond the space needed for the information itself, that increases linearly with the number ...
Proof of transitive closure property of directed acyclic graphs
This paper presents a formal correctness proof for some properties of restricted finite directed acyclic graphs (DAGs). A restricted graph has a single root and arbitrary siblings. The siblings are assigned integers, string values, or restricted DAGs. ...
Formal verification of LabVIEW programs using the ACL2 Theorem Prover
The LabVIEW™ system is based on a graphical dataflow language, and is widely used for data acquisition, instrument control and industrial automation. This paper presents a methodology for annotating LabVIEW programs with their specifications, ...
ACL2 for the verification of fault-tolerance properties: first results
We target the development of new methodologies for analyzing the robustness of circuits described at the Register Transfer (RT) level, with respect to errors caused by transient faults. Analyzing the potential consequences of errors usually involves ...
Efficient, formally verifiable data structures using ACL2 single-threaded objects for high-assurance systems
Classical data structures such as stacks, queues, and double-ended queues (deques) find broad use in security-critical applications. At the highest Evaluation Assurance Level (EAL) of the Common Criteria, such data structures must be formally specified, ...
An executable model for security protocol JFKr
JFKr is a security protocol that establishes a shared encryption key between two participants. This paper briefly describes the different components of JFKr and the security property each component is intended to provide. It then describes an executable ...
Automated reasoning with quantified formulae
ACL2 allows users to define predicates whose logical behavior mimics that of universally or existentially quantified formulae. Proof support for such quantification, however, is quite limited. We present an ACL2 framework that employs tables, computed ...
Assuming termination
A requirement for the admission of a recursive function definition in ACL2 is a proof that the recursion terminates. Establishing termination involves identifying a well-founded relation and an appropriate measure function that decreases according to ...
A generic implementation model for the formal verification of networks-on-chips
Formal verification often means the proof of a formal relation between abstract specification models and concrete implementation models. For microprocessor designs, commutative diagrams derived from these models and relations have been very successful. ...
Formal validation of deadlock prevention in networks-on-chips
Complex systems-on-chips (SoCs) are built as the assembly of pre-designed parameterized components. The specification and validation of the communication infrastructure becomes a crucial step in the early phase of any SoC design. The Generic Network-on-...



