src/HOL/Bali/document/root.tex
author haftmann
Fri, 11 Jun 2010 17:14:02 +0200
changeset 37407 61dd8c145da7
parent 28181 e98be9824b7d
child 58887 38db8ddc0f57
permissions -rw-r--r--
declare lex_prod_def [code del]
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
     1
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
     2
\documentclass[11pt,a4paper]{book}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
     3
\usepackage{isabelle,isabellesym}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
     4
\usepackage{latexsym}
12856
wenzelm
parents: 12854
diff changeset
     5
\usepackage{graphicx}
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
     6
\usepackage{pdfsetup}
28181
e98be9824b7d babel: removed unnecessary "french" option, which actually enables french section names etc. on some LaTeX installations;
wenzelm
parents: 13689
diff changeset
     7
\usepackage[english]{babel}
13689
3d4ad560b2ff fixed "latex capacity exceeded"
kleing
parents: 13688
diff changeset
     8
\usepackage{ifthen}
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
     9
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    10
\urlstyle{rm}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    11
\isabellestyle{it}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    12
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    13
\pagestyle{myheadings}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    14
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    15
\addtolength{\hoffset}{-1,5cm}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    16
\addtolength{\textwidth}{4cm}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    17
\addtolength{\voffset}{-2cm}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    18
\addtolength{\textheight}{4cm}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    19
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    20
%subsection instead of section to make the toc readable
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    21
\renewcommand{\thesubsection}{\arabic{subsection}}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    22
\renewcommand{\isamarkupheader}[1]{\newpage\markright{Theory~\isabellecontext}\subsection{#1}}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    23
\renewcommand{\isamarkupsection}[1]{\subsubsection{#1}}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    24
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    25
%remove spaces from the isabelle environment (trivlist makes them too large)
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    26
\renewenvironment{isabelle}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    27
{\begin{isabellebody}}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    28
{\end{isabellebody}}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    29
13689
3d4ad560b2ff fixed "latex capacity exceeded"
kleing
parents: 13688
diff changeset
    30
\renewcommand{\isacommand}[1]{\ifthenelse{\equal{#1}{lemma}}
3d4ad560b2ff fixed "latex capacity exceeded"
kleing
parents: 13688
diff changeset
    31
{\par\isakeyword{#1}}{\isakeyword{#1}}}
12856
wenzelm
parents: 12854
diff changeset
    32
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    33
\begin{document}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    34
12856
wenzelm
parents: 12854
diff changeset
    35
\title{Java Source and Bytecode Formalizations in Isabelle: Bali}
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    36
\author{Gerwin Klein \and Tobias Nipkow \and David von Oheimb \and
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    37
  Leonor Prensa Nieto \and Norbert Schirmer \and Martin Strecker}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    38
\maketitle
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    39
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    40
\tableofcontents
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    41
12856
wenzelm
parents: 12854
diff changeset
    42
\begin{center}
wenzelm
parents: 12854
diff changeset
    43
  \includegraphics[scale=0.7]{session_graph}
wenzelm
parents: 12854
diff changeset
    44
\end{center}
wenzelm
parents: 12854
diff changeset
    45
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    46
\parindent 0pt\parskip 0.5ex
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    47
\chapter{Overview}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    48
These theories, called Bali,  model and analyse different aspects of the 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    49
JavaCard \textbf{source language}. 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    50
The basis is an abstract model of the JavaCard source language. 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    51
On it, a type system, an operational semantics and an axiomatic semantics 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    52
(Hoare logic) are built. The execution of a wellformed program (with respect to
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    53
the type system) according to the operational semantics is proved to be 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    54
typesafe. The axiomatic semantics is proved to be sound and relative complete 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    55
with respect to the operational semantics.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    56
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    57
We have modelled large parts of the original JavaCard source language. It models
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    58
features such as:
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    59
\begin{itemize}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    60
\item The basic ``primitive types'' of Java 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    61
\item Classes and related concepts 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    62
\item Class fields and methods
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    63
\item Instance fields and methods
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    64
\item Interfaces and related concepts 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    65
\item Arrays
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    66
\item Static initialisation
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    67
\item Static overloading of fields and methods
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    68
\item Inheritance, overriding and hiding of methods, dynamic binding
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    69
\item All cases of abrupt termination
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    70
      \begin{itemize}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    71
        \item Exception throwing and handling
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    72
        \item \texttt{break}, \texttt{continue} and \texttt{return} 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    73
      \end{itemize}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    74
\item Packages
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    75
\item Access Modifiers (\texttt{private}, \texttt{protected}, \texttt{public})
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
    76
\item A ``definite assignment'' check
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    77
\end{itemize}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    78
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    79
The following features are missing in Bali wrt.{} JavaCard:
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    80
\begin{itemize}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    81
\item Some primitive types (\texttt{byte, short})
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
    82
\item Syntactic variants of statements
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    83
  (\texttt{do}-loop, \texttt{for}-loop)
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
    84
\item Interface fields
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
    85
\item Inner Classes
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    86
\end{itemize}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    87
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    88
In addition, features are missing that are not part of the JavaCard
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    89
language, such as multithreading and garbage collection. No attempt
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    90
has been made to model peculiarities of JavaCard such as the applet
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    91
firewall or the transaction mechanism.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    92
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    93
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    94
Overview of the theories:
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    95
\begin{description}
12856
wenzelm
parents: 12854
diff changeset
    96
\item[Basis] 
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    97
Some basic definitions and settings not specific to JavaCard but missing in HOL.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
    98
12856
wenzelm
parents: 12854
diff changeset
    99
\item[Table]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   100
Definition and some properties of a lookup table to map various names 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   101
(like class names or method names) to some content (like classes or methods).
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   102
12856
wenzelm
parents: 12854
diff changeset
   103
\item[Name]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   104
Definition of various names (class names, variable names, package names,...)
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   105
12856
wenzelm
parents: 12854
diff changeset
   106
\item[Value]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   107
JavaCard expression values (Boolean, Integer, Addresses,...)
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   108
12856
wenzelm
parents: 12854
diff changeset
   109
\item[Type]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   110
JavaCard types. Primitive types (Boolean, Integer,...) and reference types 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   111
(Classes, Interfaces, Arrays,...)
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   112
12856
wenzelm
parents: 12854
diff changeset
   113
\item[Term]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   114
JavaCard terms. Variables, expressions and statements.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   115
12856
wenzelm
parents: 12854
diff changeset
   116
\item[Decl]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   117
Class, interface and program declarations. Recursion operators for the
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   118
class and the interface hierarchy. 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   119
12856
wenzelm
parents: 12854
diff changeset
   120
\item[TypeRel]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   121
Various relations on types like the subclass-, subinterface-, widening-, 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   122
narrowing- and casting-relation.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   123
12856
wenzelm
parents: 12854
diff changeset
   124
\item[DeclConcepts]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   125
Advanced concepts on the class and interface hierarchy like inheritance, 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   126
overriding, hiding, accessibility of types and members according to the access 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   127
modifiers, method lookup.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   128
12856
wenzelm
parents: 12854
diff changeset
   129
\item[WellType]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   130
Typesystem on the JavaCard term level.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   131
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   132
\item[DefiniteAssignment]
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   133
The definite assignment analysis on the JavaCard term level.
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   134
12856
wenzelm
parents: 12854
diff changeset
   135
\item[WellForm]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   136
Typesystem on the JavaCard class, interface and program level.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   137
12856
wenzelm
parents: 12854
diff changeset
   138
\item[State]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   139
The program state (like object store) for the execution of JavaCard.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   140
Abrupt completion (exceptions, break, continue, return) is modelled as flag
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   141
inside the state.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   142
12856
wenzelm
parents: 12854
diff changeset
   143
\item[Eval]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   144
Operational (big step) semantics for JavaCard.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   145
12856
wenzelm
parents: 12854
diff changeset
   146
\item[Example]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   147
An concrete example of a JavaCard program to validate the typesystem and the
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   148
operational semantics.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   149
12856
wenzelm
parents: 12854
diff changeset
   150
\item[Conform]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   151
Conformance predicate for states. When does an execution state conform to the
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   152
static types of the program given by the typesystem.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   153
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   154
\item[DefiniteAssignmentCorrect]
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   155
Correctness of the definite assignment analysis. If the analysis regards a variable as definitely assigned at a
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   156
certain program point, the variable will actually be assigned there during execution.
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   157
12856
wenzelm
parents: 12854
diff changeset
   158
\item[TypeSafe]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   159
Typesafety proof of the execution of JavaCard. ''Welltyped programs don't go
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   160
wrong'' or more technical: The execution of a welltyped JavaCard program 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   161
preserves the conformance of execution states.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   162
12856
wenzelm
parents: 12854
diff changeset
   163
\item[Evaln]
wenzelm
parents: 12854
diff changeset
   164
Copy of the operational semantics given in theory Eval expanded with an annotation
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   165
for the maximal recursive depth. The semantics is not altered. The annotation
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   166
is needed for the soundness proof of the axiomatic semantics.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   167
13384
a34e38154413 Added conditional and (&&) and or (||).
schirmer
parents: 12856
diff changeset
   168
\item[Trans]
a34e38154413 Added conditional and (&&) and or (||).
schirmer
parents: 12856
diff changeset
   169
A smallstep operational semantics for JavaCard.
a34e38154413 Added conditional and (&&) and or (||).
schirmer
parents: 12856
diff changeset
   170
12856
wenzelm
parents: 12854
diff changeset
   171
\item[AxSem]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   172
An axiomatic semantics (Hoare logic) for JavaCard.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   173
12856
wenzelm
parents: 12854
diff changeset
   174
\item[AxSound]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   175
The soundness proof of the axiomatic semantics with respect to the operational
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   176
semantics.
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   177
12856
wenzelm
parents: 12854
diff changeset
   178
\item[AxCompl]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   179
The proof of (relative) completeness of the axiomatic semantics with respect
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   180
to the operational semantics. 
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   181
12856
wenzelm
parents: 12854
diff changeset
   182
\item[AxExample]
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   183
An concrete example of the axiomatic semantics at work, applied to prove 
12856
wenzelm
parents: 12854
diff changeset
   184
some properties of the JavaCard example given in theory Example.
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   185
\end{description}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   186
12856
wenzelm
parents: 12854
diff changeset
   187
wenzelm
parents: 12854
diff changeset
   188
\chapter{Basis}
wenzelm
parents: 12854
diff changeset
   189
\input{Basis}
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   190
12856
wenzelm
parents: 12854
diff changeset
   191
\chapter{Table}
wenzelm
parents: 12854
diff changeset
   192
\input{Table}    
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   193
12856
wenzelm
parents: 12854
diff changeset
   194
\chapter{Name}
wenzelm
parents: 12854
diff changeset
   195
\input{Name}
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   196
12856
wenzelm
parents: 12854
diff changeset
   197
\chapter{Value}     
wenzelm
parents: 12854
diff changeset
   198
\input{Value}
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   199
12856
wenzelm
parents: 12854
diff changeset
   200
\chapter{Type}
wenzelm
parents: 12854
diff changeset
   201
\input{Type}      
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   202
12856
wenzelm
parents: 12854
diff changeset
   203
\chapter{Term}
wenzelm
parents: 12854
diff changeset
   204
\input{Term}     
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   205
12856
wenzelm
parents: 12854
diff changeset
   206
\chapter{Decl}
wenzelm
parents: 12854
diff changeset
   207
\input{Decl}          
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   208
12856
wenzelm
parents: 12854
diff changeset
   209
\chapter{TypeRel}
wenzelm
parents: 12854
diff changeset
   210
\input{TypeRel}   
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   211
12856
wenzelm
parents: 12854
diff changeset
   212
\chapter{DeclConcepts}
wenzelm
parents: 12854
diff changeset
   213
\input{DeclConcepts}  
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   214
12856
wenzelm
parents: 12854
diff changeset
   215
\chapter{WellType}
wenzelm
parents: 12854
diff changeset
   216
\input{WellType}
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   217
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   218
\chapter{DefiniteAssignment}
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   219
\input{DefiniteAssignment}
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   220
12856
wenzelm
parents: 12854
diff changeset
   221
\chapter{WellForm}
wenzelm
parents: 12854
diff changeset
   222
\input{WellForm}
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   223
12856
wenzelm
parents: 12854
diff changeset
   224
\chapter{State}
wenzelm
parents: 12854
diff changeset
   225
\input{State}    
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   226
12856
wenzelm
parents: 12854
diff changeset
   227
\chapter{Eval}
wenzelm
parents: 12854
diff changeset
   228
\input{Eval}          
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   229
12856
wenzelm
parents: 12854
diff changeset
   230
\chapter{Example}
wenzelm
parents: 12854
diff changeset
   231
\input{Example}  
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   232
12856
wenzelm
parents: 12854
diff changeset
   233
\chapter{Conform}
wenzelm
parents: 12854
diff changeset
   234
\input{Conform}       
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   235
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   236
\chapter{DefiniteAssignmentCorrect}
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   237
\input{DefiniteAssignmentCorrect}
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   238
12856
wenzelm
parents: 12854
diff changeset
   239
\chapter{TypeSafe}
wenzelm
parents: 12854
diff changeset
   240
\input{TypeSafe}
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   241
12856
wenzelm
parents: 12854
diff changeset
   242
\chapter{Evaln}
wenzelm
parents: 12854
diff changeset
   243
\input{Evaln}         
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   244
13384
a34e38154413 Added conditional and (&&) and or (||).
schirmer
parents: 12856
diff changeset
   245
\chapter{Trans}
a34e38154413 Added conditional and (&&) and or (||).
schirmer
parents: 12856
diff changeset
   246
\input{Trans}         
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   247
12856
wenzelm
parents: 12854
diff changeset
   248
\chapter{AxSem}
wenzelm
parents: 12854
diff changeset
   249
\input{AxSem}      
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   250
12856
wenzelm
parents: 12854
diff changeset
   251
\chapter{AxSound}
wenzelm
parents: 12854
diff changeset
   252
\input{AxSound}    
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   253
12856
wenzelm
parents: 12854
diff changeset
   254
\chapter{AxCompl}
wenzelm
parents: 12854
diff changeset
   255
\input{AxCompl}    
13688
a0b16d42d489 "Definite Assignment Analysis" included, with proof of correctness. Large adjustments of type safety proof and soundness proof of the axiomatic semantics were necessary. Completeness proof of the loop rule of the axiomatic semantic was altered. So the additional polymorphic variants of some rules could be removed.
schirmer
parents: 13384
diff changeset
   256
12856
wenzelm
parents: 12854
diff changeset
   257
\chapter{AxExample}
wenzelm
parents: 12854
diff changeset
   258
\input{AxExample}  
12854
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   259
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   260
%\bibliographystyle{abbrv}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   261
%\bibliography{root}
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   262
00d4a435777f Isabelle/Bali sources;
schirmer
parents:
diff changeset
   263
\end{document}