Design Goals for ACL2
Total Page:16
File Type:pdf, Size:1020Kb
Design Goals for ACL Matt Kaufmann and J Strother Mo ore Technical Rep ort August Computational Logic Inc West Sixth Street Suite Austin Texas TEL FAX EMAIL kaufmannclicom and mo oreclicom This work was supp orted in part at Computational Logic Inc by the Defense Advanced Research Pro jects Agency ARPA Order The views and con clusions contained in this do cument are those of the authors and should not b e interpreted as representing the ocial p olicies either expressed or implied of Computational Logic Inc the Defense Advanced Research Pro jects Agency or the US Government Design Goals for ACL CLI Technical Rep ort Abstract ACL is a theorem proving system under development at Computational Logic Inc by the authors of the BoyerMo ore system Nqthm and its interactive en hancement PcNqthm based on our p erceptions of some of the inadequacies of Nqthm when used in largescale verication pro jects Foremost among those in adequacies is the fact that Nqthms logic is an inecient programming language We now recognize that the eciency of the logic as a programming language is of great imp ortance b ecause the mo dels of micropro cessors op erating systems and languages typically constructed in verication pro jects must b e executed to corrob orate them against the realities they mo del Simulation of such large scale systems stresses the logic in ways not imagined when Nqthm was designed In addition Nqthm do es not adequately supp ort certain pro of techniques nor do es it encourage the reuse of previously develop ed libraries or the collab oration of semiautonomous workers on dierent parts of a verication pro ject Finally Nqthm is implemented in an informally sp ecied programming language Com mon Lisp and hence is not sub ject to mechanical verication ACL is our resp onse to these p erceived inadequacies While the logic of Nqthm is based on pure Lisp the logic of ACL is based on the applicative subset of Common Lisp By adding to the applicative subset of Common Lisp a singlethreaded notion of state fast applicative arrays and prop erty lists and eciently im plemented multiple values an ecient and practical applicative programming language is pro duced By axiomatizing the primitives and intro ducing appro priate rules of inference and extension principles that language can b e turned into a logic A premise of the ACL Pro ject is that the Nqthm pro of heuristics allow the mechanization of the discovery of pro ofs in the ACL logic with the same degree of success that Nqthm has for its logic The ACL system may b e viewed as an extended reimplementation of Nqthm for extended applicative Common Lisp ACL is written using the logic it supp orts It provides all of Nqthms pro of techniques except those for VC as well as several that Nqthm do es not provide including forward chaining and congruencebased rewriting An incremental data base extension facility based on hierarchically structured b o oks and several scoping mechanisms is provided to address the problems of reusability and collab orative pro of eorts We discuss the inadequacies of Nqthm motivating the design of ACL we briey describ e the ACL logic the orem prover interface implementation and some applications and we discuss some of our concerns and misgivings ab out the current design Because ACL is not yet ready for public distribution we make no claims as to its sup eriority to Nqthm or other theorem proving systems Disclaimer ACL is b eing develop ed by Rob ert S Boyer Matt Kaufmann and J Strother Mo ore at Computational Logic Inc CLI It is the intention of the authors and CLI to release ACL for public use without fee when its reliability and do cumentation are up to our standards Those levels have not yet b een reached To our colleagues who wish to try out ACL for themselves we ap ologize and ask for their continued patience Visitors to CLI are welcome to use it but we do not want preliminary versions oating around the net If geographical exploration is taken as a metaphor for theorem proving re search then the present pap er should b e read merely as a scouting rep ort of where we are headed and why It should not b e taken as a recommendation that anyone follow our trail much less as an advertisement to buy parcels of the land we have surveyed Because of his role in the ongoing development of ACL it would have b een entirely appropriate for Boyer to b e a coauthor of this pap er He declined for fear of seeming hyp o critical after his recent exhortations to the ATP community not to publish pap ers ab out theorem proving systems unavailable for public scrutiny We supp ort his p osition when the pap er in question claims that the describ ed system has b een found empirically to b e sup erior to existing systems We make no such claims ab out ACL in this pap er Mathematical Mo deling of Digital Systems The mathematics of computation was identied in the s by the collective work of Church Kleene and Turing They established that recursive functions can b e used to mo del digital computation By op erating within a logical frame work deductions ab out computational mo dels can b e carried out formally By mechanizing the formal logic one can assist the human user in the pro of dis covery pro cess as well as eliminate logical errors from conjectures and pro ofs Following the way mathematics is generally used in engineering system ver ication pro ceeds in three steps First a formal mo del of the desired digital system is constructed Second the mo del is corrob orated usually by execut ing it on concrete test data to conrm that it exhibits the desired b ehavior on some nite set of tests Often these rst two steps are iterated until the mo del is deemed a suitably accurate sp ecication of the requirements Finally theorems are proved ab out the mo del to establish some of the interesting prop erties of the mo deled system Since the state space of mo dels of digital systems is often ex ceedingly large or even innite in the case of some higherlevel sp ecications pro of is often the only practical means of conrming prop erties of a mo del In our work we use a logic based on recursive functions In the rst step ab ove we exploit the fact that recursive functions can mo del any computation In the second we exploit the fact that recursive functions can b e executed In the third we exploit the fact that recursive functions can b e emb edded in a logical framework so as to provide formal and hence machinecheckable notions of deduction and pro of Our mo dels usually take the form of abstract machines dened as recursive Design Goals for ACL CLI Technical Rep ort functions in the formal logic Generally sp eaking these functions take two in puts a state and some signals that impinge up on the machine over time Such an abstract machine returns the nal state of the machine after pro cessing all of the signals It do es this by stepping through a sequence of states each successive state b eing obtained by applying the machines step function to the current state and the signal if any that arrives at that time Such machines are commonly used as formalizations of programming lan guages However they have also b een used to mo del other asp ects of the digital systems problem including hardware description languages op erating systems concurrent programs physical systems interacting with digital ones and re quirements mo deling Nqthm The Prototyp e of ACL To dene abstract machines formally and reason ab out them one must have a mathematical logic that provides inductively constructed ob jects such as num b ers sequences and trees and principles of recursive denition and inductive pro of The Nqthm system develop ed by Boyer and Mo ore provides such a logic and a mechanized theorem prover for it Nqthm is widely used in the formal mo deling of digital systems Nqthm is well known for its robustness and the extensive b o dy of verication work done with it However for the past ve years the two authors and Rob ert S Boyer have b een developing a new logic and theorem prover called ACL ACL has adopted and often attempted to improve almost all of the ideas b ehind Nqthm ACL was designed to correct the aws uncovered by two decades of use of Nqthm Those aws primarily concern the scale of the pro jects to b e undertaken with the system Because Nqthm is the prototyp e of ACL we b egin our discussion of ACL by briey reviewing Nqthm and some of its applications and aws The Nqthm System The Nqthm logic is a rst order quantierfree logic resembling pure Lisp The logic provides for the schematic intro duction of new inductively dened data typ es mathematical induction on the ordinals up to the denition of total 0 recursive functions and the witnessed constraint of new function symb ols cou pled with a derived rule of functional instantiation giving the logic some of the features of a higherorder logic In addition the logic provides an axiomatiza tion of a nonconstructive function VC which is an interpreter for the logic and allows the intro duction of any partial recursive function See for details The mechanization of the Nqthm logic is a system of Common Lisp programs allowing the user to dene functions in the logic execute them on concrete data and state and prove theorems ab out such functions The user interface to Nqthm is the Common Lisp readevalprint lo op Common Lisp forms are typ ed to dene functions in the logic invoke the theorem prover etc A sp ecial environment is provided in which forms in the logic may b e executed The Nqthm theorem prover uses a variety of pro of techniques eg simplication