2007
DOI: 10.1017/s0956796807006338
|View full text |Cite
|
Sign up to set email alerts
|

Efficient execution in an automated reasoning environment

Abstract: We describe a method to permit the user of a mathematical logic to write elegant logical definitions while allowing sound and efficient execution. We focus on the ACL2 logic and automated reasoning environment. ACL2 is used by industrial researchers to describe microprocessor designs and other complicated digital systems. Properties of the designs can be formally established with the theorem prover. But because ACL2 is also a functional programming language, the formal models can be executed as simulation engi… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
17
0

Year Published

2007
2007
2018
2018

Publication Types

Select...
7
1

Relationship

1
7

Authors

Journals

citations
Cited by 26 publications
(17 citation statements)
references
References 38 publications
0
17
0
Order By: Relevance
“…ACL2 also seems to provide for data refinement based on invariants [4], but the exact relationship is unclear. In Coq [1], parametrized modules support a form of data refinement [3]: perform your development inside the context of a specification of finite sets (or whatever abstract type you have), and later instantiate the module with some implementation of finite sets that has been proved to satisfy the finite set axioms.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…ACL2 also seems to provide for data refinement based on invariants [4], but the exact relationship is unclear. In Coq [1], parametrized modules support a form of data refinement [3]: perform your development inside the context of a specification of finite sets (or whatever abstract type you have), and later instantiate the module with some implementation of finite sets that has been proved to satisfy the finite set axioms.…”
Section: Related Workmentioning
confidence: 99%
“…4 Function Morph p gives us the concrete morphism according to the polarity: Morph + (κ) = Abs κ and Morph − (κ) = rep κ .…”
mentioning
confidence: 99%
“…ACL2 allows replacement of subterms at code generation time with other provably equal subterms [5]. Coq also allows replacement of one function by another at code generation time but this is completely unchecked.…”
Section: Program and Data Refinementmentioning
confidence: 99%
“…-The language of the theorem prover ACL2 is (almost) a subset of Common Lisp, i.e. the translation is (almost) the identity function [5]. -PVS allows evaluation of ground terms by translation to Common Lisp [4].…”
Section: Introduction and Related Workmentioning
confidence: 99%
“…ACL2 provides a mechanism, called guards [13] to enable the use of the Common Lisp counterpart only on ground terms where the arguments for each function f are in the intended domain of application of f . ACL2 contains contains several other constructs to support efficient executability, such as (1) single-threaded objects [6], and (2) mbe [9]. Single-threaded objects enable destructive updates to certain data structures in an applicative context.…”
Section: A Executability In Acl2mentioning
confidence: 99%