Concrete Semantics: With Isabelle/HOL by Tobias Nipkow, Gerwin Klein

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.

Show description

Read Online or Download Concrete Semantics: With Isabelle/HOL PDF

Best compilers books

Programming in Prolog

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.

XML and Web Technologies for Data Sciences with R (Use R!)

Internet applied sciences are more and more proper to scientists operating with info, for either having access to facts and developing wealthy dynamic and interactive displays.  The XML and JSON information codecs are frequent in net providers, normal web content and JavaScript code, and visualization codecs corresponding to SVG and KML for Google Earth and Google Maps.

Extra resources for Concrete Semantics: With Isabelle/HOL

Example text

N. [[evn n =⇒ ev n; evn (Suc (Suc n))]] =⇒ ev (Suc (Suc n)) The first 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 simplification and introduction rules because their premises are always smaller than the conclusion. It makes sense to turn them into simplification and introduction rules permanently, to enhance proof automation. intros[simp,intro] The rules of an inductive definition are not simplification rules by default because, in contrast to recursive functions, there is no termination requirement for inductive definitions.

1 Simplification Rules The attribute simp declares theorems to be simplification rules, which the simplifier will use automatically. In addition, datatype and fun commands implicitly declare some simplification rules: datatype the distinctness and injectivity rules, fun the defining equations. Definitions are not declared as simplification rules automatically! Nearly any theorem can become a simplification rule. The simplifier 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 defines the abstract syntax of the language. Our little language of arithmetic expressions is defined by the datatype aexp: type_synonym vname = string datatype aexp = N int | V vname | Plus aexp aexp where int is the predefined 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.

Download PDF sample

Rated 4.06 of 5 – based on 10 votes