By Tobias Nipkow, Gerwin Klein
Part I of this ebook is a realistic advent to operating with the Isabelle facts assistant. It teaches you the way to jot down sensible courses and inductive definitions and the way to end up homes approximately them in Isabelle’s established evidence language. half II is an creation to the semantics of crucial languages with an emphasis on purposes like compilers and software analysers. The distinguishing function is that every one the maths has been formalised in Isabelle and masses of it really is executable. half I focusses at the information of proofs in Isabelle; half II could be learn even with out familiarity with Isabelle’s facts language, all proofs are defined intimately yet informally.
The ebook teaches the reader the paintings of distinct logical reasoning and the sensible use of an explanation assistant as a surgical software for formal proofs approximately machine technological know-how artefacts. during this feel it represents a proper method of desktop technological know-how, not only semantics. The Isabelle formalisation, together with the proofs and accompanying slides, are freely to be had on-line, and the ebook is acceptable for graduate scholars, complex undergraduate scholars, and researchers in theoretical computing device technology and logic.
Read or Download Concrete Semantics: With Isabelle/HOL PDF
Best compilers books
Clinical info research utilizing Jython Scripting and Java provides useful methods for information research utilizing Java scripting in keeping with Jython, a Java implementation of the Python language. The chapters primarily conceal all facets of knowledge research, from arrays and histograms to clustering research, curve becoming, metadata and neural networks.
Vintage description of the interior algorithms and the constructions that shape the foundation of the UNIX working method and their dating to programmer interface. The prime promoting UNIX internals publication out there.
Transactions on HiPEAC goals on the well timed dissemination of study contributions in machine structure and compilation tools for high-performance embedded computers. spotting the convergence of embedded and general-purpose computers, this magazine publishes unique study on structures particular at particular computing projects in addition to platforms with vast program bases.
For over twenty years, this accomplished handbook has been the normal creation and entire reference for writing articles and books containing mathematical formulation. If the reader calls for a streamlined method of studying LaTeX for composing daily records, Grätzer’s © 2014 useful LaTeX can also be a sensible choice.
Extra info for Concrete Semantics: With Isabelle/HOL
In the Plus a 1 a 2 case, the induction hypotheses are aval (asimp_const a i ) s = aval a i s for i =1,2. If asimp_const a i = N n i for i =1,2, then aval (asimp_const (Plus a 1 a 2 )) s = aval (N (n 1 +n 2 )) s = n 1 +n 2 = aval (asimp_const a 1 ) s + aval (asimp_const a 2 ) s = aval (Plus a 1 a 2 ) s. Otherwise aval (asimp_const (Plus a 1 a 2 )) s = aval (Plus (asimp_const a 1 ) (asimp_const a 2 )) s = aval (asimp_const a 1 ) s + aval (asimp_const a 2 ) s = aval (Plus a 1 a 2 ) s. This is rather a long proof for such a simple lemma, and boring to boot.
The correct generalization is lemma "itrev xs ys = rev xs @ ys" If ys is replaced by , the right-hand side simpliﬁes to rev xs, as required. In this instance it was easy to guess the right generalization. Other situations can require a good deal of creativity. Although we now have two variables, only xs is suitable for induction, and we repeat our proof attempt. Unfortunately, we are still not there: 1. a xs. 5 Simpliﬁcation 21 but the induction hypothesis needs to be applied with a # ys instead of ys.
Itrev  ys = rev  @ ys a xs ys. ( ys. itrev xs ys = rev xs @ ys) =⇒ itrev (a # xs) ys = rev (a # xs) @ ys Thus the proof succeeds: apply auto done This leads to another heuristic for generalization: Generalize induction by generalizing all free variables (except the induction variable itself). Generalization is best performed with arbitrary: y 1 . . y k . This heuristic prevents trivial failures like the one above. However, it should not be applied blindly. It is not always required, and the additional quantiﬁers can complicate matters in some cases.
Concrete Semantics: With Isabelle/HOL by Tobias Nipkow, Gerwin Klein