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