1.1 --- a/src/HOL/Bali/document/root.tex Mon Jan 28 17:52:13 2002 +0100
1.2 +++ b/src/HOL/Bali/document/root.tex Mon Jan 28 18:48:25 2002 +0100
1.3 @@ -1,22 +1,10 @@
1.4
1.5 \documentclass[11pt,a4paper]{book}
1.6 \usepackage{isabelle,isabellesym}
1.7 -
1.8 -% further packages required for unusual symbols (see also isabellesym.sty)
1.9 \usepackage{latexsym}
1.10 -%\usepackage{amssymb}
1.11 -%\usepackage[english]{babel}
1.12 -%\usepackage[latin1]{inputenc}
1.13 -%\usepackage[only,bigsqcap]{stmaryrd}
1.14 -%\usepackage{wasysym}
1.15 -%\usepackage{eufrak}
1.16 -%\usepackage{textcomp}
1.17 -%\usepackage{marvosym}
1.18 -
1.19 -% this should be the last package used
1.20 +\usepackage{graphicx}
1.21 \usepackage{pdfsetup}
1.22
1.23 -% proper setup for best-style documents
1.24 \urlstyle{rm}
1.25 \isabellestyle{it}
1.26
1.27 @@ -37,16 +25,20 @@
1.28 {\begin{isabellebody}}
1.29 {\end{isabellebody}}
1.30
1.31 +
1.32 \begin{document}
1.33
1.34 -\title{Java Source and Bytecode Formalizations in Isabelle: Bali\\
1.35 - {\large -- VerifiCard Project Deliverables -- }}
1.36 +\title{Java Source and Bytecode Formalizations in Isabelle: Bali}
1.37 \author{Gerwin Klein \and Tobias Nipkow \and David von Oheimb \and
1.38 Leonor Prensa Nieto \and Norbert Schirmer \and Martin Strecker}
1.39 \maketitle
1.40
1.41 \tableofcontents
1.42
1.43 +\begin{center}
1.44 + \includegraphics[scale=0.7]{session_graph}
1.45 +\end{center}
1.46 +
1.47 \parindent 0pt\parskip 0.5ex
1.48 \chapter{Overview}
1.49 These theories, called Bali, model and analyse different aspects of the
1.50 @@ -95,142 +87,136 @@
1.51
1.52 Overview of the theories:
1.53 \begin{description}
1.54 -\item [Basis.thy]
1.55 +\item[Basis]
1.56 Some basic definitions and settings not specific to JavaCard but missing in HOL.
1.57
1.58 -\item [Table.thy]
1.59 +\item[Table]
1.60 Definition and some properties of a lookup table to map various names
1.61 (like class names or method names) to some content (like classes or methods).
1.62
1.63 -\item[Name.thy]
1.64 +\item[Name]
1.65 Definition of various names (class names, variable names, package names,...)
1.66
1.67 -\item[Value.thy]
1.68 +\item[Value]
1.69 JavaCard expression values (Boolean, Integer, Addresses,...)
1.70
1.71 -\item[Type.thy]
1.72 +\item[Type]
1.73 JavaCard types. Primitive types (Boolean, Integer,...) and reference types
1.74 (Classes, Interfaces, Arrays,...)
1.75
1.76 -\item[Term.thy]
1.77 +\item[Term]
1.78 JavaCard terms. Variables, expressions and statements.
1.79
1.80 -\item[Decl.thy]
1.81 +\item[Decl]
1.82 Class, interface and program declarations. Recursion operators for the
1.83 class and the interface hierarchy.
1.84
1.85 -\item[TypeRel.thy]
1.86 +\item[TypeRel]
1.87 Various relations on types like the subclass-, subinterface-, widening-,
1.88 narrowing- and casting-relation.
1.89
1.90 -\item[DeclConcepts.thy]
1.91 +\item[DeclConcepts]
1.92 Advanced concepts on the class and interface hierarchy like inheritance,
1.93 overriding, hiding, accessibility of types and members according to the access
1.94 modifiers, method lookup.
1.95
1.96 -\item[WellType.thy]
1.97 +\item[WellType]
1.98 Typesystem on the JavaCard term level.
1.99
1.100 -\item[WellForm.thy]
1.101 +\item[WellForm]
1.102 Typesystem on the JavaCard class, interface and program level.
1.103
1.104 -\item[State.thy]
1.105 +\item[State]
1.106 The program state (like object store) for the execution of JavaCard.
1.107 Abrupt completion (exceptions, break, continue, return) is modelled as flag
1.108 inside the state.
1.109
1.110 -\item[Eval.thy]
1.111 +\item[Eval]
1.112 Operational (big step) semantics for JavaCard.
1.113
1.114 -\item[Example.thy]
1.115 +\item[Example]
1.116 An concrete example of a JavaCard program to validate the typesystem and the
1.117 operational semantics.
1.118
1.119 -\item[Conform.thy]
1.120 +\item[Conform]
1.121 Conformance predicate for states. When does an execution state conform to the
1.122 static types of the program given by the typesystem.
1.123
1.124 -\item[TypeSafe.thy]
1.125 +\item[TypeSafe]
1.126 Typesafety proof of the execution of JavaCard. ''Welltyped programs don't go
1.127 wrong'' or more technical: The execution of a welltyped JavaCard program
1.128 preserves the conformance of execution states.
1.129
1.130 -\item[Evaln.thy]
1.131 -Copy of the operational semantics given in Eval.thy expanded with an annotation
1.132 +\item[Evaln]
1.133 +Copy of the operational semantics given in theory Eval expanded with an annotation
1.134 for the maximal recursive depth. The semantics is not altered. The annotation
1.135 is needed for the soundness proof of the axiomatic semantics.
1.136
1.137 -\item[AxSem.thy]
1.138 +\item[AxSem]
1.139 An axiomatic semantics (Hoare logic) for JavaCard.
1.140
1.141 -\item[AxSound.thy]
1.142 +\item[AxSound]
1.143 The soundness proof of the axiomatic semantics with respect to the operational
1.144 semantics.
1.145
1.146 -\item[AxCompl.thy]
1.147 +\item[AxCompl]
1.148 The proof of (relative) completeness of the axiomatic semantics with respect
1.149 to the operational semantics.
1.150
1.151 -\item[AxExample.thy]
1.152 +\item[AxExample]
1.153 An concrete example of the axiomatic semantics at work, applied to prove
1.154 -some properties of the JavaCard example given in Example.thy.
1.155 +some properties of the JavaCard example given in theory Example.
1.156 \end{description}
1.157
1.158 -% include generated text of all theories
1.159 -\chapter{Basis.thy}
1.160 -\input{../generated/Basis.tex}
1.161 -\chapter{Table.thy}
1.162 -\input{../generated/Table.tex}
1.163
1.164 -\chapter{Name.thy}
1.165 -\input{../generated/Name.tex}
1.166 -\chapter{Value.thy}
1.167 -\input{../generated/Value.tex}
1.168 -\chapter{Type.thy}
1.169 -\input{../generated/Type.tex}
1.170 -\chapter{Term.thy}
1.171 -\input{../generated/Term.tex}
1.172 -\chapter{Decl.thy}
1.173 -\input{../generated/Decl.tex}
1.174 -\chapter{TypeRel.thy}
1.175 -\input{../generated/TypeRel.tex}
1.176 -\chapter{DeclConcepts.thy}
1.177 -\input{../generated/DeclConcepts.tex}
1.178 +\chapter{Basis}
1.179 +\input{Basis}
1.180 +\chapter{Table}
1.181 +\input{Table}
1.182
1.183 -\chapter{WellType.thy}
1.184 -\input{../generated/WellType.tex}
1.185 -\chapter{WellForm.thy}
1.186 -\input{../generated/WellForm.tex}
1.187 +\chapter{Name}
1.188 +\input{Name}
1.189 +\chapter{Value}
1.190 +\input{Value}
1.191 +\chapter{Type}
1.192 +\input{Type}
1.193 +\chapter{Term}
1.194 +\input{Term}
1.195 +\chapter{Decl}
1.196 +\input{Decl}
1.197 +\chapter{TypeRel}
1.198 +\input{TypeRel}
1.199 +\chapter{DeclConcepts}
1.200 +\input{DeclConcepts}
1.201
1.202 -\chapter{State.thy}
1.203 -\input{../generated/State.tex}
1.204 -\chapter{Eval.thy}
1.205 -\input{../generated/Eval.tex}
1.206 +\chapter{WellType}
1.207 +\input{WellType}
1.208 +\chapter{WellForm}
1.209 +\input{WellForm}
1.210
1.211 -\chapter{Example.thy}
1.212 -\input{../generated/Example.tex}
1.213 +\chapter{State}
1.214 +\input{State}
1.215 +\chapter{Eval}
1.216 +\input{Eval}
1.217
1.218 -\chapter{Conform.thy}
1.219 -\input{../generated/Conform.tex}
1.220 -\chapter{TypeSafe.thy}
1.221 -\input{../generated/TypeSafe.tex}
1.222 +\chapter{Example}
1.223 +\input{Example}
1.224
1.225 -\chapter{Evaln.thy}
1.226 -\input{../generated/Evaln.tex}
1.227 -\chapter{AxSem.thy}
1.228 -\input{../generated/AxSem.tex}
1.229 -\chapter{AxSound.thy}
1.230 -\input{../generated/AxSound.tex}
1.231 -\chapter{AxCompl.thy}
1.232 -\input{../generated/AxCompl.tex}
1.233 -\chapter{AxExample.thy}
1.234 -\input{../generated/AxExample.tex}
1.235 +\chapter{Conform}
1.236 +\input{Conform}
1.237 +\chapter{TypeSafe}
1.238 +\input{TypeSafe}
1.239
1.240 -
1.241 -
1.242 -
1.243 -
1.244 -
1.245 +\chapter{Evaln}
1.246 +\input{Evaln}
1.247 +\chapter{AxSem}
1.248 +\input{AxSem}
1.249 +\chapter{AxSound}
1.250 +\input{AxSound}
1.251 +\chapter{AxCompl}
1.252 +\input{AxCompl}
1.253 +\chapter{AxExample}
1.254 +\input{AxExample}
1.255
1.256 %\bibliographystyle{abbrv}
1.257 %\bibliography{root}