doc-isac/jrocnik/final/jrocnik_bakk.tex
author Walther Neuper <neuper@ist.tugraz.at>
Tue, 17 Sep 2013 09:50:52 +0200
changeset 52107 f8845fc8f38d
parent 52058 src/Doc/isac/jrocnik/final/jrocnik_bakk.tex@83aff4cb984a
child 60586 007ef64dbb08
permissions -rwxr-xr-x
separated Isac documentation (~~/doc-isac) from Isabelle documentation (~~/src/Doc)
jan@42322
     1
%   Title:  bakkarbeit_jrocnik.tex
jan@42322
     2
%   Author: Jan Rocnik
jan@42322
     3
%   (c) copyright due to lincense terms.
jan@42322
     4
%2345678901234567890123456789012345678901234567890123456789012345678901234567890
jan@42322
     5
%       10        20        30        40        50        60        70        80
jan@42322
     6
jan@42322
     7
%define document class
jan@42307
     8
\documentclass[a4paper, 12pt]{article}
jan@42235
     9
jan@42322
    10
%packages for language and input
jan@42307
    11
\usepackage[english]{babel} 
jan@42235
    12
\usepackage[T1]{fontenc}
jan@42235
    13
\usepackage[latin1]{inputenc}
jan@42235
    14
jan@42322
    15
%generel packages
jan@42307
    16
\usepackage{url}
jan@42246
    17
\usepackage{endnotes}
jan@42246
    18
\usepackage{trfsigns}
jan@42246
    19
\usepackage{setspace}
jan@42307
    20
\usepackage[pdfpagelabels]{hyperref}
jan@42316
    21
\usepackage{longtable}
jan@42326
    22
jan@42324
    23
\usepackage{float} %For restylefloat
jan@42381
    24
\newfloat{example}{ht}{} %self made floats
jan@42326
    25
\floatname{example}{Example} %name for float
jan@42326
    26
\restylefloat{table} %float tables
jan@42326
    27
\floatstyle{ruled} %boxes around floats
jan@42326
    28
\restylefloat{example} %float examples --> boxes
jan@42381
    29
\restylefloat{figure}
jan@42322
    30
jan@42327
    31
%colors and graphics
jan@42327
    32
\usepackage{graphicx}
jan@42327
    33
\usepackage{color}
jan@42327
    34
\definecolor{lgray}{RGB}{238,238,238}
jan@42327
    35
jan@42322
    36
%isabelle relevant packages
jan@42316
    37
\usepackage{isabelle,isabellesym}
jan@42379
    38
%\isabellestyle{it}
jan@42235
    39
jan@42322
    40
%define isac logos
neuper@42073
    41
