By Matt Kaufmann, Panagiotis Manolios, J Strother Moore
Computer-Aided Reasoning: ACL2 Case Studies illustrates how the computer-aided reasoning procedure ACL2 can be utilized in efficient and cutting edge how you can layout, construct, and retain and software program structures. incorporated listed here are technical papers written by way of twenty-one participants that file on self-contained case reports, a few of that are sanitized commercial tasks. The papers care for a wide selection of principles, together with floating-point mathematics, microprocessor simulation, version checking, symbolic trajectory review, compilation, evidence checking, actual research, and a number of other others.
Computer-Aided Reasoning: ACL2 Case Studies is intended for 2 audiences: these trying to find leading edge how you can layout, construct, and continue and software program platforms swifter and extra reliably, and people wishing to profit tips on how to do that. the previous viewers contains undertaking managers and scholars in survey-oriented classes. The latter viewers comprises scholars and execs pursuing rigorous ways to and software program engineering or formal equipment. Computer-Aided Reasoning: ACL2 Case Studies can be utilized in graduate and upper-division undergraduate classes on software program Engineering, Formal tools, layout, thought of Computation, synthetic Intelligence, and automatic Reasoning.
The publication is split into elements. half I starts off with a dialogue of the hassle considering utilizing ACL2. It additionally encompasses a short advent to the ACL2 good judgment and its mechanization, that's meant to offer the reader adequate heritage to learn the case stories. A extra thorough, textbook advent to ACL2 should be present in the spouse publication, Computer-Aided Reasoning: An Approach.
The center of the publication is a component II, the place the case experiences are awarded. The case experiences include routines whose strategies are on the net. additionally, the whole ACL2 scripts essential to formalize the types and turn out all of the houses mentioned are on the internet. for instance, after we say that one of many case stories formalizes a floating-point multiplier and proves it right, we suggest that not just are you able to learn an English description of the version and the way it used to be proved right, yet you could receive the complete formal content material of the undertaking and replay the proofs, if you want, together with your replica of ACL2.
ACL2 could be bought from its domestic web page. the consequences stated in every one case examine, as ACL2 enter scripts, in addition to workout ideas for either books, can be found from this page.
Read Online or Download Computer-Aided Reasoning: ACL2 Case Studies PDF
Similar compilers books
This e-book bargains a distinct perception into the construction of digital machines for sequential, object-oriented and parallel languages, and makes use of comparisons of alternative VMs to supply genuine, sensible examples. kingdom transitions are used as a proper strategy for the specification of digital machines all through and – additionally – transitions and kingdom transitions on the subject of the overall operation are integrated for specification of the digital laptop for the event-based procedure.
Formal tools were utilized effectively to the verification of medium-sized courses in protocol and layout. besides the fact that, their software to the improvement of enormous platforms calls for extra emphasis on specification, modelling and validation suggestions assisting the options of reusability and modifiability, and their implementation in new extensions of present programming languages.
The second one half the 20 th century observed an unbelievable raise in computing energy; this present day desktops are unbelievably quicker than they was once, they've got extra reminiscence, they could converse oftentimes with distant machines around the globe - and so they can healthy on a computing device. yet, regardless of this impressive development, the voracity of modem functions and consumer expectancies nonetheless pushes know-how correct to the restrict.
Prolog as opposed to You exhibits how one can take in the gauntlet of the good judgment programming language Prolog (PROgramming in common sense) and use it as an obedient programming and challenge fixing software. common sense programming emphasizes that programming is a human job and as a result that courses might be effortless for people to write down, comprehend and manage.
- Architectures for Adaptive Software Systems: 5th International Conference on the Quality of Software Architectures, QoSA 2009, East Stroudsburg, PA, USA, ... Programming and Software Engineering)
- Verified Software: Theories, Tools and Experiments: 6th International Conference, VSTTE 2014, Vienna, Austria, July 17-18, 2014, Revised Selected Papers
- Static Analysis of Software: The Abstract Interpretation
- Holub on Patterns: Learning Design Patterns by Looking at Code
Extra info for Computer-Aided Reasoning: ACL2 Case Studies
An example follows. (defthm equal-char-code (implies (and (characterp x) (characterp y)) (implies (equal (char-codex) (char-code y)) (equal x y))) :rule-classes nil :hints ... 3 Macros and Backquote Users can define macros to extend the language. The symbol cadr is defined as a macro in the ACL2 source code. Here is its definition. (defmacro cadr (x) (list 'car (list 'cdr x))) The body of the macro constructs an expression that is used in place of calls to cadr. This macro could be written using "backquote" notation.
If it fails to find a path, it returns the symbol 'failure. Here is the definition of find-next-step, ignoring the necessary measure hint. (defun find-next-step (c stack b g) (cond ((endp c) 'failure) ((member (car c) stack) (1) (2) Moore 49 (find-next-step (cdr c) stack b g)) ((equal (car c) b) (rev (cons b stack))) (t (let ((temp (find-next-step (neighbors (car c) g) (cons (car c) stack) (3) (4) b g))) (if (equal temp 'failure) (find-next-step (cdr c) stack b g) temp))))) (4a) (4b) (4c) Reading it clause-by-clause: (1) If there are no neighbors left to consider, return 'failure.
2 Given the definition of rev, prove car-last-rev below. 3 How would you rewrite (no-duplicatesp (append a (cons e b))) to simplify it? Prove the theorem. " In this work, we use the word "graph" always to mean directed graph. We represent a graph as an alist. Formally then a graph is a list of pairs; each pair consists of a key and a value. Each key is the name of a node of the graph. The value associated with a key is the list of neighbor nodes immediately accessible from the given node. For sanity, we insist that each node name appear only once as a key in the alist, and that the list of neighbors of a node contain no duplications.
Computer-Aided Reasoning: ACL2 Case Studies by Matt Kaufmann, Panagiotis Manolios, J Strother Moore