doc-src/TutorialI/Overview/LNCS/document/root.tex
author wenzelm
Tue, 24 Mar 2009 13:12:23 +0100
changeset 30700 dc38bb27df50
parent 13439 2f98365f57a8
permissions -rw-r--r--
process at-sml-dev last -- takes very long (why?);
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13262
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
     1
\documentclass[11pt,a4paper]{article}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
     2
\usepackage{isabelle,isabellesym,pdfsetup}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
     3
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
     4
%for best-style documents ...
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
     5
\urlstyle{rm}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
     6
%\isabellestyle{it}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
     7
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
     8
\newtheorem{Exercise}{Exercise}[section]
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
     9
\newenvironment{exercise}{\begin{Exercise}\rm}{\end{Exercise}}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    10
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    11
\begin{document}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    12
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    13
\title{A Compact Overview of Isabelle/HOL}
13439
2f98365f57a8 *** empty log message ***
nipkow
parents: 13262
diff changeset
    14
\author{Tobias Nipkow\\Institut f{\"u}r Informatik, TU M{\"u}nchen\\
2f98365f57a8 *** empty log message ***
nipkow
parents: 13262
diff changeset
    15
 \small\url{http://www.in.tum.de/~nipkow/}}
13262
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    16
\date{}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    17
\maketitle
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    18
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    19
\noindent
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    20
This document is a very compact introduction to the proof assistant
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    21
Isabelle/HOL and is based directly on the published tutorial~\cite{LNCS2283}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    22
where full explanations and a wealth of additional material can be found.
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    23
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    24
While reading this document it is recommended to single-step through the
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    25
corresponding theories using Isabelle/HOL to follow the proofs.
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    26
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    27
\section{Functional Programming/Modelling}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    28
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    29
\subsection{An Introductory Theory}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    30
\input{FP0.tex}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    31
13439
2f98365f57a8 *** empty log message ***
nipkow
parents: 13262
diff changeset
    32
\begin{exercise}
2f98365f57a8 *** empty log message ***
nipkow
parents: 13262
diff changeset
    33
Define a datatype of binary trees and a function \isa{mirror}
2f98365f57a8 *** empty log message ***
nipkow
parents: 13262
diff changeset
    34
that mirrors a binary tree by swapping subtrees recursively. Prove
2f98365f57a8 *** empty log message ***
nipkow
parents: 13262
diff changeset
    35
\isa{mirror(mirror t) = t}.
2f98365f57a8 *** empty log message ***
nipkow
parents: 13262
diff changeset
    36
2f98365f57a8 *** empty log message ***
nipkow
parents: 13262
diff changeset
    37
Define a function \isa{flatten} that flattens a tree into a list
2f98365f57a8 *** empty log message ***
nipkow
parents: 13262
diff changeset
    38
by traversing it in infix order. Prove
2f98365f57a8 *** empty log message ***
nipkow
parents: 13262
diff changeset
    39
\isa{flatten(mirror t) = rev(flatten t)}.
2f98365f57a8 *** empty log message ***
nipkow
parents: 13262
diff changeset
    40
\end{exercise}
2f98365f57a8 *** empty log message ***
nipkow
parents: 13262
diff changeset
    41
13262
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    42
\subsection{More Constructs}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    43
\input{FP1.tex}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    44
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    45
\input{RECDEF.tex}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    46
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    47
\input{Rules.tex}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    48
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    49
\input{Sets.tex}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    50
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    51
\input{Ind.tex}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    52
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    53
%\input{Isar.tex}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    54
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    55
%%% Local Variables:
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    56
%%% mode: latex
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    57
%%% TeX-master: "root"
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    58
%%% End:
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    59
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    60
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    61
\bibliographystyle{plain}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    62
\bibliography{root}
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    63
bbfc360db011 *** empty log message ***
nipkow
parents:
diff changeset
    64
\end{document}