\def\isac{${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}
neuper@42073
    42
\def\sisac{\footnotesize${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}
neuper@42073
    43
jan@42326
    44
\newcommand{\HRule}{\rule{\linewidth}{0.2mm}}
jan@42326
    45
jan@42374
    46
%start new even page
jan@42374
    47
\usepackage{ifthen}
jan@42374
    48
\newcommand{\newevenside}{
jan@42374
    49
        \ifthenelse{\isodd{\thepage}}{\newpage}{
jan@42374
    50
        \newpage
jan@42374
    51
        \phantom{placeholder} % doesn't appear on page
jan@42374
    52
        \thispagestyle{empty} % if want no header/footer
jan@42374
    53
        \newpage
jan@42374
    54
        }
jan@42374
    55
}
jan@42374
    56
jan@42379
    57
%this should be the last package used
jan@42379
    58
%\usepackage{pdfsetup}
jan@42379
    59
jan@42322
    60
%----------// BEGIN DOCUMENT \\----------%
jan@42322
    61
neuper@42073
    62
\begin{document}
neuper@42073
    63
jan@42333
    64
%----------// TITLE PAGE \\----------%1
jan@42316
    65
jan@42326
    66
\input{./bakkarbeit_titlepage.tex}
jan@42333
    67
\newpage
jan@42326
    68
jan@42333
    69
%----------// EMPTY PAGE \\----------%2
jan@42316
    70
jan@42307
    71
\setcounter{page}{2}
jan@42333
    72
\thispagestyle{empty}\mbox{}\newpage
jan@42333
    73
jan@42333
    74
%----------// THANKS \\----------%3
jan@42333
    75
jan@42333
    76
\setcounter{page}{3}
jan@42307
    77
\begin{center}
jan@42326
    78
	Special Thanks to\\
jan@42326
    79
	\hfill \\
jan@42326
    80
	\emph{Dr.techn. Walther Neuper}\\
jan@42326
    81
	\emph{Dipl.-Ing. Bernhard Geiger}
jan@42307
    82
\end{center}
jan@42307
    83
\thispagestyle{empty}
jan@42333
    84
\newpage
jan@42326
    85
jan@42333
    86
%----------// EMPTY PAGE \\----------%4
jan@42326
    87
jan@42374
    88
%the following command was replaced by \newevenside
jan@42374
    89
%\thispagestyle{empty}\mbox{}\newpage
jan@42307
    90
jan@42333
    91
%----------// ABSTRACT \\----------%5
jan@42307
    92
jan@42374
    93
\newevenside
jan@42307
    94
\begin{abstract}
jan@42381
    95
The Baccalaureate Thesis creates interactivee course material for Signal Processing (SP) based on the experimental educational math assistant Isabelle/{\sisac} ({\em Isa}belle for Transparent {\em C}alculations in Applied Mathematics).
jan@42381
    96
\par The content of the course material is defined together with the Institute for Signal Processing and Speech Communication (SPSC) of Graz University of Technology (TUG). The content is planned to be used in specific lectures and labs of the SPSC and thus is thoroughly concerned with underlying mathematical and physical theory.
jan@42381
    97
One challenge of this thesis is, that much theory required for SPSC is not yet mechanized in Computer Theorem Provers (TP); so this thesis will provide preliminary definitions  and theorems (without proofs~!) implemented in Isabelle \emph{theories}.
jan@42381
    98
\par Another challenge is the implementation of interactivee courses: this is done within the educational math assistant Isabelle/{\sisac}, which is under development at Austrian Universities, one of them TU Graz. The present state of {\sisac{}} happens to provide the {\em first} occasion for authoring by a non-member of the {\sisac}-developer team. So this challenge involves  alpha-testing of the underlying \emph{TP-based programing language}, because error messages are still not user-friendly and need frequent contact with {\sisac}-developers.
jan@42307
    99
So the practical outcome of this thesis is twofold:
jan@42323
   100
\begin{enumerate}
jan@42381
   101
\item Interactive course material hopefully useful in education within the SPSC and within \emph{STEOP}\footnote{German: "`Studieneingangs- und Orientierungsphase"'}, the introductory orientation phase at TUG, as a preview for students in Telematics on later application of math knowledge introduced in the first semester and
jan@42381
   102
\item A detailed description of technicalities in programing implemented as an interactivee Isabelle/Isar theory, providing future programers with guidelines and {\sisac}-developers with feedback in usability of the CTP-based program language. 
jan@42323
   103
\end{enumerate}
jan@42326
   104
\end{abstract}
jan@42326
   105
\clearpage
jan@42307
   106
jan@42333
   107
%----------// EMPTY PAGE \\----------%6
jan@42333
   108
jan@42374
   109
%the following command was replaced by \newevenside
jan@42374
   110
%\thispagestyle{empty}\mbox{}\newpage
jan@42333
   111
jan@42379
   112
%----------// T O C \\----------%7-9
jan@42307
   113
jan@42374
   114
\newevenside
jan@42374
   115
jan@42307
   116
\pagenumbering{Roman}
neuper@42328
   117
%This thesis is structured into a fundamental part introducing the motivation, the basic notions concerning the thesis aswell as the {\sisac{}} project and describing the mathematic base. Further a automatically generated practical part representing the work on {\sisac{}} which can be extended.
neuper@42073
   118
\tableofcontents
neuper@42073
   119
\clearpage
jan@42307
   120
\pagenumbering{arabic}
jan@42379
   121
\setcounter{page}{10}
jan@42316
   122
jan@42316
   123
%----------// PART-1 \\----------%
jan@42316
   124
jan@42374
   125
\newevenside
jan@42374
   126
jan@42316
   127
\part{Project Fundamentals}
neuper@42304
   128
jan@42322
   129
\section{Introduction}
jan@42381
   130
Didactics of mathematics faces a specific issue, a gap between (1) introduction of math concepts and skills and (2) application of these concepts and skills, which usually are separated into different units in curricula (for good reasons). For instance, (1) teaching partial fraction decomposition is separated from (2) application for inverse Z-transform in signal processing.
neuper@42304
   131
jan@42381
   132
This gap is an obstacle for applying math as an fundamental thinking technology in engineering: In (1) motivation is lacking because the question ``What is this stuff good for~?'' cannot be treated sufficiently, and in (2) the ``stuff'' is not available to students in higher semesters as widespread experience shows.
neuper@42240
   133
neuper@42328
   134
\medskip
jan@42371
   135
Motivated by this didactical issue on the one hand, and ongoing R\&D on a novel kind of educational mathematics assistant at Graz University of Technology~\footnote{http://www.ist.tugraz.at/isac/} promising to cope with this issue on the other hand, several institutes are planning to join their expertise: the Institutes for Institute for Information Systems and Computer Media (IICM), the Institute for Software Technology (IST), the Institutes for Mathematics, the Signal Processing and Speech Communication Institute (SPSC), the Institute for Structural Analysis and the Institute of Electrical Measurement and Measurement Signal Processing.
jan@42381
   136
\par This thesis is the first attempt to tackle the above mentioned issue, it focuses on Telematics, because these specific studies focus on mathematics in \emph{STEOP}, the introductory orientation phase. \emph{STEOP} is considered an opportunity to investigate the impact of {\sisac}'s prototype on the issue and others.
neuper@42328
   137
neuper@42328
   138
\medskip
jan@42381
   139
The thesis is structured as follows: Part~I concerns theory and project controlling, Part~II the implementation work, where the latter is the main work, Part~III the resume including summary, open questions and conclusion and the appendixes in Part~IV.
jan@42371
   140
\par In part I, Section~\ref{isabisac} gives a brief description of the state-of-the-art for educational math assistants (Section~\ref{emas}) and introduces the notions required for the implementation work (Section~\ref{math-auth}). In particular, Section~\ref{user-guid} explains, why math authoring in {\sisac{}} is {\em not} concerned with interaction (and thus not with user guidance etc at all~!). So a concise description of the thesis' goals needs to be postponed to Section~\ref{sec:goals}.
jan@42371
   141
\par Section~\ref{sp} analyzes a problems defined by the SPSC for the knowledge already provided (Section~\ref{know-isab}, Section~\ref{know-isac}), discusses the selection of problems for implementation (Section~\ref{know-missing}) TODO: further structure ?
neuper@42328
   142
%(\S\ref{})
neuper@42328
   143
jan@42381
   144
\section{Mechanization of Math in Isabelle/ISAC\label{isabisac}}
jan@42371
   145
neuper@42328
   146
%\subsubsection*{Notes on Mechanization of Mathematics}
neuper@42328
   147
%This thesis tries to \emph{connect} these two worlds and is one of the first guidelines to implement problem classes in {\sisac}. As we are still in a eary part of development, this is the first thesis dealing within this topic and there is \emph{no} related work to guid through. A more detailed description about this fact can be found in Section \ref{sec:related}.
jan@42381
   148
%The major challenge of the practical part, of this thesis, is, that "connecting the two worlds" involves programing in a CTP-based programing language which is in a very early state of prototyping. There is no concrete experience data ready to grep.
neuper@42328
   149
%
jan@42381
   150
As mentioned in the introduction, a prototype of an educational math assistant called {\sisac}\footnote{{\sisac}=\textbf{Isa}belle \cite{Nipkow-Paulson-Wenzel:2002} for \textbf{C}alculations, see http://www.ist.tugraz.at/isac/.} bridges the gap between (1) introducation and (2) application of mathematics: {\sisac} is based on Computer Theorem Proving (TP), a technology which requires each fact and each action justified by formal logic, so {{\sisac{}}} makes justifications transparent to students in interactivee step-wise problem solving. By that way {\sisac} already can serve both:
neuper@42328
   151
\begin{enumerate}
jan@42371
   152
\item Introduction of math stuff (in e.g. partial fraction decomposition) by stepwise explaining and exercising respective symbolic calculations with ``next step guidance (NSG)'' and rigorously checking steps freely input by students  --- this also in context with advanced applications (where the stuff to be taught in higher semesters can be skimmed through by NSG), and
jan@42381
   153
\item Application of math stuff in advanced engineering courses (e.g. problems to be solved by inverse Z-transform in a Signal Processing Lab) --- and now without much ado about basic math techniques (like partial fraction decomposition): ``next step guidance'' supports students in independently (re-)adopting such techniques.
neuper@42328
   154
\end{enumerate}
jan@42381
   155
Before the question is answers, how {\sisac} accomplishes this task from a technical point of view, some remarks on the state-of-the-art is given, therefor follow up Section~\ref{emas}.
neuper@42328
   156
neuper@42328
   157
\subsection{Educational Mathematics Assistants (EMAs)}\label{emas}
jan@42381
   158
Educational software in mathematics is, if at all, based on Computer Algebra Systems (CAS, for instance \cite{progr-mathematica,prog-maple06}), Dynamic Geometry Systems (DGS, for instance \footnote{GeoGebra http://www.geogebra.org, Cinderella http://www.cinderella.de/, GCLC http://poincare.matf.bg.ac.rs/~janicic/gclc/}) or spread-sheets. These base technologies are used to program math lessons and sometimes even exercises. The latter are cumbersome: the steps towards a solution of such an interactivee exercise need to be provided with feedback, where at each step a wide variety of possible input has to be foreseen by the programer --- so such interactivee exercises either require high development efforts or the exercises constrain possible inputs.
neuper@42328
   159
jan@42381
   160
A new generation of educational math assistants (EMAs) is emerging presently, which is based on Theorem Proving (TP). TP, for instance Isabelle \cite{Nipkow-Paulson-Wenzel:2002} and Coq \cite{Huet_all:94}, is a technology which requires each fact and each action justified by formal logic. Pushed by demands for \textit{proven} correctness of safety-critical software TP advances into software engineering; from these advancements computer mathematics benefits in general, and math education in particular. Two features of TP are immediately beneficial for learning:
neuper@42328
   161
jan@42381
   162
\paragraph{TP have knowledge in human readable format,} that is in standard predicate calculus. TP following the LCF-tradition have that knowledge down to the basic definitions of set, equality, etc~\footnote{http://isabelle.in.tum.de/dist/library/HOL/HOL.html}; following the typical deductive development of math, natural numbers are defined and their properties proven~\footnote{http://isabelle.in.tum.de/dist/library/HOL/Number\_Theory/Primes.html}, etc. Present knowledge mechanized in TP exceeds high-school mathematics by far, however by knowledge required in software technology, and not in other engineering sciences.
neuper@42328
   163
jan@42381
   164
\paragraph{TP can model the whole problem solving process} in mathematical problem solving {\em within} a coherent logical framework. This is already being done by three projects, by Ralph-Johan Back \cite{Back-SD09}, by ActiveMath \cite{ActiveMath-MAIN11} and by Carnegie Mellon Tutor \cite{mat-tutor-cmu-MAIN11}.
neuper@42328
   165
jan@42381
   166
Having the whole problem solving process within a logical coherent system, such a design guarantees correctness of intermediate steps and of the result (which seems essential for math software); and the second advantage is that TP provides a wealth of theories which can be exploited for mechanizing other features essential for educational software.
neuper@42328
   167
neuper@42328
   168
\subsection{Generation of User Guidance in EMAs}\label{user-guid}
neuper@42328
   169
One essential feature for educational software is feedback to user input and assistance in coming to a solution.
neuper@42328
   170
neuper@42328
   171
\paragraph{Checking user input} by ATP during stepwise problem solving is being accomplished by the three projects mentioned above \cite{Back-SD09,ActiveMath-MAIN11,mat-tutor-cmu-MAIN11} exclusively. They model the whole problem solving process as mentioned above, so all what happens between formalized assumptions (or formal specification) and goal (or fulfilled postcondition) can be mechanized. Such mechanization promises to greatly extend the scope of educational software in stepwise problem solving.
neuper@42328
   172
jan@42381
   173
\paragraph{Next step guidance (NSG)} comprises the system's ability to propose a next step; this is a challenge for TP: either a radical restriction of the search space by restriction to very specific problem classes is required, or much care and effort is required in designing possible variants in the process of problem solving \cite{proof-strategies-11}.
neuper@42328
   174
jan@42381
   175
Another approach is restricted to problem solving in engineering domains, where a problem is specified by input, precondition, output and postcondition, and where the postcondition is proven by ATP behind the scenes \cite{wn:lucas-interp-12}: Here the possible variants in the process of problem solving are provided with feedback {\em automatically}, if the problem is described in a TP-based programing language~\cite{plmms10}: the programer only describes the math algorithm without caring about interaction (the respective program is functional and even has no in/output statements~!); interaction is generated as a side-effect by the interpreter --- an efficient separation of concern between math programers and dialog designers promising application all over engineering disciplines.
neuper@42328
   176
neuper@42328
   177
jan@42381
   178
\subsection{Math Authoring in Isabelle/ISAC\label{math-auth}}
jan@42381
   179
Authoring new mathematics knowledge in {\sisac} can be compared with ``application programing'' of engineering problems; most of such programing uses CAS-based programing languages (CAS = Computer Algebra Systems; e.g. Mathematica's \cite{progr-mathematica} or Maple's programing language \cite{prog-maple06}).
neuper@42328
   180
jan@42381
   181
{\sisac}, however, uses a novel type of TP-based language \cite{plmms10} for describing how to construct a solution to an engineering problem and for calling equation solvers, integration, etc~\footnote{Implementation of CAS-like functionality in TP is not primarily concerned with efficiency, but with a didactic question: What to decide for: for high-brow algorithms at the state-of-the-art or for elementary algorithms comprehensible for students~?} within TP; TP can ensure ``systems that never make a mistake'' \cite{casproto} --- are impossible for CAS which have no logics underlying.
neuper@42328
   182
jan@42381
   183
With writing such TP-based programs authoring is perfect, the application programer is not concerned with interaction or with user guidance: this is concern of a novel kind of program interpreter called Lucas-Interpreter \cite{wn:lucas-interp-12}. This interpreter hands over control to a dialog component at each step of calculation (like a debugger at breakpoints) and calls automated TP to check user input following personalized strategies according to a feedback module.
neuper@42328
   184
neuper@42328
   185
\medskip
jan@42381
   186
However ``application programing with TP'' is not done with writing a program: according to the principles of TP, each step must be justified. Such justifications are given by theorems. So all steps must be related to some theorem, if there is no such theorem it must be added to the existing knowledge, which is organized in so-called \textbf{theories} in  Isabelle. A theorem must be proven; fortunately Isabelle comprises a mechanism (called ``axiomatization''), which allows to omit proofs. Such a theorem is shown in Example~\ref{eg:neuper1}.
jan@42371
   187
jan@42371
   188
\begin{example}
neuper@42328
   189
{\small\begin{tabbing}
neuper@42328
   190
123\=123\=123\=123\=\kill
jan@42371
   191
\hfill \\
neuper@42328
   192
\>axiomatization where \\
neuper@42328
   193
\>\>  rule1: "1 = $\delta$ [n]" and\\
neuper@42328
   194
\>\>  rule2: "|| z || > 1 ==> z / (z - 1) = u [n]" and\\
neuper@42328
   195
\>\>  rule3: "|| z || < 1 ==> z / (z - 1) = -u [-n - 1]" and \\
neuper@42328
   196
\>\>  rule4: "|| z || > || $\alpha$ || ==> z / (z - $\alpha$) = $\alpha^n$ * u [n]" and\\
neuper@42328
   197
\>\>  rule5: "|| z || < || $\alpha$ || ==> z / (z - $\alpha$) = -($\alpha^n$) * u [-n - 1]" and\\
jan@42371
   198
\>\>  rule6: "|| z || > 1 ==> z/(z - 1)$^2$ = n $\cdot$ u [n]"
neuper@42328
   199
\end{tabbing}
neuper@42328
   200
}
jan@42371
   201
\caption{Axiomatization in Isabelle\label{eg:neuper1}}
jan@42371
   202
\end{example}
neuper@42328
   203
jan@42381
   204
In order to provide TP with logical facts for checking user input, the Lucas-Interpreter requires a \textbf{specification}. Such a specification is shown in Example~\ref{eg:neuper2}.
jan@42371
   205
jan@42371
   206
\begin{example}
neuper@42328
   207
{\small\begin{tabbing}
neuper@42328
   208
123,\=postcond \=: \= $\forall \,A^\prime\, u^\prime \,v^\prime.\,$\=\kill
jan@42371
   209
\hfill \\
neuper@42328
   210
Specification no.1:\\
neuper@42328
   211
%\>input\>: $\{\;r={\it arbitraryFix}\;\}$  \\
neuper@42328
   212
\>input    \>: $\{\;r\;\}$  \\
neuper@42328
   213
\>precond  \>: $0 < r$   \\
neuper@42328
   214
\>output   \>: $\{\;A,\; u,v\;\}$ \\
neuper@42328
   215
\>postcond \>:{\small  $\;A=2uv-u^2 \;\land\; (\frac{u}{2})^2+(\frac{v}{2})^2=r^2 \;\land$}\\
neuper@42328
   216
\>     \>\>{\small $\;\forall \;A^\prime\; u^\prime \;v^\prime.\;(A^\prime=2u^\prime v^\prime-(u^\prime)^2 \land
neuper@42328
   217
(\frac{u^\prime}{2})^2+(\frac{v^\prime}{2})^2=r^2) \Longrightarrow A^\prime \leq A$} \\
neuper@42328
   218
\>props\>: $\{\;A=2uv-u^2,\;(\frac{u}{2})^2+(\frac{v}{2})^2=r^2\;\}$
neuper@42328
   219
\end{tabbing}
neuper@42328
   220
}
jan@42371
   221
\caption{Specification for the Lucas-Interpreter\label{eg:neuper2}}
jan@42371
   222
\end{example}
jan@42371
   223
jan@42371
   224
Such a specification is checked before the execution of a program is started, the same applies for sub-programs. In the following example program (Example~\ref{eg:subprob}) the sub-programs are designated by \ttfamily SubProblem \normalfont:
jan@42371
   225
jan@42371
   226
\begin{example}
jan@42371
   227
\hfill \\
jan@42371
   228
{\ttfamily \begin{tabbing}
jan@42371
   229
``(L\_L::bool list) = (\=SubProblem (\=Test','' \\
jan@42371
   230
``\>\>[linear,univariate,equation,test],'' \\
jan@42371
   231
``\>\>[Test,solve\_linear])'' \\
jan@42371
   232
``\>[BOOL equ, REAL z])'' \\
jan@42371
   233
\end{tabbing}
jan@42371
   234
}
jan@42371
   235
{\small\textit{
jan@42381
   236
	\noindent If a program requires a result which has to be calculated first we can use a subproblem to do so. In our specific case we wanted to calculate the zeros of a fraction and used a subproblem to calculate the zeros of the denominator polynom.
jan@42371
   237
	}}
jan@42381
   238
\caption{Usage of Subproblems in Programs\label{eg:subprob}}
jan@42371
   239
\end{example}
neuper@42328
   240
jan@42327
   241
jan@42326
   242
\subsection{Goals of the Thesis}\label{sec:goals}
jan@42371
   243
Imagine a piece of software would be able to support you by understanding every problem class, upcoming in the first years attending university - wouldn't it be great?
jan@42381
   244
\par {{\sisac{}}} tries to do that, but the current state of the art is miles away from this goal and a single implementation of a problem is not enough to change this circumstance. Through this fact it is all the more essential to try, test, research and document the implementation of problem classes from "`real world"' applications. Responding to the abstract at the begin of this document the thesis has two folds; on the one hand certainly to provide interactivee course material for Signal Processing (which means to implement a single problem provided by the Institute of Signal Processing and Speech Communication (SPSC); follow up Calulcations), and to extract experience data respectively help the {{\sisac{}}}-team by setting up a detailed description of technicalities hacking {\sisac{}} on the other hand.
jan@42371
   245
jan@42371
   246
All the notions are in place to describe the task ``Interactive Course Material for Signal Processing based on Isabelle/{\sisac}'', the main task of this thesis, appropriately by the following points:
neuper@42328
   247
\begin{enumerate}
jan@42330
   248
\item Analyze the problems given by the SPSC Lab for mathematics \textbf{knowledge required}, search the knowledge already available in Isabelle/{\sisac}, estimate efforts required to fill the gap between knowledge required and knowledge available, and finally select problems for implementation accordingly.
jan@42330
   249
\item Implement the selected problems in Isabelle/{\sisac}, which means, in appropriate Isabelle theories \textbf{for each problem} implement:
neuper@42328
   250
  \begin{enumerate}
jan@42381
   251
  \item \textbf{Definitions and theorems} required within the specification (including ``descriptions'' for input variables and output variables) and the program (proofs omitted via ``axiomatization'')
neuper@42328
   252
  \item \textbf{A specification} which describes the input variables, the preconditions on the input (a challenge for rigorously exact mathematics~!), the output variables and the postcondition, which relates input to output such that the problem is characterized formally (another challenge for rigorously exact mathematics~!)
neuper@42328
   253
  \item \textbf{A program} describing the algorithm which solves the problem, i.e. which constructs output meeting the postcondition. Programming involves identifying the steps (tactics~!) which create the calculation and calling CAS-functions (simplification, equation solvers, etc) appropriately. Modularization of programs into {\tt SubProblems} has to prepare for re-use of code.
neuper@42328
   254
  \end{enumerate}
jan@42381
   255
\item Add \textbf{multimedia explanations} to each problem (i.e. to specific definitions, theorems, the specification and the program) such that non-expert students (e.g. within \emph{STEOP}, the introductory orientation phase at TUG) get an idea the problem is about.
neuper@42328
   256
\item \textbf{Document the implementation} such that
neuper@42328
   257
  \begin{enumerate}
jan@42381
   258
  \item Interactive course material hopefully useful in education within the SPSC and within \emph{STEOP}, the introductory orientation phase at TUG, as a preview for students in Telematics on later application of math knowledge introduced in the first semester and
jan@42381
   259
  \item A detailed description of technicalities in programing implemented as an interactivee Isabelle/Isar theory, providing future programers with guidelines and {\sisac}-developers with feedback in usability of the TP-based program language. 
jan@42381
   260
  \item subsequent application programers have guidelines for further implementation of interactivee course material in SPSC and other engineering sciences
jan@42381
   261
  \item {\sisac{}} developers get feedback for ongoing improvement of the TP-based programing language, the respective development environment and the respective program interpreter (called Lucas-Interpreter)
neuper@42328
   262
  \item development of knowledge for engineering sciences is being motivated in the Isabelle community.
neuper@42328
   263
  \end{enumerate}
neuper@42328
   264
\end{enumerate}
neuper@42240
   265
neuper@42328
   266
neuper@42328
   267
\section{Mechanization of Signal Processing Problems}\label{sp}
neuper@42328
   268
\subsection{Relevant Knowledge available in Isabelle}\label{know-isab}
jan@42381
   269
Isabelle is developed now for a long time and so we are able to access a huge range of theories and useful snippets. The main problem according this snip sets is that isabelle still is a theorem proofer and not an algebra system. But due the work of the {\sisac}-development team there are already also many calculation examples provided.
jan@42381
   270
\par The SPSC provided a list of problems which are often done wrong or are misunderstood by students in term of the problem classes. Out of these tasks we tried to extract the core operations and looked up which parts are already implemented or useful. The provided problem classes are:
jan@42324
   271
\begin{itemize}
jan@42381
   272
	\item Fourier-Transformation
jan@42381
   273
	\item Convolution
jan@42381
   274
	\item Inverse Z-Transformation and partial fraction decomposition
jan@42381
   275
	\item Index transformation
jan@42324
   276
\end{itemize}
neuper@42240
   277
jan@42381
   278
A survey of these selected Problems on their "`correct"' solution can be found in Appendix~\ref{app:calc}. After manually solving this problems we started checking which of them are able to realizable. As already remarked above, isabelle is just a theorem proover due this fact isabelle only provides some theories which are useful for the provided problem classes.
jan@42381
   279
\par Yet, isabelle also has some problems on traditional notation. For example a theory called FFT is already implemented this theory does not provide methods for solving fourier transformation tasks, it only defines the basic condition a fast Fourier transformed expression has to fulfill.
jan@42381
   280
\par For the problems we had a look-on isabelle did not provide specific theories which can be implemented one by one, so a look at the mechanized knowledge in {\sisac} is the next step, therefore follow up Section~\ref{know-isac}.
neuper@42240
   281
jan@42381
   282
\subsection{Relevant Knowledge available in ISAC}\label{know-isac}
jan@42381
   283
{\sisac} already provides a small registry of useful programs and surveys on using isabelle as for solving problems. These snip sets are things like norming rational numbers, solving variate and univariate equations, substitutions, some simple integrals and so on. For a detailed review on the currently implemented theories a look at the {\sisac} project web-page\footnote{http://www.ist.tugraz.at/projects/isac/www/kbase/pbl/index\_pbl.html} is strongly recommended, as the appreciation for this thesis is no describing all parts of {\sisac} in detail. This would also not be possible as {\sisac} is permanently growing.
jan@42381
   284
\par After we differenced {\sisac} and isabelle we are able to introduce two axes in the project. This axes are the specifications (``application axis'' represented as isabelle) and methods (``algorithmic axis'' represented as {\sisac}).
jan@42381
   285
\par During the first weeks of work on this thesis we decided on implementing the Z-Transformation and particullary the included partial fraction decomposion first. The algoritmix axis therefor already provides the knowledge for the following parts:
jan@42381
   286
\begin{description}
jan@42381
   287
\item[Partial Fractions] We now how to handle them and we are able to illustrate them.
jan@42381
   288
\item[Cancellation of multivariate rational terms] Simplification is possible.
jan@42381
   289
\item[Equations] The possibility of solving linear and second order equations is provided, also the possibility to get the left or right hand side of an equation.
jan@42381
   290
\item[Substitution] We are able to substitute given variables in terms, we are also able to subsitude a list of variables in terms.
jan@42381
   291
\end{description}
neuper@42240
   292
jan@42381
   293
\subsection{Survey on Required Knowledge}\label{know-missing}
jan@42381
   294
Following tables (Table~\ref{tab:eff-four},~\ref{tab:eff-conv},~\ref{tab:eff-ztrans}) are showing the expected development effort for specific problems. The values are only very inaccurately approximations of the real work, but needed as a basis for descieding with which problem to start:
neuper@42240
   295
jan@42379
   296
\begin{table}
jan@42379
   297
	\centering
jan@42379
   298
	\begin{tabular}{p{4cm}|p{5cm}|rp{2.5cm}}
jan@42381
   299
		\textbf{Requirements}   & \textbf{Comments}    &\textbf{Effort}\\ \hline\hline
jan@42381
   300
		solving Integrals		    & simple via properties table     &     20\\
jan@42379
   301
		                        & \emph{real}          &    MT\\ \hline
jan@42379
   302
		transformation table    & simple transform     &    20\\ \hline
jan@42379
   303
		visualisation						& backend							 &    10\\ \hline
jan@42379
   304
		example collection      & with explanations    &    20\\ \hline\hline
jan@42379
   305
		\multicolumn{2}{c|}{}                          & 70-80\\
jan@42379
   306
	\end{tabular}
jan@42379
   307
	
jan@42379
   308
	\caption{Fourier-Transformation development effort\label{tab:eff-four}}
jan@42379
   309
\end{table}
jan@42379
   310
	
jan@42379
   311
jan@42379
   312
\begin{table}
jan@42379
   313
	\centering
jan@42379
   314
	\begin{tabular}{p{4cm}|p{5cm}|rp{2.5cm}}
jan@42381
   315
		\textbf{Requirements}   & \textbf{Comments}    &\textbf{Effort}\\ \hline\hline
jan@42381
   316
		simplify rationals      & {\sisac}             &     0\\ \hline
jan@42379
   317
		define $\sum\limits_{i=0}^{n}i$ & partly {\sisac}  &    10\\ \hline
jan@42379
   318
		simplify sum			      & termorder            &    10\\
jan@42379
   319
		                        & simplify rules       &    20\\
jan@42379
   320
		                        & use simplify rationals&     0\\ \hline
jan@42379
   321
		index adjustments       & with unit step       &      10\\ \hline
jan@42379
   322
		example collection      & with explanations    &    20\\ \hline\hline
jan@42379
   323
		\multicolumn{2}{c|}{}                      & 70-90\\
jan@42379
   324
	\end{tabular}
jan@42379
   325
jan@42379
   326
	\caption{Convolution Operations development effort\label{tab:eff-conv}}
jan@42324
   327
\end{table}
neuper@42240
   328
jan@42379
   329
\begin{table}
jan@42379
   330
	\centering
jan@42379
   331
	\begin{tabular}{p{4cm}|p{5cm}|rp{2.5cm}}
jan@42381
   332
		\textbf{Requirements}   & \textbf{Comments}    &\textbf{Effort}\\ \hline\hline
jan@42381
   333
		solve for part.fract.   & {\sisac}: degree 2   &     0\\
jan@42379
   334
		                        & complex nomminators  &    30\\
jan@42379
   335
		                        & degree > 2           &    MT\\ \hline
jan@42381
   336
		simplify polynomial     & {\sisac}             &     0\\
jan@42381
   337
		simplify rational       & {\sisac}             &     0\\ \hline
jan@42379
   338
		partial fraction        & degree 2,            &    20\\
jan@42379
   339
		decomposition           & specification, method&    30\\ \hline
jan@42379
   340
		${\cal Z}^{-1}$ table   & explanations, figures&    20\\ \hline
jan@42379
   341
		example collection      & with explanations    &    20\\ \hline\hline
jan@42381
   342
		\multicolumn{2}{c|}{}                          & 90-120\\
jan@42379
   343
	\end{tabular}
jan@42324
   344
jan@42333
   345
\caption{Z-Transformation development effort\label{tab:eff-ztrans}}
jan@42324
   346
\end{table}
jan@42324
   347
jan@42381
   348
As conclusion of the summarized efforts it is evident that only one topic can be tried to realized as a baccalaureate thesis. In accord with Dr. Neuper we decided after some practical tests to start with the implementation of the (Inverse) Z-Transformation. The Reason is that this topic can mostly be done with knowledge which was already tried to be mechanized in {\sisac}.
neuper@42240
   349
neuper@42240
   350
\subsection{Formalization of missing knowledge in Isabelle}
jan@42371
   351
jan@42381
   352
A problem behind is the mechanization of mathematic theories in TP-bases languages. There is still a huge gap between these algorithms and this what we want as a solution - in Example Signal Processing. 
jan@42371
   353
\begin{example}
jan@42371
   354
	\[
jan@42371
   355
		X\cdot(a+b)+Y\cdot(c+d)=aX+bX+cY+dY
jan@42371
   356
  \]
jan@42371
   357
	{\small\textit{
jan@42381
   358
		\noindent A very simple example on this what we call gap is the simplification above. It is needles to say that it is correct and also Isabelle for fills it correct - \emph{always}. But sometimes we don't want expand such terms, sometimes we want another structure of them. Think of a problem were we now would need only the coefficients of $X$ and $Y$. This is what we call the gap between mechanical simplification and the solution.
jan@42371
   359
	}}
jan@42381
   360
	\caption{Correct but not useful}\label{eg:gap}
jan@42371
   361
\end{example}
jan@42371
   362
Until we are not able to fill this gap we have to live with it but first have a look on the meaning of this statement:
jan@42381
   363
\par Mechanized math starts from mathematical models and \emph{hopefully} proceeds to match physics. Academic engineering starts from physics (experimentation, measurement) and then proceeds to mathematical modeling and formalization. The process from a physical observance to a mathematical theory is unavoidable bound of setting up a big collection of standards, rules, definition but also exceptions. These are the things making mechanization that difficult.
jan@42371
   364
\begin{example}
jan@42371
   365
	\[
jan@42371
   366
		m,\ kg,\ s,\ldots
jan@42371
   367
  \]
jan@42371
   368
	{\small\textit{
jan@42381
   369
		\noindent Think about some units like that one's above. Behind each unit there is a discerning and very accurate definition: One Meter is the distance the light travels, in a vacuum, through the time of 1 / 299.792.458 second; one kilogram is the weight of a platinum-iridium cylinder in paris; and so on. But are these definitions usable in a computer mechanized world?!
jan@42371
   370
	}}
jan@42371
   371
	\caption{Units in measurement}\label{eg:units}
jan@42371
   372
\end{example}
jan@42381
   373
\par A computer or a TP-System builds on programs with predefined logical rules and does not know any mathematical trick (follow up example \ref{eg:trick}) or recipe to walk around difficult expressions. 
jan@42371
   374
\begin{example}
jan@42371
   375
\[ \frac{1}{j\omega}\cdot\left(e^{-j\omega}-e^{j3\omega}\right)= \]
jan@42371
   376
\[ \frac{1}{j\omega}\cdot e^{-j2\omega}\cdot\left(e^{j\omega}-e^{-j\omega}\right)=
jan@42371
   377
	 \frac{1}{\omega}\, e^{-j2\omega}\cdot\colorbox{lgray}{$\frac{1}{j}\,\left(e^{j\omega}-e^{-j\omega}\right)$}= \]
jan@42371
   378
\[ \frac{1}{\omega}\, e^{-j2\omega}\cdot\colorbox{lgray}{$2\, sin(\omega)$} \]
jan@42371
   379
	{\small\textit{
jan@42381
   380
		\noindent Sometimes it is also useful to be able to apply some \emph{tricks} to get a beautiful and particularly meaningful result, which we are able to interpret. But as seen in this example it can be hard to find out what operations have to be done to transform a result into a meaningful one.
jan@42371
   381
	}}
jan@42371
   382
	\caption{Mathematic tricks}\label{eg:trick}
jan@42371
   383
\end{example}
jan@42381
   384
For such a system the only possibility is to work through its known definitions and stops if none of these fits. Specified on Signal Processing or any other application it is often possible to walk through by doing simple creases. This creases are in generell based on simple math operatiopms but the challenge is to teach the machine \emph{all}\footnote{Its pride to call it \emph{all}.} of them. Unfortunately the goal of TP Isabelle is to reach a high level of \emph{all} but it in real it will still be a survey of knowledge which links to other knowledge and {\sisac{}} a trainer and helper but no human compensating calculator. 
jan@42381
   385
\par {{\sisac{}}} itself aims to adds an \emph{application} axis (formal specifications of problems out of topics from Signal Processing, etc.) and an \emph{algorithmic} axis to the \emph{deductive} axis of physical knowledge. The result is a three-dimensional universe of mathematics seen in Figure~\ref{fig:mathuni}.
jan@42371
   386
jan@42381
   387
\begin{figure}
jan@42381
   388
\hfill \\
jan@42381
   389
  \begin{center}
jan@42381
   390
    \includegraphics[scale=0.7]{math-universe}
jan@42381
   391
  \end{center}
jan@42381
   392
  \caption{Three-dimensional universe of mathematics\label{fig:mathuni}}
jan@42381
   393
\end{figure}
neuper@42240
   394
neuper@42240
   395
\subsection{Notes on Problems with Traditional Notation}
jan@42381
   396
Due the thesis work we discovers sever ell problems of traditional notations. Some of them have been known in computer science for many years now and are still unsolved, one of them aggregates with the so called \emph{Lambda Calculus}, Example~\ref{eg:lamda} provides a look on the problem that embarrassed us.
neuper@42240
   397
jan@42381
   398
\begin{example}
jan@42381
   399
jan@42381
   400
\[ f(x)=\ldots\;	\quad R \rightarrow \quad R \]
jan@42381
   401
jan@42381
   402
jan@42381
   403
\[ f(p)=\ldots\;	p \in \quad R \]
jan@42381
   404
jan@42381
   405
	{\small\textit{
jan@42381
   406
		\noindent Above we see two equations. The first equation aims to be a mapping of an function from the reell range to the reell one, but when we change only one letter we get the second equation which usually aims to insert a reel point $p$ into the reell function. In computer science now we have the problem to tell the machine (TP) the difference between this two notations. This Problem is called Lambda Calculus.
jan@42381
   407
	}}
jan@42381
   408
	\caption{Towards the Lambda Calculus\label{eg:lamda}}
jan@42381
   409
\end{example}
jan@42381
   410
jan@42381
   411
An other problem is that terms are not full simplified in traditional notations, in {\sisac} we have to simplify them complete to check weather results are compatible or not. in e.g. the solutions of an second order linear equation is an rational in {\sisac} but in tradition we keep fractions as long as possible and as long as they aim to be 'beautiful' (1/8, 5/16,...).
jan@42381
   412
jan@42381
   413
The math which should be mechanized in Computer Theorem Provers (\emph{TP}) has (almost) a problem with traditional notations (predicate calculus) for axioms, definitions, lemmas, theorems as a computer program or script is not able to interpret every Greek or Latin letter and every Greek, Latin or whatever calculations symbol. Also if we would be able to handle these symbols we still have a problem to interpret them at all. (Follow up \hbox{Example \ref{eg:symbint1}})
jan@42327
   414
jan@42327
   415
\begin{example}
jan@42327
   416
	\[
jan@42327
   417
		u\left[n\right] \ \ldots \ unitstep
jan@42327
   418
	\]
jan@42327
   419
	{\small\textit{
jan@42381
   420
		\noindent The unitstep is something we need to solve Signal Processing problem classes. But in {{\sisac{}}} the 	rectangular brackets have a different meaning. So we abuse them for our requirements. We get something which is not defined, but usable. The Result is syntax only without semantic.
jan@42327
   421
	}}
jan@42327
   422
	\caption{Expression Interpretation}\label{eg:symbint1}
jan@42327
   423
\end{example}
jan@42327
   424
jan@42327
   425
\noindent In different problems, symbols and letters have different meanings and ask for different ways to get through. (Follow up \hbox{Example \ref{eg:symbint2}}) 
jan@42327
   426
\begin{example}
jan@42327
   427
	\[
jan@42327
   428
		\widehat{\ }\ \widehat{\ }\ \widehat{\ } \  \ldots \  exponent
jan@42327
   429
	\]
jan@42327
   430
	{\small\textit{
jan@42330
   431
	\noindent For using exponents the three widehat symbols are required. The reason for that is due the development of {{\sisac{}}} the single widehat and also the double were already in use for different operations.
jan@42327
   432
	}}
jan@42327
   433
	\caption{Symbol Interpretation}\label{eg:symbint2}
jan@42327
   434
\end{example}
jan@42381
   435
Exclusive from the input, also the output can be a problem. We are familiar with a specified notations and style taught in university but a computer program has no knowledge of the form proved by a professor and the machines themselves also have not yet the possibilities to print every symbol (correct) Recent developments provide proofs in a human readable format but according to the fact that there is no money for good working formel editors yet, the style is one thing we have to live with.
jan@42276
   436
jan@42379
   437
\section{Project Controlling}
jan@42381
   438
We decided to split the thesis into five Iteration defined in Section~\ref{sec:milesurv}. As there is also a lot of work to do outer the thesis we accord on an increased contact by mail. For the coordination of the whole  {\sisac} files i got access to the mercurial repository. We also appointed on periodic team meetings.
jan@42379
   439
jan@42381
   440
\subsection{Survey on Milestones\label{sec:milesurv}}
jan@42381
   441
Doing something completely new requires a good controlling, the thesis itself also needs it. After the first meetings and the definition of the intrinsic work we decided on splitting the thesis into the following iterations.
jan@42326
   442
\begin{description}
jan@42379
   443
	\item[1st Iteration] Information Collection
jan@42379
   444
	\item[2nd Iteration] Problem Selection
jan@42379
   445
	\item[3rd Iteration] Implementation
jan@42379
   446
	\item[4th Iteration] Thesis Writing
jan@42379
   447
	\item[5th Iteration] Finalization
jan@42379
   448
\end{description}
jan@42379
   449
A more detailed description of this milestones can be found in Section~\ref{sec:detmile}.
jan@42379
   450
jan@42379
   451
\subsection{Milestone Details\label{sec:detmile}}
jan@42379
   452
\begin{description}
jan@42381
   453
	\item[Information Collection] The first iteration starts by an introduction to the {\sisac} System and ends up with the first presentation. Listeners of the first presentation were \em Dr. Walther Neuper \normalfont and \em DI Bernhard Geiger\normalfont. We talked about common SPSC problems and the possibilities of realize them in the {\sisac} System. In preparation of the Presentation \em DI Geiger \normalfont sent us a few example problems and we had a experimental survey about the realization effort.
jan@42381
   454
	\item[Problem Selection] In the second iteration we collected informations about the knowledge mechanized in {\sisac} (cf. Section~\ref{know-isab}). After the first iteration it was clear that implementing of problems in {\sisac} requires a higher effort than originally expected due this fact the second iteration ends up on the decision which of the provided problems is going to be implemented. We wrote and collected a handful of experimental scripts regarding sums, Fourier transformation and partial fraction decomposition.
jan@42381
   455
	\item[Implementation] Unfortunately the biggest and most important part is the implementation. The iteration started with the decision on the problem and ends up by finishing the test Script (seen in Part~\ref{part:impl}) as well as the integration of this work into the {\sisac}-Knowledge. For a better controlling and result of this iteration we had severe ll regular meetings (\em Dr. Neuper \normalfont and \em Jan Ro\v{c}nik\normalfont) and contact over e-mail to assess the state of the {\sisac}-developers work.
jan@42381
   456
	\item[Thesis Writing] One part of this thesis is generated automatically out of \ttfamily Build\_Inverse\_Z\_Transform\normalfont. Maybe this part well be the most important result of the thesis as it will be used as a documentation for the upcoming developers. Due this fact this iteration started also contemporaneous with the implementation but ends up separate after finishing the implementation with describing the needed theory and background.
jan@42381
   457
	\item[Finalization] The work ends up with the last iteration - finalization. It is started by completing the written thesis and the preparation of the second presentation which concludes this project. In the second presentation we will have demonstrated our realized problem embedded in the new {\sisac}-frontend as well as the work, hiding behind. We will also want to give a clear view about the power of {\sisac} and animate the attending agents to go on working within this project.
jan@42326
   458
\end{description}
jan@42323
   459
jan@42379
   460
%\clearpage
jan@42316
   461
jan@42379
   462
%----------// PART 2 \\----------%
jan@42379
   463
jan@42379
   464
\newevenside
jan@42379
   465
jan@42379
   466
\part{Implementation\label{part:impl}}
jan@42379
   467
\input{./preambleForGeneratedDocuments.tex}
jan@42381
   468
\par Please be aware that this is only a part of the thesis output, also follow up the theories and according tests that have been improved or created by me and are involved to the work on this thesis:
jan@42381
   469
\begin{itemize}
jan@42381
   470
\item \ttfamily Partial\_Fractions.thy \normalfont - \ttfamily partial\_fractions.sml \normalfont
jan@42381
   471
\item \ttfamily Inverse\_Z\_Transformation.thy \normalfont - \ttfamily inverse\_z\_transformation.sml \normalfont
jan@42381
   472
\item \ttfamily Rational.thy \normalfont - \ttfamily rational.sml \normalfont
jan@42381
   473
\end{itemize}
jan@42379
   474
\HRule
jan@42379
   475
%\setcounter{section}{0}
jan@42379
   476
\input{../../../test/Tools/isac/ADDTESTS/course/SignalProcess/document/Build_Inverse_Z_Transform}
jan@42379
   477
jan@42381
   478
\clearpage
jan@42379
   479
jan@42379
   480
%----------// PART 3 \\----------%
jan@42379
   481
jan@42379
   482
\newevenside
jan@42381
   483
\part{Thesis Summary and Review}
jan@42327
   484
\section{Related Work}\label{sec:related}
jan@42327
   485
Unusual for a Baccalaureate Thesis, there is {\em no} related work; this requires explanation.
jan@42381
   486
Of course, this thesis relies on front-of-the wave computer mathematics, on TP. But {{\sisac{}}} uses TP in a very specific way, which is too weakly related to other work: programing in the TP-based language and rigorous formal specification of problems in Signal Processing where the main tasks in the practical part of this thesis. The major challenge for the practical work was given by the fact, that the work concerned alpha-testing of the TP-based programing environment.
jan@42381
   487
\par Another  area of work could be considered as related work: authoring of e-learning content. However, {{\sisac{}}} provides division of concern such that the practical part of this thesis could focus on computer mathematics; this work was not concerned with interaction (the TP-based programing language has neither input statements nor output statements), nor with dialog guidance nor with any kind of learning theory.
jan@42327
   488
\par These two reasons are given for the unusual statement, that there is no related work to be discussed in this thesis. 
jan@42327
   489
jan@42381
   490
\section{Issues and Open Questions}
jan@42381
   491
At the end of the first Iteration we agreed on a view issues that might have to be accomplished during the thesis. This Issues were:
jan@42381
   492
\begin{itemize}
jan@42381
   493
	\item What knowledge is already mechanized in \emph{Isabelle}?
jan@42381
   494
	\item How can missing theorems and definitions be mechanized?
jan@42381
   495
	\item What is the effort for such mechanization?
jan@42381
   496
	\item How do calculations look like, by using mechanized knowledge?
jan@42381
   497
	\item What problems and subproblems have to be solved?
jan@42381
   498
	\item Which problems are already implemented in {\sisac}?
jan@42381
   499
	\item How are the new problems specified ({\sisac})?
jan@42381
   500
	\item Which variants of programs in {\sisac} solve the problems?
jan@42381
   501
	\item What is the contents of the interactive course material (Figures, etc.)?
jan@42381
   502
\end{itemize}
jan@42381
   503
The significant part of this list was declared during the thesis. Next sections will review the most important items, regardless they where accomplished or not.
jan@42381
   504
jan@42381
   505
\subsection{Accomplished}
jan@42381
   506
We discovered the process how missing theorems and definitions can be mechanized and used this knowledge to implement new material. Now we ware able to solve partial fractions, we built theorems, specification and program. We completed the background work for interactive solving them. The same thing applies to the inverse Z-transformation with partial fractions; we built theorems, specification and program to step through an amount of exercises. But the most important accomplished part is the Isabelle theory (\ttfamily Build\_Inverse\_Z\_Transform.thy\normalfont) indicating issues for the coming {\sisac}-developers. Until we were not able to fulfill all the things we wanted, this is the most recent work and will be the headstone for the further work on {\sisac}.
jan@42381
   507
\par Expect the necessary theories for solving the mentioned part and the guideline we also put tests for the new theories to the system and added some new methods to existing theories with their according tests. Also we were able to answer the questions about the mechanized knowledge in \emph{isabelle} and {\sisac}. We checked the required effort to add new material to the system and we walked through the question what subproblems have to be solved and how they are declared, when adding new material. Now we also know how problems are declared and which variants exist to solve them. All this can be found in this thesis.
jan@42381
   508
\subsection{Partially Accomplished}
jan@42381
   509
As already told upwards, we accomplished a guideline for upcoming {\sisac}-developers this was a very important and necessary task; but through upcoming changes in the development environment and programing language there is a need for more descriptions and informations. This changes are not yet fulfilled and so it was not possible to include a correct guideline fot them in our example theory or this thesis.
jan@42381
   510
\par Also we were not able to provide a representative count of example problems for partial fractions or the inverse Z-Transformation. We are able to say that our accomplished material can handle one problem each, exactly as we wanted and it is toughed but due to less time we have no more experience data.
jan@42381
   511
\subsection{Not Accomplished}
jan@42381
   512
The properly longest item is the list with the not accomplished issues, but there is no need to count this as a negative aspect due the fact that we collected experience data for following needs:
jan@42381
   513
\par We were not able to put explanations, figures to examples, theorem descriptions and problem description to our course material. The reason for that was the time at one side and the ongoing restructuration of the system on the other side.
jan@42381
   514
\par Only a sufficient number of topics was implemented. There were more problems to solve than we expected. We were only able to implement one from the SPSC given tasks m entered in Appendix~\ref{app:calc}. Due this fact the material we got as an output of the thesis will be no support for labs or lectures at the SPSC and also no material for the STEOP, which also was a big wish at the beginning.
jan@42381
   515
\subsection{Open Questions and Work}
jan@42381
   516
At the end of this thesis there is now part left unattended, but many parts that require beauty corrections and many parts that require a few more manpower. This upcoming open tasks are:
jan@42381
   517
\begin{itemize}
jan@42381
   518
	\item What is the contents of the interactive course material (Figures, etc.)?
jan@42381
   519
	\item What are the pre and post conditions of the problems?
jan@42381
   520
	\item How would a correct implementation of the Z-Transformation look like?
jan@42381
   521
	\item What do students expect of this implementation?
jan@42381
   522
\end{itemize}
jan@42381
   523
To complete the task of creating course material describing the needed steps to do a partial fraction or inverse Z-Transformation in {\sisac} the real effort is not conceivable. But for a first usable version only a few steps are left to do this steps would be:
jan@42381
   524
\begin{enumerate}
jan@42381
   525
	\item Cleanup the\ttfamily InverseZTransformation.thy\normalfont file and put it into the {\sisac} knowledge tree like it was done with\ttfamily PartialFractions.thy\normalfont.
jan@42381
   526
	\item Create a good example program and test it.
jan@42381
   527
	\item Describe the used theories with the mathematic definitions and background.
jan@42381
   528
	\item Add figures and small examples.
jan@42381
   529
\end{enumerate}
jan@42381
   530
There are also needs on finishing other parts to get a complete part of course material but this would be the steps to get a first usable version.
jan@42381
   531
jan@42381
   532
\section{Conclusion and Personal Experience}
jan@42381
   533
After working on {\sisac} for month, it is hard do find the right words about the system. For sure the system itself is a great idea and it would have been a big relaxation if i would have been able to use this system in the last years for sever ell subjects. But for me the biggest disadvantage of {\sisac} is the frontend until there is no mathematical notation and visualisation of simply fractions i don't think that i or other students would be able to use it for learning. I also think that for learning there is no need of complex examples or complex solutions, examples have to be simple but also have to cover all necessary steps of a calculation. Unfortunately there exist different learning types and I'm a visual one, what is also the explanation for my maybe drastic explanation.
jan@42381
   534
\par About the backend, what finally was my main work there is not much left to say. The programing language requires a long time to work in and to find out how decelerations work and how isabelle and {\sisac} is build up, maybe this period of collecting informations is to long for a Bakk. Thesis. Also it is hard to find informations about the theories until there was no related work and no usable documentation wether for {\sisac} nor for isabelle or ML.
jan@42381
   535
\par When working within the {\sisac} sources you often hung up on problems which would be simple to solve but are hard to discover, therefor it was often necessary to make breaks and define concrete steps on problem solving. Also when having a plan of the upcoming implementation I had to break myself out to do not to much step at once. Often its better to implement small parts and test, write tests and wait then hurrying up. An other aspect is that it was necessary to build {\sisac} from scratch after every change; this and the fact that my finally theories had over 1000 lines often made the development process to a stop and go dilemma.
jan@42381
   536
\par Finally I have to say a big \bfseries thank you \normalfont to Dr.~Neuper who invested a lot of his time in my thesis and the {\sisac} project, I remember some hard and long meetings but finally I look back glad.
jan@42381
   537
jan@42381
   538
\subsection{Anecdotes}
jan@42381
   539
At the very beginning of the thesis i made some calculations and thoughed of every step more than twice. This calculations were the ground stone of my work, we build every step in the calculation following up the real calculations - when doing them by hand. Time went on and after adding the last commands to the programm for applying the transformation ruleset i compared the results - oh wonder there was a mistake in my calculation :)
jan@42381
   540
\begin{center}
jan@42381
   541
Thank you {\sisac}!
jan@42381
   542
\end{center}
neuper@42073
   543
jan@42379
   544
%----------// BIB \\-----------%
neuper@42328
   545
jan@42381
   546
\renewcommand{\refname}{\section{References}}
jan@42379
   547
\bibliographystyle{alpha}
jan@42379
   548
\bibliography{references}
jan@42324
   549
\clearpage
jan@42316
   550
jan@42326
   551
%----------// APPENDIX \\-----------%
jan@42381
   552
\newevenside
jan@42381
   553
\part{Appendix}
jan@42326
   554
\appendix
jan@42324
   555
%----------// WORK TIME \\-----------%
neuper@42073
   556
jan@42381
   557
jan@42379
   558
\section{Record of Working Time}
jan@42316
   559
\begin{footnotesize}
jan@42381
   560
\begin{longtable}{l p{6.5cm} c c r}
jan@42316
   561
{\bf Date} & {\bf Description} & {\bf Begin} & {\bf End} & {\bf Dur.}\\
jan@42316
   562
\hline \hline
jan@42316
   563
\endhead
jan@42381
   564
jan@42381
   565
\hline 
jan@42381
   566
  \multicolumn{5}{r}{{Continued on next page}} \\
jan@42381
   567
\hline
jan@42381
   568
\endfoot
jan@42381
   569
jan@42381
   570
\hline 
jan@42381
   571
\hline
jan@42381
   572
\endlastfoot
jan@42381
   573
jan@42381
   574
\multicolumn{5}{l}{Start 1st Iteration} \\
jan@42381
   575
\hline
jan@42381
   576
29.06.2011 & Meeting Dr. Neuper and DI Geiger & 15:00 & 17:30 & 2,50 \\
jan@42381
   577
02.07.2011 & Working on Examples from DI Geiger & 20:00 & 21:30 & 1,50 \\
jan@42381
   578
03.07.2011 & Working on Examples from DI Geiger & 21:00 & 22:45 & 1,75 \\
jan@42381
   579
05.07.2011 & Meeting Dr. Neuper, Information Exchange & 10:00 & 13:00 & 3,00 \\
jan@42381
   580
06.07.2011 & Installing Isabelle & 20:00 & 22:30 & 2,50 \\
jan@42381
   581
07.07.2011 & Meeting Dr. Neuper, present-1 & 14:45 & 16:15 & 1,50 \\
jan@42381
   582
18.07.2011 & Meeting Dr. Neuper, present-1 Structure & 14:15 & 16:00 & 1,75 \\
jan@42381
   583
19.07.2011 & Meeting Dr. Neuper, present-1 Content & 07:20 & 09:20 & 2,00\\
jan@42381
   584
19.07.2011 & Meeting Dr. Neuper & 10:00 & 12:00 & 2,00\\
jan@42381
   585
21.07.2011 & HG Error Correction, Latex for Thesis & 11:10 & 14:00 & 2,83\\
jan@42381
   586
22.07.2011 & Meeting Dr. Neuper & 10:00 & 12:00 & 2,00\\
jan@42381
   587
23.07.2011 & Latex for Calculations & 13:45 & 16:30 & 2,75\\
jan@42381
   588
24.07.2011 & Meeting Dr. Neuper, present-1 & 20:10 & 20:40 & 0,50\\
jan@42381
   589
25.07.2011 & Meeting Dr. Neuper, present-1 & 15:15 & 17:55 & 2,67\\
jan@42381
   590
26.07.2011 & Work on Test\_Complex.thy & 10:45 & 12:10 & 1,42\\
jan@42381
   591
27.07.2011 & present-1 (Dr. Neuper, DI Geiger) & 10:00 & 12:00 & 2,00\\
jan@42381
   592
\hline
jan@42381
   593
\multicolumn{5}{l}{End 1st Iteration} \\
jan@42381
   594
\multicolumn{5}{l}{Start 2nd Iteration} \\
jan@42381
   595
\hline
jan@42381
   596
02.09.2011 & Meeting Dr. Neuper, Latex for Thesis & 08:30 & 10:20 & 1,83\\
jan@42381
   597
05.09.2011 & Meeting Dr. Neuper, Partial\_Frations.thy & 09:30 & 12:45 & 3,25\\
jan@42381
   598
05.09.2011 & Partial\_Fractions.thy & 17:10 & 18:30 & 1,33\\
jan@42381
   599
06.09.2011 & Documentation Partial\_Fractions.thy & 10:00 & 13:15 & 3,25\\
jan@42381
   600
07.09.2011 & Meeting Dr. Neuper, ML Introduction & 10:00 & 12:50 & 2,83\\
jan@42381
   601
08.09.2011 & Preparing Scripts for Latex Output & 19:00 & 22:45 & 3,75\\
jan@42381
   602
09.09.2011 & Preparing Scripts for Latex Output & 11:40 & 15:00 & 3,33\\
jan@42381
   603
10.09.2011 & Meeting Dr. Neuper, Latex Output, HG Errors & 10:00 & 12:00 & 2,00\\
jan@42381
   604
\hline
jan@42381
   605
\multicolumn{5}{l}{End 2nd Iteration} \\
jan@42381
   606
\multicolumn{5}{l}{Start 3rd and 4th Iteration} \\
jan@42381
   607
\hline
jan@42381
   608
14.09.2011 & Start on Inverse\_Z\_Transf. Script & 09:10 & 12:25 & 3,25\\
jan@42381
   609
16.09.2011 & Information Exchange Sums & 13:15 & 16:00 & 2,75\\
jan@42381
   610
19.09.2011 & Programming on Inverse\_Z\_Transf. & 10:00 & 13:10 & 3,17\\
jan@42381
   611
20.09.2011 & Meeting Dr. Neuper, Inverse\_Z\_Transf. Script & 15:30 & 18:10 & 2,67\\
jan@42381
   612
23.09.2011 & New IsaMakefile for Latex generation & 13:00 & 14:30 & 1,50\\
jan@42381
   613
23.09.2011 & Meeting Dr. Neuper, Inverse\_Z\_Transf. Script & 14:30 & 17:30 & 3,00\\
jan@42381
   614
26.09.2011 & Partial\_Fractions.thy, get\_Argument & 13:30 & 16:15 & 2,75\\
jan@42381
   615
27.09.2011 & Meeting Dr. Neuper, HG Error & 09:00 & 12:20 & 3,33\\
jan@42381
   616
28.09.2011 & Meeting Dr. Neuper, Hierarchy Reconstruction & 10:00 & 12:30 & 2,50\\
jan@42381
   617
01.10.2011 & Some Testing & 10:00 & 11:00 & 1,00\\
jan@42381
   618
02.10.2011 & Inverse\_Z\_Transf. Errors & 15:00 & 16:10 & 1,17\\
jan@42381
   619
06.10.2011 & Meeting Dr. Neuper & 15:00 & 17:50 & 2,83\\
jan@42381
   620
07.10.2011 & Meeting Dr. Neuper, Inverse\_Z\_Transf. Script & 15:00 & 16:50 & 1,83\\
jan@42381
   621
09.10.2011 & Work on Thesis & 16:30 & 18:45 & 2,25\\
jan@42381
   622
11.10.2011 & Meeting Dr. Neuper, Abstract & 14:10 & 17:10 & 3,00\\
jan@42381
   623
13.10.2011 & Work on Thesis, Implemention part & 08:30 & 10:00 & 1,50\\
jan@42381
   624
18.10.2011 & Work on Thesis & 20:30 & 22:50 & 2,33\\
jan@42381
   625
19.10.2011 & Work on Thesis & 21:20 & 23:40 & 2,33\\
jan@42381
   626
20.10.2011 & Work on Thesis & 08:45 & 10:45 & 2,00\\
jan@42381
   627
25.10.2011 & Meeting Dr. Neuper: thesis review & 08:00 & 10:00 & 2,00\\
jan@42381
   628
25.10.2011 & Reorganising after meeting & 20:10 & 23:50 & 3,67\\
jan@42381
   629
26.10.2011 & Reorganising after meeting, examples in thesis & 08:30 & 11:10 & 2,67\\
jan@42381
   630
07.11.2011 & Meeting Preparation & 16:30 & 17:15 & 0,75\\
jan@42381
   631
08.11.2011 & Meeting Dr. Neuper: thesis addons & 16:00 & 17:30 & 1,50\\
jan@42381
   632
12.11.2011 & Reorganization after meeting & 21:10 & 22:30 & 1,33\\
jan@42381
   633
20.11.2011 & Review of Inv\_Z\_Trans & 10:15 & 13:30 & 3,25\\
jan@42381
   634
21.11.2011 & get\_numerator & 12:15 & 14:30 & 2,25\\
jan@42381
   635
23.11.2011 & get\_numerator & 20:30 & 21:15 & 0,75\\
jan@42381
   636
24.11.2011 & get\_numerator final & 14:10 & 15:30 & 1,33\\
jan@42381
   637
28.11.2011 & tried to go on in build\_inverse\_ & 11:00 & 13:10 & 2,17\\
jan@42381
   638
01.12.2012 & Tuning Invers\_Z\_Tansf. Script & 16:15 & 19:30 & 3,25\\
jan@42381
   639
04.12.2012 & Moved Some Tests to Knowledge & 15:30 & 18:15 & 2,75\\
jan@42381
   640
05.12.2012 & Tuning Invers\_Z\_Tansf. Script & 13:10 & 14:15 & 1,08\\
jan@42381
   641
08.12.2012 & Inverse\_Z\_Tansf. Script, Factors from Solution & 14:30 & 16:15 & 1,75\\
jan@42381
   642
10.12.2012 & Moved Some Tests to Knowledge & 20:10 & 23:00 & 2,83\\
jan@42381
   643
11.12.2012 & Inverse\_Z\_Tansf. Script, PBZ Ansatz & 10:10 & 12:30 & 2,33\\
jan@42381
   644
12.12.2012 & Inverse\_Z\_Tansf. Script, Subsitution & 09:00 & 11:30 & 2,50\\
jan@42381
   645
16.12.2012 & Tuning Invers\_Z\_Tansf. Script & 17:15 & 18:45 & 1,50\\
jan@42381
   646
19.12.2012 & Tuning Invers\_Z\_Tansf. Script & 19:00 & 20:30 & 1,50\\
jan@42381
   647
14.01.2012 & Inverse\_Z\_Tansf. Script, Substitution & 18:45 & 20:30 & 1,75\\
jan@42381
   648
22.01.2012 & Inverse\_Z\_Transf. Script, Calc Coeff. & 20:10 & 21:45 & 1,58\\
jan@42381
   649
12.02.2012 & Inverse\_Z\_Transf. Script & 17:30 & 19:00 & 1,50\\
jan@42381
   650
13.02.2012 & Finished Work on Inverse\_Z\_Transf. Script & 19:30 & 22:10 & 2,67\\
jan@42381
   651
14.02.2012 & Formatting for Latex output & 09:00 & 14:45 & 5,75\\
jan@42381
   652
15.02.2012 & Formatting for Latex output & 10:00 & 15:30 & 5,50\\
jan@42381
   653
16.02.2012 & Going on Work on Thesis & 14:45 & 18:30 & 3,75\\
jan@42381
   654
17.02.2012 & Tuning Invers\_Z\_Tansf. Script & 18:30 & 19:45 & 1,25\\
jan@42381
   655
19.02.2012 & Meeting Dr. Neuper, present-2 & 09:00 & 13:30 & 4,50\\
jan@42381
   656
19.02.2012 & Meeting Dr. Neuper, Integration of work to Isac & 15:00 & 19:10 & 4,17\\
jan@42381
   657
20.02.2012 & Meeting Dr. Neuper, Integration of work to Isac & 09:00 & 12:45 & 3,75\\
jan@42381
   658
20.02.2012 & Meeting Dr. Neuper, Integration of work to Isac & 14:10 & 18:30 & 4,33\\
jan@42381
   659
\hline
jan@42381
   660
\multicolumn{5}{l}{End 3rd Iteration}\\
jan@42381
   661
\hline
jan@42381
   662
20.02.2012 & Finishing Thesis & 20:30 & 22:50 & 2,33\\
jan@42381
   663
21.02.2012 & Finishing Thesis & 13:30 & 14:45 & 1,25\\
jan@42381
   664
02.03.2012 & Finishing Thesis & 15:45 & 19:00 & 3,25\\
jan@42381
   665
06.03.2012 & Finishing Thesis & 09:15 & 10:30 & 1,25\\
jan@42383
   666
07.03.2012 & Finishing Thesis & 13:15 & 16:00 & 2,75\\
jan@42381
   667
\hline
jan@42381
   668
\multicolumn{5}{l}{End 4th Iteration} \\
jan@42381
   669
\multicolumn{5}{l}{Start 5th Iteration} \\
jan@42381
   670
\hline
jan@42381
   671
26.02.2012 & Preparing present-2 & 09:30 & 13:00 & 3,5 \\
jan@42418
   672
20.03.2012 & Preparing present-2 & 14:00 & 16:30 & 2,5 \\
jan@42418
   673
08.05.2012 & Meeting Dr. Neuper, present-2, work on isac & 08:00 & 12:00 & 4,0 \\
jan@42418
   674
08.05.2012 & present-2 & 14:00 & 15:00 & 1,0 \\
jan@42381
   675
\hline
jan@42381
   676
\multicolumn{5}{l}{End 5th Iteration} \\
jan@42381
   677
\hline
jan@42418
   678
\multicolumn{4}{l}{Total working time:} & 203 \\
jan@42316
   679
\end{longtable}
jan@42316
   680
\end{footnotesize}
neuper@42073
   681
jan@42379
   682
%----------// CALCULATIONS \\-----------%
jan@42379
   683
jan@42379
   684
\newevenside
jan@42368
   685
\section{Calculations\label{app:calc}}
jan@42251
   686
\input{calulations}
neuper@42073
   687
\end{document}
neuper@42328
   688