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