By Tobias Nipkow, Gerwin Klein
Part I of this booklet is a pragmatic advent to operating with the Isabelle facts assistant. It teaches you ways to jot down sensible courses and inductive definitions and the way to end up houses approximately them in Isabelle’s dependent facts language. half II is an creation to the semantics of relevant languages with an emphasis on functions like compilers and application analysers. The distinguishing characteristic is that every one the math has been formalised in Isabelle and masses of it truly is executable. half I focusses at the info of proofs in Isabelle; half II might be learn even with no familiarity with Isabelle’s evidence language, all proofs are defined intimately yet informally.
The ebook teaches the reader the artwork of specific logical reasoning and the sensible use of an evidence assistant as a surgical instrument for formal proofs approximately computing device technology artefacts. during this feel it represents a proper method of machine technological know-how, not only semantics. The Isabelle formalisation, together with the proofs and accompanying slides, are freely on hand on-line, and the booklet is appropriate for graduate scholars, complicated undergraduate scholars, and researchers in theoretical desktop technology and logic.
Read Online or Download Concrete Semantics: With Isabelle/HOL PDF
Best compilers books
Initially released in 1981, this was once the 1st textbook on programming within the Prolog language and remains to be the definitive introductory textual content on Prolog. although many Prolog textbooks were released on the grounds that, this one has withstood the try out of time as a result of its comprehensiveness, instructional technique, and emphasis on basic programming purposes.
- Bayesian Networks in R: with Applications in Systems Biology
- Declarative Agent Languages and Technologies II: Second International Workshop, DALT 2004, New York, NY, USA, July 19, 2004, Revised Selected Papers
- Adventure in Prolog
- Efficient Graph Rewriting and Its Implementation
- Automatic Quantum Computer Programming: A Genetic Programming Approach
Extra resources for Concrete Semantics: With Isabelle/HOL
N. [[evn n =⇒ ev n; evn (Suc (Suc n))]] =⇒ ev (Suc (Suc n)) The ﬁrst and third subgoals follow with ev0 and evSS, and the second subgoal is trivially true because evn (Suc 0) is False: by (simp_all add: ev0 evSS ) The rules for ev make perfect simpliﬁcation and introduction rules because their premises are always smaller than the conclusion. It makes sense to turn them into simpliﬁcation and introduction rules permanently, to enhance proof automation. intros[simp,intro] The rules of an inductive deﬁnition are not simpliﬁcation rules by default because, in contrast to recursive functions, there is no termination requirement for inductive deﬁnitions.
1 Simpliﬁcation Rules The attribute simp declares theorems to be simpliﬁcation rules, which the simpliﬁer will use automatically. In addition, datatype and fun commands implicitly declare some simpliﬁcation rules: datatype the distinctness and injectivity rules, fun the deﬁning equations. Deﬁnitions are not declared as simpliﬁcation rules automatically! Nearly any theorem can become a simpliﬁcation rule. The simpliﬁer will try to transform it into an equation. For example, the theorem ¬ P is turned into P = False.
Now we have arrived at ordinary terms as we have used them all along. More precisely, these terms are over some datatype that deﬁnes the abstract syntax of the language. Our little language of arithmetic expressions is deﬁned by the datatype aexp: type_synonym vname = string datatype aexp = N int | V vname | Plus aexp aexp where int is the predeﬁned type of integers and vname stands for variable name. Isabelle strings require two single quotes on both ends, for example abc . , constants, V represents variables, and Plus represents addition.