|
Showing 1 - 4 of
4 matches in All Departments
This volume contains thoroughly refereed and revised full papers
selected from the presentations at the first workshop held under
the auspices of the ESPRIT Basic Research Action 6453 Types for
Proofs and Programs in Nijmegen, The Netherlands, in May
1993.
As the whole ESPRIT BRA 6453, this volume is devoted to the
theoretical foundations, design and applications of systems for
theory development. Such systems help in designing mathematical
axiomatisation, performing computer-aided logical reasoning, and
managing databases of mathematical facts; they are also known as
proof assistants or proof checkers.
This handbook with exercises reveals in formalisms, hitherto mainly
used for hardware and software design and verification, unexpected
mathematical beauty. The lambda calculus forms a prototype
universal programming language, which in its untyped version is
related to Lisp, and was treated in the first author's classic The
Lambda Calculus (1984). The formalism has since been extended with
types and used in functional programming (Haskell, Clean) and proof
assistants (Coq, Isabelle, HOL), used in designing and verifying IT
products and mathematical proofs. In this book, the authors focus
on three classes of typing for lambda terms: simple types,
recursive types and intersection types. It is in these three
formalisms of terms and types that the unexpected mathematical
beauty is revealed. The treatment is authoritative and
comprehensive, complemented by an exhaustive bibliography, and
numerous exercises are provided to deepen the readers'
understanding and increase their confidence using types.
The Lambda Calculus, treated in this book mainly in its untyped
version, consists of a collection of expressions, called lambda
terms, together with ways how to rewrite and identify these. In the
parts conversion, reduction, theories, and models the view is
respectively 'algebraic', computational, with more ('coinductive')
identifications, and finally set-theoretic. The lambda terms are
built up from variables, using application and abstraction.
Applying a term F to M has as intention that F is a function, M its
argument, and FM the result of the application. This is only the
intention: to actually obtain the result one has to rewrite the
expression FM according to the reduction rules. Abstraction
provides a way to create functions according to the effect when
applying them. The power of the theory comes from the fact that
computations, both terminating and infinite, can be expressed by
lambda terms at a 'comfortable' level of abstraction.
|
You may like...
Tenet
John David Washington, Robert Pattinson, …
DVD
(1)
R51
Discovery Miles 510
|