Concrete Semantics
with Isabelle/HOL
Tobias Nipkow
Fakult
at f
ur Informatik
Technische Universit
at M
unchen
2016-2-29
1
Part I
Isabelle
2
Chapter 2
Programming and Proving
3
1 Overview of Isabelle/HOL
2 Type and function definitions
3 Induction Heuristi
COMP4161: Advanced Topics in Software Verification
>=
Gerwin Klein, June Andronick, Ramana Kumar
S2/2016
data61.csiro.au
Last Time
Weakest preconditions
Verification conditions
Example program proofs
Arrays, pointers
c Data61, CSIRO: provided under Creati
COMP4161: Advanced Topics in Software Verification
C
Gerwin Klein, June Andronick, Ramana Kumar
S2/2016
data61.csiro.au
Last Time
c Data61, CSIRO: provided under Creative Commons Attribution License
2 | COMP4161 |
Last Time
Deep and shallow embeddings
c
COMP4161: Advanced Topics in Software Verification
Gerwin Klein, June Andronick, Ramana Kumar
S2/2016
data61.csiro.au
Exercises from last time
Download and install Isabelle from
http:/mirror.cse.unsw.edu.au/pub/isabelle/
Step through the demo files from
COMP4161: Advanced Topics in Software Verification
based on slides by J. Blanchette, L. Bulwahn and T. Nipkow
Gerwin Klein, June Andronick, Ramana Kumar
S2/2016
data61.csiro.au
Content
Intro & motivation, getting started
Foundations & Principles
Lambda
Tobias Nipkow, Gerwin Klein
Concrete Semantics
with Isabelle/HOL
February 29, 2016
Springer-Verlag
I will not allow books to prove anything.
Jane Austen, Persuasion
Preface
This book is two books. Part I is a practical introduction to working with
the Isa
Eisbach
A proof method language for Isabelle
Daniel Matichuk | PhD Student
October 2016
www.csiro.au
Isabelle Concepts
Isar, Proof Methods, and ML
le
l
e
I
b
a
s =
Isabelle Stack
jEdit (Scala)
Isar
Is
le
l
e
b
a
Isabelle/ML
Poly/ML
3
Eisbach: A Proof Meth
COMP4161 S2/2014
Advanced Topics in Software Verification
Exam
This take-home exam starts on Monday 10 Nov 2014, 08:00 am and is due
on Tuesday 11 Nov 2014, 07:59 am. We will accept plain text files, PDF
files, and Isabelle theory files (.thy); submission
COMP4161: Advanced Topics in Software Verification
and HOL
Gerwin Klein, June Andronick, Ramana Kumar
S2/2016
data61.csiro.au
Last time.
Simply typed lambda calculus:
Typing rules for , type variables, type contexts
-reduction in satisfies subject reduc
COMP4161: Advanced Topics in Software Verification
cfw_P . . . cfw_Q
Gerwin Klein, June Andronick, Ramana Kumar
S2/2016
data61.csiro.au
Last Time
Syntax of a simple imperative language
Operational semantics
Program proof on operational semantics
Hoare log
COMP4161: Advanced Topics in Software Verification
HOL
Gerwin Klein, June Andronick, Ramana Kumar
S2/2016
data61.csiro.au
Last time.
natural deduction rules for , , , , iff.
proof by assumption, by intro rule, elim rule
safe and unsafe rules
indent you
CakeML: bootstrapping a
verified compiler
Ramana Kumar
COMP4161, 6 October 2016
www.data61.csiro.au
Question
What is this function, foo, more often called?
foo f [ ] = [ ]
foo f (h # t) = f h # foo f t
2 | CakeML | Ramana Kumar
Question
What is this funct