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