doc-src/isac/jrocnik/bakkarbeit_jrocnik.tex
author Jan Rocnik <jan.rocnik@student.tugraz.at>
Mon, 20 Feb 2012 18:30:27 +0100
changeset 42379 394bae3853f5
parent 42374 12c1c82fdcb4
child 42381 8b94d811cb41
permissions -rwxr-xr-x
tuned thesis
     1 %   Title:  bakkarbeit_jrocnik.tex
     2 %   Author: Jan Rocnik
     3 %   (c) copyright due to lincense terms.
     4 %2345678901234567890123456789012345678901234567890123456789012345678901234567890
     5 %       10        20        30        40        50        60        70        80
     6 
     7 %define document class
     8 \documentclass[a4paper, 12pt]{article}
     9 
    10 %packages for language and input
    11 \usepackage[english]{babel} 
    12 \usepackage[T1]{fontenc}
    13 \usepackage[latin1]{inputenc}
    14 
    15 %generel packages
    16 \usepackage{url}
    17 \usepackage{endnotes}
    18 \usepackage{trfsigns}
    19 \usepackage{setspace}
    20 \usepackage[pdfpagelabels]{hyperref}
    21 \usepackage{longtable}
    22 
    23 \usepackage{float} %For restylefloat
    24 \newfloat{example}{h}{} %self made floats
    25 \floatname{example}{Example} %name for float
    26 \restylefloat{table} %float tables
    27 \floatstyle{ruled} %boxes around floats
    28 \restylefloat{example} %float examples --> boxes
    29 
    30 %colors and graphics
    31 \usepackage{graphicx}
    32 \usepackage{color}
    33 \definecolor{lgray}{RGB}{238,238,238}
    34 
    35 %isabelle relevant packages
    36 \usepackage{isabelle,isabellesym}
    37 %\isabellestyle{it}
    38 
    39 %define isac logos
    40 \def\isac{${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}
    41 \def\sisac{\footnotesize${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}
    42 
    43 \newcommand{\HRule}{\rule{\linewidth}{0.2mm}}
    44 
    45 %start new even page
    46 \usepackage{ifthen}
    47 \newcommand{\newevenside}{
    48         \ifthenelse{\isodd{\thepage}}{\newpage}{
    49         \newpage
    50         \phantom{placeholder} % doesn't appear on page
    51         \thispagestyle{empty} % if want no header/footer
    52         \newpage
    53         }
    54 }
    55 
    56 %this should be the last package used
    57 %\usepackage{pdfsetup}
    58 
    59 %----------// BEGIN DOCUMENT \\----------%
    60 
    61 \begin{document}
    62 
    63 %----------// TITLE PAGE \\----------%1
    64 
    65 \input{./bakkarbeit_titlepage.tex}
    66 \newpage
    67 
    68 %----------// EMPTY PAGE \\----------%2
    69 
    70 \setcounter{page}{2}
    71 \thispagestyle{empty}\mbox{}\newpage
    72 
    73 %----------// THANKS \\----------%3
    74 
    75 \setcounter{page}{3}
    76 \begin{center}
    77 	Special Thanks to\\
    78 	\hfill \\
    79 	\emph{Dr.techn. Walther Neuper}\\
    80 	\emph{Dipl.-Ing. Bernhard Geiger}
    81 \end{center}
    82 \thispagestyle{empty}
    83 \newpage
    84 
    85 %----------// EMPTY PAGE \\----------%4
    86 
    87 %the following command was replaced by \newevenside
    88 %\thispagestyle{empty}\mbox{}\newpage
    89 
    90 %----------// ABSTRACT \\----------%5
    91 
    92 \newevenside
    93 \begin{abstract}
    94 The Baccalaureate Thesis creates interactive 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).
    95 \par The content of the course material is defined together with the Signal Processing and Speech Communication Laboratory (SPSC Lab) 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.
    96 One challenge of this thesis is, that much theory required for SPSC is not yet mechanized in Computer Theorem Provers (CTP); so this thesis will provide preliminary definitions  and theorems (without proofs~!) implemented in Isabelle \emph{theories}.
    97 \par Another challenge is the implementation of interactive courses: this is done within the educational math assistant Isabelle/{\sisac}, which is under development at 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{CTP-based programming language}, because error messages are still not user-friendly and need frequent contact with {\sisac}-developers.
    98 So the practical outcome of this thesis is twofold:
    99 \begin{enumerate}
   100 \item Interactive course material hopefully useful in education within the SPSC Lab and within 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
   101 \item A detailed description of technicalities in programming implemented as an interactive Isabelle/Isar theory, providing future programmers with guidelines and {\sisac}-developers with feedback in usability of the CTP-based program language. 
   102 \end{enumerate}
   103 \end{abstract}
   104 \clearpage
   105 
   106 %----------// EMPTY PAGE \\----------%6
   107 
   108 %the following command was replaced by \newevenside
   109 %\thispagestyle{empty}\mbox{}\newpage
   110 
   111 %----------// T O C \\----------%7-9
   112 
   113 \newevenside
   114 
   115 \pagenumbering{Roman}
   116 %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.
   117 \tableofcontents
   118 \clearpage
   119 \pagenumbering{arabic}
   120 \setcounter{page}{10}
   121 
   122 %----------// PART-1 \\----------%
   123 
   124 \newevenside
   125 
   126 \part{Project Fundamentals}
   127 
   128 \section{Introduction}
   129 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 ususally 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.
   130 
   131 This gap is an obstacle for applying math as an foundamental 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.
   132 
   133 \medskip
   134 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.
   135 \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 STEOP, the introductory orientation phase. STEOP is considered an opportunity to investigate the impact of {\sisac}'s prototype on the issue and others.
   136 
   137 \medskip
   138 The thesis is structured as follows: Part I concerns theory, part II the implementation work, where the latter is the main part.
   139 \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}.
   140 \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 ?
   141 %(\S\ref{})
   142 
   143 \section{Mechanization of Math in Isabelle/{\isac}}\label{isabisac}
   144 
   145 %\subsubsection*{Notes on Mechanization of Mathematics}
   146 %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}.
   147 %The major challenge of the practical part, of this thesis, is, that "connecting the two worlds" involves programming in a CTP-based programming language which is in a very early state of prototyping. There is no concrete experience data ready to grep.
   148 %
   149 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 (CTP), a technology which requires each fact and each action justified by formal logic, so {{\sisac{}}} makes justifications transparent to students in interactive step-wise problem solving. By that way {\sisac} already can serve both:
   150 \begin{enumerate}
   151 \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
   152 \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 partical fraction decomposition): ``next step guidance'' supports students in independenly (re-)adopting such techniques.
   153 \end{enumerate}
   154 Before the question is answers, how {\sisac} accoplishes this task from a technical point of view, some remarks on the state-of-the-art is given, therefor follow up Section~\ref{emas}.
   155 
   156 \subsection{Educational Mathematics Assistants (EMAs)}\label{emas}
   157 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 interactive exercise need to be provided with feedback, where at each step a wide variety of possible input has to be foreseen by the programmer --- so such interactive exercises either require high development efforts or the exercises constrain possible inputs.
   158 
   159 A new generation of educational math assistants (EMAs) is emerging presently, which is based on Computer Theorem Proving (CTP). CTP, 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 CTP advances into software engineering; from these advancements computer mathematics benefits in general, and math education in particular. Two features of CTP are immediately beneficial for learning:
   160 
   161 \paragraph{CTP have knowledge in human readable format,} that is in standard predicate calculus. CTP 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 CTP exceeds high-school mathematics by far, however by knowledge required in software technology, and not in other engineering sciences.
   162 
   163 \paragraph{CTP 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}.
   164 
   165 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 CTP provides a wealth of theories which can be exploited for mechanizing other features essential for educational software.
   166 
   167 \subsection{Generation of User Guidance in EMAs}\label{user-guid}
   168 One essential feature for educational software is feedback to user input and assistance in coming to a solution.
   169 
   170 \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.
   171 
   172 \paragraph{Next step guidance (NSG)} comprises the system's ability to propose a next step; this is a challenge for CTP: 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}.
   173 
   174 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 CTP-based programming language~\cite{plmms10}: the programmer 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 programmers and dialog designers promising application all over engineering disciplines.
   175 
   176 
   177 \subsection{Math Authoring in Isabelle/\isac}\label{math-auth}
   178 Authoring new mathematics knowledge in {\sisac} can be compared with ``application programming'' of engineering problems; most of such programming uses CAS-based programming languages (CAS = Computer Algebra Systems; e.g. Mathematica's \cite{progr-mathematica} or Maple's programming language \cite{prog-maple06}).
   179 
   180 {\sisac}, however, uses a novel type of CTP-based language \cite{plmms10} for describing how to constuct a solution to an engineering problem and for calling equation solvers, integration, etc~\footnote{Implementation of CAS-like functionality in CTP 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 CTP; CTP can ensure ``systems that never make a mistake'' \cite{casproto} --- are impossible for CAS which have no logics underlying.
   181 
   182 With writing such CTP-based programs authoring is perfect, the application programmer 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 CTP to check user input following personalized strategies according to a feedback module.
   183 
   184 \medskip
   185 However ``application programming with CTP'' is not done with writing a program: according to the principles of CTP, 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}.
   186 
   187 \begin{example}
   188 {\small\begin{tabbing}
   189 123\=123\=123\=123\=\kill
   190 \hfill \\
   191 \>axiomatization where \\
   192 \>\>  rule1: "1 = $\delta$ [n]" and\\
   193 \>\>  rule2: "|| z || > 1 ==> z / (z - 1) = u [n]" and\\
   194 \>\>  rule3: "|| z || < 1 ==> z / (z - 1) = -u [-n - 1]" and \\
   195 \>\>  rule4: "|| z || > || $\alpha$ || ==> z / (z - $\alpha$) = $\alpha^n$ * u [n]" and\\
   196 \>\>  rule5: "|| z || < || $\alpha$ || ==> z / (z - $\alpha$) = -($\alpha^n$) * u [-n - 1]" and\\
   197 \>\>  rule6: "|| z || > 1 ==> z/(z - 1)$^2$ = n $\cdot$ u [n]"
   198 \end{tabbing}
   199 }
   200 \caption{Axiomatization in Isabelle\label{eg:neuper1}}
   201 \end{example}
   202 
   203 In order to provide CTP with logical facts for checking user input, the Lucas-Interpreter requires a \textbf{specification}. Such a specification is shown in Example~ref{eg:neuper2}.
   204 
   205 \begin{example}
   206 {\small\begin{tabbing}
   207 123,\=postcond \=: \= $\forall \,A^\prime\, u^\prime \,v^\prime.\,$\=\kill
   208 \hfill \\
   209 Specification no.1:\\
   210 %\>input\>: $\{\;r={\it arbitraryFix}\;\}$  \\
   211 \>input    \>: $\{\;r\;\}$  \\
   212 \>precond  \>: $0 < r$   \\
   213 \>output   \>: $\{\;A,\; u,v\;\}$ \\
   214 \>postcond \>:{\small  $\;A=2uv-u^2 \;\land\; (\frac{u}{2})^2+(\frac{v}{2})^2=r^2 \;\land$}\\
   215 \>     \>\>{\small $\;\forall \;A^\prime\; u^\prime \;v^\prime.\;(A^\prime=2u^\prime v^\prime-(u^\prime)^2 \land
   216 (\frac{u^\prime}{2})^2+(\frac{v^\prime}{2})^2=r^2) \Longrightarrow A^\prime \leq A$} \\
   217 \>props\>: $\{\;A=2uv-u^2,\;(\frac{u}{2})^2+(\frac{v}{2})^2=r^2\;\}$
   218 \end{tabbing}
   219 }
   220 \caption{Specification for the Lucas-Interpreter\label{eg:neuper2}}
   221 \end{example}
   222 
   223 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:
   224 
   225 \begin{example}
   226 \hfill \\
   227 {\ttfamily \begin{tabbing}
   228 ``(L\_L::bool list) = (\=SubProblem (\=Test','' \\
   229 ``\>\>[linear,univariate,equation,test],'' \\
   230 ``\>\>[Test,solve\_linear])'' \\
   231 ``\>[BOOL equ, REAL z])'' \\
   232 \end{tabbing}
   233 }
   234 {\small\textit{
   235 	\noindent If a programm 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.
   236 	}}
   237 \caption{Ussage of Subproblems in Programms\label{eg:subprob}}
   238 \end{example}
   239 
   240 
   241 \subsection{Goals of the Thesis}\label{sec:goals}
   242 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?
   243 \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 cahnge this circumstamce. 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 interactiv 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.
   244 
   245 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:
   246 \begin{enumerate}
   247 \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.
   248 \item Implement the selected problems in Isabelle/{\sisac}, which means, in appropriate Isabelle theories \textbf{for each problem} implement:
   249   \begin{enumerate}
   250   \item \textbf{Definitions and theorems} required within the specification (including ``descriptions'' for input variables and output variables) and the program (proofs omitted via ``axiomaization'')
   251   \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~!)
   252   \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.
   253   \end{enumerate}
   254 \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 STEOP, the introductory orientation phase at TUG) get an idea the problem is about.
   255 \item \textbf{Document the implementation} such that
   256   \begin{enumerate}
   257   \item Interactive course material hopefully useful in education within the SPSC and within 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
   258   \item A detailed description of technicalities in programming implemented as an interactive Isabelle/Isar theory, providing future programmers with guidelines and {\sisac}-developers with feedback in usability of the CTP-based program language. 
   259   \item subsequent application programmers have guidelines for further implementation of interactive course material in SPSC and other engineering sciences
   260   \item {\sisac{}} developers get feedback for ongoing improvement of the CTP-based programming language, the respective development environment and the respective program interpreter (called Lucas-Interpreter)
   261   \item development of knowledge for engineering sciences is being motivated in the Isabelle community.
   262   \end{enumerate}
   263 \end{enumerate}
   264 
   265 
   266 \section{Mechanization of Signal Processing Problems}\label{sp}
   267 \subsection{Relevant Knowledge available in Isabelle}\label{know-isab}
   268 Isabelle is developed now for a long time and so we are able to access a huge range of theories and usefull snipsets. The main problem according this snipsets 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.
   269 \par The SPSC provided a list of problems which are often done wrong or are missunderstood by studentsin 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 usefull. The provided problems are:
   270 \begin{itemize}
   271 \item Fourier-Transformation
   272 \item Convolution
   273 \item Inverse z-Transformation and partial fraction decomposition
   274 \item Indextransformation
   275 \end{itemize}
   276 Following the collection and evaluation of core operations collated with isabelle:
   277 
   278 \paragraph{example FFT}, describe in detail !!!! 
   279 
   280 ? different meaning: FFT in Maple
   281 
   282 gap between what is available and what is required (@)!
   283 
   284 traditional notation ?
   285 
   286 \subsection{Relevant Knowledge available in isac}\label{know-isac}
   287 todo
   288 
   289 specifications (``application axis'') and methods (``algorithmic axis'')
   290 
   291 partial fractions, cancellation of multivariate rational terms, ...
   292 
   293 \subsection{Survey: Requiered Knowledge and Selected Problem(s)}\label{know-missing}
   294 Following tables (Table~\ref{tab:eff-four},~\ref{tab:eff-conv},~\ref{tab:eff-ztrans}) are showing the expected development effort for speciefic problems. The values are only very inaccurately approximations of the real work, but needed as a basis for descieding with which problem to start:
   295 
   296 \begin{table}
   297 	\centering
   298 	\begin{tabular}{p{4cm}|p{5cm}|rp{2.5cm}}
   299 		\textbf{Requirements}            & \textbf{Comments}             &\textbf{Effort}\\ \hline\hline
   300 		solving Intrgrals		    & simple via propertie table     &     20\\
   301 		                        & \emph{real}          &    MT\\ \hline
   302 		transformation table    & simple transform     &    20\\ \hline
   303 		visualisation						& backend							 &    10\\ \hline
   304 		example collection      & with explanations    &    20\\ \hline\hline
   305 		\multicolumn{2}{c|}{}                          & 70-80\\
   306 	\end{tabular}
   307 	
   308 	\caption{Fourier-Transformation development effort\label{tab:eff-four}}
   309 \end{table}
   310 	
   311 
   312 \begin{table}
   313 	\centering
   314 	\begin{tabular}{p{4cm}|p{5cm}|rp{2.5cm}}
   315 		\textbf{Requirements}            & \textbf{Comments}             &\textbf{Effort}\\ \hline\hline
   316 		simplify rationals      & {\sisac}               &     0\\ \hline
   317 		define $\sum\limits_{i=0}^{n}i$ & partly {\sisac}  &    10\\ \hline
   318 		simplify sum			      & termorder            &    10\\
   319 		                        & simplify rules       &    20\\
   320 		                        & use simplify rationals&     0\\ \hline
   321 		index adjustments       & with unit step       &      10\\ \hline
   322 		example collection      & with explanations    &    20\\ \hline\hline
   323 		\multicolumn{2}{c|}{}                      & 70-90\\
   324 	\end{tabular}
   325 
   326 	\caption{Convolution Operations development effort\label{tab:eff-conv}}
   327 \end{table}
   328 
   329 \begin{table}
   330 	\centering
   331 	\begin{tabular}{p{4cm}|p{5cm}|rp{2.5cm}}
   332 		\textbf{Requirements}            & \textbf{Comments}             &\textbf{Effort}\\ \hline\hline
   333 		solve for part.fract.   & {\sisac}: degree 2     &     0\\
   334 		                        & complex nomminators  &    30\\
   335 		                        & degree > 2           &    MT\\ \hline
   336 		simplify polynomial     & {\sisac}               &     0\\
   337 		simplify rational       & {\sisac}               &     0\\ \hline
   338 		partial fraction        & degree 2,            &    20\\
   339 		decomposition           & specification, method&    30\\ \hline
   340 		${\cal Z}^{-1}$ table   & explanations, figures&    20\\ \hline
   341 		example collection      & with explanations    &    20\\ \hline\hline
   342 		\multicolumn{2}{c|}{}                      & 90-120\\
   343 	\end{tabular}
   344 
   345 \caption{Z-Transformation development effort\label{tab:eff-ztrans}}
   346 \end{table}
   347 
   348 As conclusion of the summerized 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}.
   349 
   350 \subsection{Formalization of missing knowledge in Isabelle}
   351 
   352 A problem behind is the mechanization of mathematic theories in CTP-bases languages. There is still a huge gap between these algoritms and this what we want as a solution - in Example Signal Processing. 
   353 \begin{example}
   354 	\[
   355 		X\cdot(a+b)+Y\cdot(c+d)=aX+bX+cY+dY
   356   \]
   357 	{\small\textit{
   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 isabell forfills 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.
   359 	}}
   360 	\caption{Correct but not usefull}\label{eg:gap}
   361 \end{example}
   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:
   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 modelling 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.
   364 \begin{example}
   365 	\[
   366 		m,\ kg,\ s,\ldots
   367   \]
   368 	{\small\textit{
   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 kilogramm is the weight of a platinum-iridium cylindar in paris; and so on. But are these definitions useable in a computer mechanized world?!
   370 	}}
   371 	\caption{Units in measurement}\label{eg:units}
   372 \end{example}
   373 \par A computer or a CTP-System builds on programms witth predefined logical ruels and does not know any mathematical trick (follow up example \ref{eg:trick}) or recipe to walk around difficult expressions. 
   374 \begin{example}
   375 \[ \frac{1}{j\omega}\cdot\left(e^{-j\omega}-e^{j3\omega}\right)= \]
   376 \[ \frac{1}{j\omega}\cdot e^{-j2\omega}\cdot\left(e^{j\omega}-e^{-j\omega}\right)=
   377 	 \frac{1}{\omega}\, e^{-j2\omega}\cdot\colorbox{lgray}{$\frac{1}{j}\,\left(e^{j\omega}-e^{-j\omega}\right)$}= \]
   378 \[ \frac{1}{\omega}\, e^{-j2\omega}\cdot\colorbox{lgray}{$2\, sin(\omega)$} \]
   379 	{\small\textit{
   380 		\noindent Sometimes it is also usefull to be able to apply some \emph{tricks} to get a beautiful and particulary 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.
   381 	}}
   382 	\caption{Mathematic tricks}\label{eg:trick}
   383 \end{example}
   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 challange is to teach the machine \emph{all}\footnote{Its pride to call it \emph{all}.} of them. Unfortunataly the goal of CTP 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 calulator. 
   385 \par {{\sisac{}}} itselfs aims to adds an \emph{application} axis (formal specifications of problems outof 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.
   386 
   387 
   388 
   389 todo
   390 
   391 axiomatization ... where ... and
   392 
   393 \subsection{Notes on Problems with Traditional Notation}
   394 %{\footnotesize
   395 %\textbf{TODO}
   396 %Due the thesis work we discorvers severell problems of traditional notations.
   397 %
   398 %u[n] !!
   399 %
   400 %f x =  why not f(x) ?!?!
   401 %
   402 %...
   403 %
   404 %terms are not full simplified in traditional notations, in isac 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 isac but in tradition we keep fractions as long as possible and as long as they are 'beautiful' (1/8, 5/16,...)
   405 %}\\
   406 
   407 The math which should be mechanized in Computer Theorem Provers (\emph{CTP}) has (almost) a problem with traditional notations (predicate calculus) for axioms, definitions, lemmas, theorems as a computer programm 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 thehse symbols we still have a problem to interpret them at all. (Follow up \hbox{Example \ref{eg:symbint1}})
   408 
   409 \begin{example}
   410 	\[
   411 		u\left[n\right] \ \ldots \ unitstep
   412 	\]
   413 	{\small\textit{
   414 		\noindent The unitstep is something we need to solve Signal Processing problem classes. But in {{\sisac{}}} the 	rectangular breakets have a different meaning. So we abuse them for our requirements. We get something which is not defined, but useable. The Result is syntax only without semantic.
   415 	}}
   416 	\caption{Expression Interpretation}\label{eg:symbint1}
   417 \end{example}
   418 
   419 \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}}) 
   420 \begin{example}
   421 	\[
   422 		\widehat{\ }\ \widehat{\ }\ \widehat{\ } \  \ldots \  exponent
   423 	\]
   424 	{\small\textit{
   425 	\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.
   426 	}}
   427 	\caption{Symbol Interpretation}\label{eg:symbint2}
   428 \end{example}
   429 Exclusive from the input, also the output can be a problem. We are familar with a specified notations and style taught in university but a computer programm has no knowledge of the form probved by a professor and the maschines themselve also have not yet the possibilities to print every symbol (correct) Recent developments provide proofs in a humand readable format but according to the fact that there is no mony for good working formel editors yet, the style is one thing we have to live with.
   430 
   431 \section{Project Controlling}
   432 We decided to split the thesis into five Iteration defined in Section~\ref{sec:milesurv}. As there is also a lot of work todo 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.
   433 
   434 \subsection{Survay on Milestones\label{sec:milesurv}}
   435 Doing something completly 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.
   436 \begin{description}
   437 	\item[1st Iteration] Information Collection
   438 	\item[2nd Iteration] Problem Selection
   439 	\item[3rd Iteration] Implementation
   440 	\item[4th Iteration] Thesis Writing
   441 	\item[5th Iteration] Finalization
   442 \end{description}
   443 A more detailed description of this milestones can be found in Section~\ref{sec:detmile}.
   444 
   445 \subsection{Milestone Details\label{sec:detmile}}
   446 \begin{description}
   447 	\item[Information Collection] The first iteration starts by an intruduction 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 survay about the realization effort.
   448 	\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 excpected due this fact the second iteration ends up on the decission which of the provided problems is going to be implemented. We wrote and collected a handfull of experimental scripts regarding sums, fourie transformation and partial fraction decomposition.
   449 	\item[Implementation] Unfortunataly the biggest and most importent part is the implementation. The iteration started with the decission 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 severell regular meetings (\em Dr. Neuper \normalfont and \em Jan Rocnik\normalfont) and contact over e-mail to assess the state of the {\sisac}-developers work.
   450 	\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 seperate after finishing the implementation with describing the needed theory and background.
   451 	\item[Finalization] The work ends up with the last iteration - finalization. It is started by completing the written thesis and the preperation of the second presentation which concludes this project. In the second presentation we will have demonstrated our realised 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.
   452 \end{description}
   453 
   454 %\clearpage
   455 
   456 %----------// PART 2 \\----------%
   457 
   458 \newevenside
   459 
   460 \part{Implementation\label{part:impl}}
   461 \input{./preambleForGeneratedDocuments.tex}
   462 \HRule
   463 %\setcounter{section}{0}
   464 \input{../../../test/Tools/isac/ADDTESTS/course/SignalProcess/document/Build_Inverse_Z_Transform}
   465 
   466 %\clearpage
   467 
   468 %----------// PART 3 \\----------%
   469 
   470 \newevenside
   471 \part{Summary, Conclusion and Related Work}
   472 \section{Related Work}\label{sec:related}
   473 Unusual for a Baccalaureate Thesis, there is {\em no} related work; this requires explanation.
   474 Of course, this thesis relies on front-of-the wave computer mathematics, on CTP. But {{\sisac{}}} uses CTP in a very specific way, which is too weakly related to other work: programming in the CTP-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 CTP-based programming environment.
   475 \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 CTP-based programming language has neither input statements nor output statements), nor with dialog guidance nor with any kind of learning theory.
   476 \par These two reasons are given for the unusual statement, that there is no related work to be discussed in this thesis. 
   477 
   478 \section{Summary}
   479 todo
   480 \section{Open Questions}
   481 todo
   482 \section{Conclusions}
   483 todo
   484 
   485 %----------// BIB \\-----------%
   486 
   487 \renewcommand{\refname}{\section{Reference}} % Using "Sources" as the title of the section
   488 \bibliographystyle{alpha}
   489 \bibliography{references}
   490 \clearpage
   491 
   492 %----------// APPENDIX \\-----------%
   493 
   494 \appendix
   495 
   496 %----------// WORK TIME \\-----------%
   497 
   498 \newevenside
   499 \section{Record of Working Time}
   500 \begin{footnotesize}
   501 \begin{longtable}[h]{l p{6.5cm} c c r}
   502 {\bf Date} & {\bf Description} & {\bf Begin} & {\bf End} & {\bf Dur.}\\
   503 \hline \hline
   504 \endhead
   505 29.06.2011 & Treffen mit Geiger und Neuper & 15:00 & 17:30 & 2,50\\ 
   506 \end{longtable}
   507 \end{footnotesize}
   508 
   509 %----------// CALCULATIONS \\-----------%
   510 
   511 \newevenside
   512 \section{Calculations\label{app:calc}}
   513 \input{calulations}
   514 \end{document}
   515