40 research outputs found
ACL2(ml):machine-learning for ACL2
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 generates auxiliary lemmas automatically. In this paper, we present the two
most recent extensions for ACL2(ml). First, ACL2(ml) can suggest now families
of similar function definitions, in addition to the families of similar
theorems. Second, the lemma generation tool implemented in ACL2(ml) has been
improved with a method to generate preconditions using the guard mechanism of
ACL2. The user of ACL2(ml) can also invoke directly the latter extension to
obtain preconditions for his own conjectures.Comment: In Proceedings ACL2 2014, arXiv:1406.123
Efficient execution in an automated reasoning environment
We describe a method that permits the user of a mechanized mathematical logic to write
elegant logical definitions while allowing sound and efficient execution. In particular, the
features supporting this method allow the user to install, in a logically sound way, alternative
executable counterparts for logically defined functions. These alternatives are often much
more efficient than the logically equivalent terms they replace. These features have been
implemented in the ACL2 theorem prover, and we discuss several applications of the features
in ACL2.Ministerio de Educación y Ciencia TIN2004–0388
Recommended from our members
Dependable software through higher-order strategic programming.
Program transformation is a restricted form of software construction that can be amenable to formal verification. When successful, the nature of the evidence provided by such a verification is considered strong and can constitute a major component of an argument that a high-consequence or safety-critical system meets its dependability requirements. This article explores the application of novel higher-order strategic programming techniques to the development of a portion of a class loader for a restricted implementation of the Java Virtual Machine (JVM). The implementation is called the SSP and is intended for use in high-consequence safety-critical embedded systems. Verification of the strategic program using ACL2 is also discussed
Recommended from our members
An abstract class loader for the SSP and its implementation in TL.
The SSP is a hardware implementation of a subset of the JVM for use in high consequence embedded applications. In this context, a majority of the activities belonging to class loading, as it is defined in the specification of the JVM, can be performed statically. Static class loading has the net result of dramatically simplifying the design of the SSP as well as increasing its performance. Due to the high consequence nature of its applications, strong evidence must be provided that all aspects of the SSP have been implemented correctly. This includes the class loader. This article explores the possibility of formally verifying a class loader for the SSP implemented in the strategic programming language TL. Specifically, an implementation of the core activities of an abstract class loader is presented and its verification in ACL2 is considered