doc-src/isac/jrocnik/jrocnik_bakk.tex
changeset 42383 b0cc14c822da
parent 42381 8b94d811cb41
child 42418 3f8317297717
equal deleted inserted replaced
42382:a5089b8d884a 42383:b0cc14c822da
    19 \usepackage{setspace}
    19 \usepackage{setspace}
    20 \usepackage[pdfpagelabels]{hyperref}
    20 \usepackage[pdfpagelabels]{hyperref}
    21 \usepackage{longtable}
    21 \usepackage{longtable}
    22 
    22 
    23 \usepackage{float} %For restylefloat
    23 \usepackage{float} %For restylefloat
    24 \newfloat{example}{h}{} %self made floats
    24 \newfloat{example}{ht}{} %self made floats
    25 \floatname{example}{Example} %name for float
    25 \floatname{example}{Example} %name for float
    26 \restylefloat{table} %float tables
    26 \restylefloat{table} %float tables
    27 \floatstyle{ruled} %boxes around floats
    27 \floatstyle{ruled} %boxes around floats
    28 \restylefloat{example} %float examples --> boxes
    28 \restylefloat{example} %float examples --> boxes
       
    29 \restylefloat{figure}
    29 
    30 
    30 %colors and graphics
    31 %colors and graphics
    31 \usepackage{graphicx}
    32 \usepackage{graphicx}
    32 \usepackage{color}
    33 \usepackage{color}
    33 \definecolor{lgray}{RGB}{238,238,238}
    34 \definecolor{lgray}{RGB}{238,238,238}
    34 
    35 
    35 %isabelle relevant packages
    36 %isabelle relevant packages
    36 \usepackage{isabelle,isabellesym}
    37 \usepackage{isabelle,isabellesym}
       
    38 %\isabellestyle{it}
    37 
    39 
    38 %define isac logos
    40 %define isac logos
    39 \def\isac{${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}
    41 \def\isac{${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}
    40 \def\sisac{\footnotesize${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}
    42 \def\sisac{\footnotesize${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}
    41 
    43 
    50         \thispagestyle{empty} % if want no header/footer
    52         \thispagestyle{empty} % if want no header/footer
    51         \newpage
    53         \newpage
    52         }
    54         }
    53 }
    55 }
    54 
    56 
       
    57 %this should be the last package used
       
    58 %\usepackage{pdfsetup}
       
    59 
    55 %----------// BEGIN DOCUMENT \\----------%
    60 %----------// BEGIN DOCUMENT \\----------%
    56 
    61 
    57 \begin{document}
    62 \begin{document}
    58 
    63 
    59 %----------// TITLE PAGE \\----------%1
    64 %----------// TITLE PAGE \\----------%1
    85 
    90 
    86 %----------// ABSTRACT \\----------%5
    91 %----------// ABSTRACT \\----------%5
    87 
    92 
    88 \newevenside
    93 \newevenside
    89 \begin{abstract}
    94 \begin{abstract}
    90 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 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).
    91 \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 \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.
    92 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 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}.
    93 \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 \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.
    94 So the practical outcome of this thesis is twofold:
    99 So the practical outcome of this thesis is twofold:
    95 \begin{enumerate}
   100 \begin{enumerate}
    96 \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 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
    97 \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 \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. 
    98 \end{enumerate}
   103 \end{enumerate}
    99 \end{abstract}
   104 \end{abstract}
   100 \clearpage
   105 \clearpage
   101 
   106 
   102 %----------// EMPTY PAGE \\----------%6
   107 %----------// EMPTY PAGE \\----------%6
   103 
   108 
   104 %the following command was replaced by \newevenside
   109 %the following command was replaced by \newevenside
   105 %\thispagestyle{empty}\mbox{}\newpage
   110 %\thispagestyle{empty}\mbox{}\newpage
   106 
   111 
   107 %----------// T O C \\----------%7
   112 %----------// T O C \\----------%7-9
   108 
   113 
   109 \newevenside
   114 \newevenside
   110 
   115 
   111 \pagenumbering{Roman}
   116 \pagenumbering{Roman}
   112 %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 %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.
   113 \tableofcontents
   118 \tableofcontents
   114 \clearpage
   119 \clearpage
   115 \pagenumbering{arabic}
   120 \pagenumbering{arabic}
   116 \setcounter{page}{8}
   121 \setcounter{page}{10}
   117 
   122 
   118 %----------// PART-1 \\----------%
   123 %----------// PART-1 \\----------%
   119 
   124 
   120 \newevenside
   125 \newevenside
   121 
   126 
   122 \part{Project Fundamentals}
   127 \part{Project Fundamentals}
   123 
   128 
   124 \section{Introduction}
   129 \section{Introduction}
   125 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 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.
   126 
   131 
   127 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 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.
   128 
   133 
   129 \medskip
   134 \medskip
   130 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 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.
   131 \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 \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.
   132 
   137 
   133 \medskip
   138 \medskip
   134 The thesis is structured as follows: Part I concerns theory, part II the implementation work, where the latter is the main part.
   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.
   135 \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 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}.
   136 \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 \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 ?
   137 %(\S\ref{})
   142 %(\S\ref{})
   138 
   143 
   139 \section{Mechanization of Math in Isabelle/{\isac}}\label{isabisac}
   144 \section{Mechanization of Math in Isabelle/ISAC\label{isabisac}}
   140 
   145 
   141 %\subsubsection*{Notes on Mechanization of Mathematics}
   146 %\subsubsection*{Notes on Mechanization of Mathematics}
   142 %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 %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}.
   143 %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 %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.
   144 %
   149 %
   145 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 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:
   146 \begin{enumerate}
   151 \begin{enumerate}
   147 \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 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
   148 \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 \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.
   149 \end{enumerate}
   154 \end{enumerate}
   150 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 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}.
   151 
   156 
   152 \subsection{Educational Mathematics Assistants (EMAs)}\label{emas}
   157 \subsection{Educational Mathematics Assistants (EMAs)}\label{emas}
   153 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 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.
   154 
   159 
   155 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 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:
   156 
   161 
   157 \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 \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.
   158 
   163 
   159 \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 \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}.
   160 
   165 
   161 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 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.
   162 
   167 
   163 \subsection{Generation of User Guidance in EMAs}\label{user-guid}
   168 \subsection{Generation of User Guidance in EMAs}\label{user-guid}
   164 One essential feature for educational software is feedback to user input and assistance in coming to a solution.
   169 One essential feature for educational software is feedback to user input and assistance in coming to a solution.
   165 
   170 
   166 \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 \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.
   167 
   172 
   168 \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 \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}.
   169 
   174 
   170 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 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.
   171 
   176 
   172 
   177 
   173 \subsection{Math Authoring in Isabelle/\isac}\label{math-auth}
   178 \subsection{Math Authoring in Isabelle/ISAC\label{math-auth}}
   174 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 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}).
   175 
   180 
   176 {\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 {\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.
   177 
   182 
   178 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 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.
   179 
   184 
   180 \medskip
   185 \medskip
   181 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}. %TODO: take your example !
   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}.
   182 
   187 
   183 \begin{example}
   188 \begin{example}
   184 {\small\begin{tabbing}
   189 {\small\begin{tabbing}
   185 123\=123\=123\=123\=\kill
   190 123\=123\=123\=123\=\kill
   186 \hfill \\
   191 \hfill \\
   194 \end{tabbing}
   199 \end{tabbing}
   195 }
   200 }
   196 \caption{Axiomatization in Isabelle\label{eg:neuper1}}
   201 \caption{Axiomatization in Isabelle\label{eg:neuper1}}
   197 \end{example}
   202 \end{example}
   198 
   203 
   199 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 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}.
   200 
   205 
   201 \begin{example}
   206 \begin{example}
   202 {\small\begin{tabbing}
   207 {\small\begin{tabbing}
   203 123,\=postcond \=: \= $\forall \,A^\prime\, u^\prime \,v^\prime.\,$\=\kill
   208 123,\=postcond \=: \= $\forall \,A^\prime\, u^\prime \,v^\prime.\,$\=\kill
   204 \hfill \\
   209 \hfill \\
   226 ``\>\>[Test,solve\_linear])'' \\
   231 ``\>\>[Test,solve\_linear])'' \\
   227 ``\>[BOOL equ, REAL z])'' \\
   232 ``\>[BOOL equ, REAL z])'' \\
   228 \end{tabbing}
   233 \end{tabbing}
   229 }
   234 }
   230 {\small\textit{
   235 {\small\textit{
   231 	\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 	\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.
   232 	}}
   237 	}}
   233 \caption{Ussage of Subproblems in Programms\label{eg:subprob}}
   238 \caption{Usage of Subproblems in Programs\label{eg:subprob}}
   234 \end{example}
   239 \end{example}
   235 
   240 
   236 
   241 
   237 \subsection{Goals of the Thesis}\label{sec:goals}
   242 \subsection{Goals of the Thesis}\label{sec:goals}
   238 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 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?
   239 \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 \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.
   240 
   245 
   241 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 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:
   242 \begin{enumerate}
   247 \begin{enumerate}
   243 \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 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.
   244 \item Implement the selected problems in Isabelle/{\sisac}, which means, in appropriate Isabelle theories \textbf{for each problem} implement:
   249 \item Implement the selected problems in Isabelle/{\sisac}, which means, in appropriate Isabelle theories \textbf{for each problem} implement:
   245   \begin{enumerate}
   250   \begin{enumerate}
   246   \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{Definitions and theorems} required within the specification (including ``descriptions'' for input variables and output variables) and the program (proofs omitted via ``axiomatization'')
   247   \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 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~!)
   248   \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   \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.
   249   \end{enumerate}
   254   \end{enumerate}
   250 \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 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.
   251 \item \textbf{Document the implementation} such that
   256 \item \textbf{Document the implementation} such that
   252   \begin{enumerate}
   257   \begin{enumerate}
   253   \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 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
   254   \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 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. 
   255   \item subsequent application programmers have guidelines for further implementation of interactive course material in SPSC and other engineering sciences
   260   \item subsequent application programers have guidelines for further implementation of interactivee course material in SPSC and other engineering sciences
   256   \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 {\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)
   257   \item development of knowledge for engineering sciences is being motivated in the Isabelle community.
   262   \item development of knowledge for engineering sciences is being motivated in the Isabelle community.
   258   \end{enumerate}
   263   \end{enumerate}
   259 \end{enumerate}
   264 \end{enumerate}
   260 
   265 
   261 
   266 
   262 \section{Mechanization of Signal Processing Problems}\label{sp}
   267 \section{Mechanization of Signal Processing Problems}\label{sp}
   263 \subsection{Relevant Knowledge available in Isabelle}\label{know-isab}
   268 \subsection{Relevant Knowledge available in Isabelle}\label{know-isab}
   264 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 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.
   265 \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 \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:
   266 \begin{itemize}
   271 \begin{itemize}
   267 \item Fourier-Transformation
   272 	\item Fourier-Transformation
   268 \item Convolution
   273 	\item Convolution
   269 \item Inverse z-Transformation and partial fraction decomposition
   274 	\item Inverse Z-Transformation and partial fraction decomposition
   270 \item Indextransformation
   275 	\item Index transformation
   271 \end{itemize}
   276 \end{itemize}
   272 Following the collection and evaluation of core operations collated with isabelle:
   277 
   273 
   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.
   274 \paragraph{example FFT}, describe in detail !!!! 
   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.
   275 
   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}.
   276 ? different meaning: FFT in Maple
   281 
   277 
   282 \subsection{Relevant Knowledge available in ISAC}\label{know-isac}
   278 gap between what is available and what is required (@)!
   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.
   279 
   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}).
   280 traditional notation ?
   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:
   281 
   286 \begin{description}
   282 \subsection{Relevant Knowledge available in isac}\label{know-isac}
   287 \item[Partial Fractions] We now how to handle them and we are able to illustrate them.
   283 todo
   288 \item[Cancellation of multivariate rational terms] Simplification is possible.
   284 
   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.
   285 specifications (``application axis'') and methods (``algorithmic axis'')
   290 \item[Substitution] We are able to substitute given variables in terms, we are also able to subsitude a list of variables in terms.
   286 
   291 \end{description}
   287 partial fractions, cancellation of multivariate rational terms, ...
   292 
   288 
   293 \subsection{Survey on Required Knowledge}\label{know-missing}
   289 \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 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:
   290 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 
   291 
   296 \begin{table}
   292 \begin{table}[h]
   297 	\centering
   293 \begin{centering}
   298 	\begin{tabular}{p{4cm}|p{5cm}|rp{2.5cm}}
   294 \begin{tabular}{p{4cm}|p{5cm}|rp{2.5cm}}
   299 		\textbf{Requirements}   & \textbf{Comments}    &\textbf{Effort}\\ \hline\hline
   295 requirements            & comments             &effort\\ \hline\hline
   300 		solving Integrals		    & simple via properties table     &     20\\
   296 solving Intrgrals		    & simple via propertie table     &     20\\
   301 		                        & \emph{real}          &    MT\\ \hline
   297                         & \emph{real}          &    MT\\ \hline
   302 		transformation table    & simple transform     &    20\\ \hline
   298 transformation table    & simple transform     &    20\\ \hline
   303 		visualisation						& backend							 &    10\\ \hline
   299 visualisation						& backend							 &    10\\ \hline
   304 		example collection      & with explanations    &    20\\ \hline\hline
   300 example collection      & with explanations    &    20\\ \hline\hline
   305 		\multicolumn{2}{c|}{}                          & 70-80\\
   301 \multicolumn{2}{c|}{}                      & 70-80\\
   306 	\end{tabular}
   302 \end{tabular}
   307 	
   303 \par\end{centering}
   308 	\caption{Fourier-Transformation development effort\label{tab:eff-four}}
   304 \caption{Fourier-Transformation development effort\label{tab:eff-four}}
       
   305 \end{table}
   309 \end{table}
   306 
   310 	
   307 \begin{table}[h]
   311 
   308 \begin{centering}
   312 \begin{table}
   309 \begin{tabular}{p{4cm}|p{5cm}|rp{2.5cm}}
   313 	\centering
   310 requirements            & comments             &effort\\ \hline\hline
   314 	\begin{tabular}{p{4cm}|p{5cm}|rp{2.5cm}}
   311 simplify rationals      & {\sisac}               &     0\\ \hline
   315 		\textbf{Requirements}   & \textbf{Comments}    &\textbf{Effort}\\ \hline\hline
   312 define $\sum\limits_{i=0}^{n}i$ & partly {\sisac}  &    10\\ \hline
   316 		simplify rationals      & {\sisac}             &     0\\ \hline
   313 simplify sum			      & termorder            &    10\\
   317 		define $\sum\limits_{i=0}^{n}i$ & partly {\sisac}  &    10\\ \hline
   314                         & simplify rules       &    20\\
   318 		simplify sum			      & termorder            &    10\\
   315                         & use simplify rationals&     0\\ \hline
   319 		                        & simplify rules       &    20\\
   316 index adjustments       & with unit step       &      10\\ \hline
   320 		                        & use simplify rationals&     0\\ \hline
   317 example collection      & with explanations    &    20\\ \hline\hline
   321 		index adjustments       & with unit step       &      10\\ \hline
   318 \multicolumn{2}{c|}{}                      & 70-90\\
   322 		example collection      & with explanations    &    20\\ \hline\hline
   319 \end{tabular}
   323 		\multicolumn{2}{c|}{}                      & 70-90\\
   320 \par\end{centering}
   324 	\end{tabular}
   321 \caption{Convolution Operations development effort\label{tab:eff-conv}}
   325 
       
   326 	\caption{Convolution Operations development effort\label{tab:eff-conv}}
   322 \end{table}
   327 \end{table}
   323 
   328 
   324 \begin{table}[h]
   329 \begin{table}
   325 \begin{centering}
   330 	\centering
   326 \begin{tabular}{p{4cm}|p{5cm}|rp{2.5cm}}
   331 	\begin{tabular}{p{4cm}|p{5cm}|rp{2.5cm}}
   327 requirements            & comments             &effort\\ \hline\hline
   332 		\textbf{Requirements}   & \textbf{Comments}    &\textbf{Effort}\\ \hline\hline
   328 solve for part.fract.   & {\sisac}: degree 2     &     0\\
   333 		solve for part.fract.   & {\sisac}: degree 2   &     0\\
   329                         & complex nomminators  &    30\\
   334 		                        & complex nomminators  &    30\\
   330                         & degree > 2           &    MT\\ \hline
   335 		                        & degree > 2           &    MT\\ \hline
   331 simplify polynomial     & {\sisac}               &     0\\
   336 		simplify polynomial     & {\sisac}             &     0\\
   332 simplify rational       & {\sisac}               &     0\\ \hline
   337 		simplify rational       & {\sisac}             &     0\\ \hline
   333 partial fraction        & degree 2,            &    20\\
   338 		partial fraction        & degree 2,            &    20\\
   334 decomposition           & specification, method&    30\\ \hline
   339 		decomposition           & specification, method&    30\\ \hline
   335 ${\cal Z}^{-1}$ table   & explanations, figures&    20\\ \hline
   340 		${\cal Z}^{-1}$ table   & explanations, figures&    20\\ \hline
   336 example collection      & with explanations    &    20\\ \hline\hline
   341 		example collection      & with explanations    &    20\\ \hline\hline
   337 \multicolumn{2}{c|}{}                      & 90-120\\
   342 		\multicolumn{2}{c|}{}                          & 90-120\\
   338 %                        &                      & 1 MT
   343 	\end{tabular}
   339 \end{tabular}
   344 
   340 \par\end{centering}
       
   341 \caption{Z-Transformation development effort\label{tab:eff-ztrans}}
   345 \caption{Z-Transformation development effort\label{tab:eff-ztrans}}
   342 \end{table}
   346 \end{table}
   343 
   347 
   344 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}.
   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}.
   345 
   349 
   346 \subsection{Formalization of missing knowledge in Isabelle}
   350 \subsection{Formalization of missing knowledge in Isabelle}
   347 
   351 
   348 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. 
   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. 
   349 \begin{example}
   353 \begin{example}
   350 	\[
   354 	\[
   351 		X\cdot(a+b)+Y\cdot(c+d)=aX+bX+cY+dY
   355 		X\cdot(a+b)+Y\cdot(c+d)=aX+bX+cY+dY
   352   \]
   356   \]
   353 	{\small\textit{
   357 	{\small\textit{
   354 		\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.
   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.
   355 	}}
   359 	}}
   356 	\caption{Correct but not usefull}\label{eg:gap}
   360 	\caption{Correct but not useful}\label{eg:gap}
   357 \end{example}
   361 \end{example}
   358 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:
   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:
   359 \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.
   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.
   360 \begin{example}
   364 \begin{example}
   361 	\[
   365 	\[
   362 		m,\ kg,\ s,\ldots
   366 		m,\ kg,\ s,\ldots
   363   \]
   367   \]
   364 	{\small\textit{
   368 	{\small\textit{
   365 		\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?!
   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?!
   366 	}}
   370 	}}
   367 	\caption{Units in measurement}\label{eg:units}
   371 	\caption{Units in measurement}\label{eg:units}
   368 \end{example}
   372 \end{example}
   369 \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. 
   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. 
   370 \begin{example}
   374 \begin{example}
   371 \[ \frac{1}{j\omega}\cdot\left(e^{-j\omega}-e^{j3\omega}\right)= \]
   375 \[ \frac{1}{j\omega}\cdot\left(e^{-j\omega}-e^{j3\omega}\right)= \]
   372 \[ \frac{1}{j\omega}\cdot e^{-j2\omega}\cdot\left(e^{j\omega}-e^{-j\omega}\right)=
   376 \[ \frac{1}{j\omega}\cdot e^{-j2\omega}\cdot\left(e^{j\omega}-e^{-j\omega}\right)=
   373 	 \frac{1}{\omega}\, e^{-j2\omega}\cdot\colorbox{lgray}{$\frac{1}{j}\,\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)$}= \]
   374 \[ \frac{1}{\omega}\, e^{-j2\omega}\cdot\colorbox{lgray}{$2\, sin(\omega)$} \]
   378 \[ \frac{1}{\omega}\, e^{-j2\omega}\cdot\colorbox{lgray}{$2\, sin(\omega)$} \]
   375 	{\small\textit{
   379 	{\small\textit{
   376 		\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.
   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.
   377 	}}
   381 	}}
   378 	\caption{Mathematic tricks}\label{eg:trick}
   382 	\caption{Mathematic tricks}\label{eg:trick}
   379 \end{example}
   383 \end{example}
   380 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. 
   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. 
   381 \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.
   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}.
   382 
   386 
   383 
   387 \begin{figure}
   384 
   388 \hfill \\
   385 todo
   389   \begin{center}
   386 
   390     \includegraphics[scale=0.7]{math-universe}
   387 axiomatization ... where ... and
   391   \end{center}
       
   392   \caption{Three-dimensional universe of mathematics\label{fig:mathuni}}
       
   393 \end{figure}
   388 
   394 
   389 \subsection{Notes on Problems with Traditional Notation}
   395 \subsection{Notes on Problems with Traditional Notation}
   390 %{\footnotesize
   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.
   391 %\textbf{TODO}
   397 
   392 %Due the thesis work we discorvers severell problems of traditional notations.
   398 \begin{example}
   393 %
   399 
   394 %u[n] !!
   400 \[ f(x)=\ldots\;	\quad R \rightarrow \quad R \]
   395 %
   401 
   396 %f x =  why not f(x) ?!?!
   402 
   397 %
   403 \[ f(p)=\ldots\;	p \in \quad R \]
   398 %...
   404 
   399 %
   405 	{\small\textit{
   400 %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,...)
   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.
   401 %}\\
   407 	}}
   402 
   408 	\caption{Towards the Lambda Calculus\label{eg:lamda}}
   403 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}})
   409 \end{example}
       
   410 
       
   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,...).
       
   412 
       
   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}})
   404 
   414 
   405 \begin{example}
   415 \begin{example}
   406 	\[
   416 	\[
   407 		u\left[n\right] \ \ldots \ unitstep
   417 		u\left[n\right] \ \ldots \ unitstep
   408 	\]
   418 	\]
   409 	{\small\textit{
   419 	{\small\textit{
   410 		\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.
   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.
   411 	}}
   421 	}}
   412 	\caption{Expression Interpretation}\label{eg:symbint1}
   422 	\caption{Expression Interpretation}\label{eg:symbint1}
   413 \end{example}
   423 \end{example}
   414 
   424 
   415 \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}}) 
   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}}) 
   420 	{\small\textit{
   430 	{\small\textit{
   421 	\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.
   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.
   422 	}}
   432 	}}
   423 	\caption{Symbol Interpretation}\label{eg:symbint2}
   433 	\caption{Symbol Interpretation}\label{eg:symbint2}
   424 \end{example}
   434 \end{example}
   425 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.
   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.
   426 
   436 
   427 \section{Milestones for the Thesis}
   437 \section{Project Controlling}
   428 The thesis was splitted into six iterations
   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.
       
   439 
       
   440 \subsection{Survey on Milestones\label{sec:milesurv}}
       
   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.
   429 \begin{description}
   442 \begin{description}
   430 \item[(29.06. -- 27.07.)] Collection of detailed informations about different STEOP topics \ref{ssec:infcol}
   443 	\item[1st Iteration] Information Collection
   431 \item[(27.07.)] First Prsentation - Decition on which Problems will be implemented \ref{ssec:pres1}
   444 	\item[2nd Iteration] Problem Selection
   432 \item[(01.09. -- 11.11.)] Implementing the Problem Class in {{\sisac{}}} \ref{ssec:impl}
   445 	\item[3rd Iteration] Implementation
   433 \item[(14.11. -- 02.12.)] Documentation of the Implementation \ref{ssec:doc}
   446 	\item[4th Iteration] Thesis Writing
   434 \item[(05.12. -- todo)] Writting on the thesis \ref{ssec:thes}
   447 	\item[5th Iteration] Finalization
   435 \item[todo] Second Prsentation - Work review \ref{ssec:pres2}
       
   436 \end{description}
   448 \end{description}
   437 
   449 A more detailed description of this milestones can be found in Section~\ref{sec:detmile}.
   438 \section{Detailed Milestone Description}
   450 
   439 \subsection{Collection of detailed informations about different STEOP topics}\label{ssec:infcol}
   451 \subsection{Milestone Details\label{sec:detmile}}
   440 identify problems relevant for certain SP lectures
   452 \begin{description}
   441 estimate chances to realized them within the scope of this thesis
   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.
   442 order for implementing the problems negotiated with lecturers
   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.
   443 \subsection{First Prsentation - Decition on which Problems will be implemented}\label{ssec:pres1}
   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.
   444 \subsection{Implementing the Problem Class in {\sisac}}\label{ssec:impl}
   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.
   445 \subsection{Documentation of the Implementation}\label{ssec:doc}
   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.
   446 \subsection{Writting on the thesis}\label{ssec:thes}
   458 \end{description}
   447 \subsection{Second Prsentation - Work review}\label{ssec:pres2}
   459 
   448 
   460 %\clearpage
       
   461 
       
   462 %----------// PART 2 \\----------%
       
   463 
       
   464 \newevenside
       
   465 
       
   466 \part{Implementation\label{part:impl}}
       
   467 \input{./preambleForGeneratedDocuments.tex}
       
   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:
       
   469 \begin{itemize}
       
   470 \item \ttfamily Partial\_Fractions.thy \normalfont - \ttfamily partial\_fractions.sml \normalfont
       
   471 \item \ttfamily Inverse\_Z\_Transformation.thy \normalfont - \ttfamily inverse\_z\_transformation.sml \normalfont
       
   472 \item \ttfamily Rational.thy \normalfont - \ttfamily rational.sml \normalfont
       
   473 \end{itemize}
       
   474 \HRule
       
   475 %\setcounter{section}{0}
       
   476 \input{../../../test/Tools/isac/ADDTESTS/course/SignalProcess/document/Build_Inverse_Z_Transform}
       
   477 
       
   478 \clearpage
       
   479 
       
   480 %----------// PART 3 \\----------%
       
   481 
       
   482 \newevenside
       
   483 \part{Thesis Summary and Review}
   449 \section{Related Work}\label{sec:related}
   484 \section{Related Work}\label{sec:related}
   450 Unusual for a Baccalaureate Thesis, there is {\em no} related work; this requires explanation.
   485 Unusual for a Baccalaureate Thesis, there is {\em no} related work; this requires explanation.
   451 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.
   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.
   452 \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.
   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.
   453 \par These two reasons are given for the unusual statement, that there is no related work to be discussed in this thesis. 
   488 \par These two reasons are given for the unusual statement, that there is no related work to be discussed in this thesis. 
   454 
   489 
   455 \section{Review}
   490 \section{Issues and Open Questions}
   456 todo
   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:
   457 \section{Open Questions}
   492 \begin{itemize}
   458 todo
   493 	\item What knowledge is already mechanized in \emph{Isabelle}?
   459 \section{Conclusions}
   494 	\item How can missing theorems and definitions be mechanized?
   460 todo
   495 	\item What is the effort for such mechanization?
   461 
   496 	\item How do calculations look like, by using mechanized knowledge?
   462 %\bibliographystyle{alpha}
   497 	\item What problems and subproblems have to be solved?
   463 %\bibliography{references}
   498 	\item Which problems are already implemented in {\sisac}?
   464 %\bibliography{bib/math-eng,bib/didact,bib/bk,bib/RISC_2,bib/isac,bib/pl,bib/math}
   499 	\item How are the new problems specified ({\sisac})?
   465 
   500 	\item Which variants of programs in {\sisac} solve the problems?
   466 
   501 	\item What is the contents of the interactive course material (Figures, etc.)?
   467 \clearpage
   502 \end{itemize}
   468 
   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.
   469 %----------// PART 2 \\----------%
   504 
   470 
   505 \subsection{Accomplished}
   471 \newevenside
   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}.
   472 
   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.
   473 \part{Implementation}
   508 \subsection{Partially Accomplished}
   474 
   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.
   475 
   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.
   476 \input{./preambleForGeneratedDocuments.tex}
   511 \subsection{Not Accomplished}
   477 
   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:
   478 \HRule
   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.
   479 
   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.
   480 %\setcounter{section}{0}
   515 \subsection{Open Questions and Work}
   481 \input{../../../test/Tools/isac/ADDTESTS/course/SignalProcess/document/Build_Inverse_Z_Transform}
   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:
   482 
   517 \begin{itemize}
   483 \clearpage
   518 	\item What is the contents of the interactive course material (Figures, etc.)?
   484 
   519 	\item What are the pre and post conditions of the problems?
   485 
   520 	\item How would a correct implementation of the Z-Transformation look like?
   486 %----------// APPENDIX \\-----------%
   521 	\item What do students expect of this implementation?
   487 
   522 \end{itemize}
   488 \appendix
   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:
       
   524 \begin{enumerate}
       
   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.
       
   526 	\item Create a good example program and test it.
       
   527 	\item Describe the used theories with the mathematic definitions and background.
       
   528 	\item Add figures and small examples.
       
   529 \end{enumerate}
       
   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.
       
   531 
       
   532 \section{Conclusion and Personal Experience}
       
   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.
       
   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.
       
   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.
       
   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.
       
   537 
       
   538 \subsection{Anecdotes}
       
   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 :)
       
   540 \begin{center}
       
   541 Thank you {\sisac}!
       
   542 \end{center}
   489 
   543 
   490 %----------// BIB \\-----------%
   544 %----------// BIB \\-----------%
   491 
   545 
   492 %\renewcommand{\refname}{\section{Sources}} % Using "Sources" as the title of the section
   546 \renewcommand{\refname}{\section{References}}
   493 \bibliographystyle{alpha}
   547 \bibliographystyle{alpha}
   494 \bibliography{references}
   548 \bibliography{references}
   495 \clearpage
   549 \clearpage
   496 
   550 
       
   551 %----------// APPENDIX \\-----------%
       
   552 \newevenside
       
   553 \part{Appendix}
       
   554 \appendix
   497 %----------// WORK TIME \\-----------%
   555 %----------// WORK TIME \\-----------%
   498 
   556 
   499 \section{Stundenliste}
   557 
       
   558 \section{Record of Working Time}
   500 \begin{footnotesize}
   559 \begin{footnotesize}
   501 \begin{longtable}[h]{l p{6.5cm} c c r}
   560 \begin{longtable}{l p{6.5cm} c c r}
   502 {\bf Date} & {\bf Description} & {\bf Begin} & {\bf End} & {\bf Dur.}\\
   561 {\bf Date} & {\bf Description} & {\bf Begin} & {\bf End} & {\bf Dur.}\\
   503 \hline \hline
   562 \hline \hline
   504 \endhead
   563 \endhead
   505 29.06.2011 & Treffen mit Geiger und Neuper & 15:00 & 17:30 & 2,50\\ 
   564 
   506 02.07.2011 & Beispielaufbereitung (Bsp. Geiger Mail) & 20:00 & 21:30 & 1,50\\ 
       
   507 03.07.2011 & Beispielaufbereitung, Vorraussetzungsausw. & 21:00 & 22:45 & 1,75\\ 
       
   508 05.07.2011 & Treffen mit Neuper, Informationsaustausch & 10:00 & 13:00 & 3,00\\ 
       
   509 06.07.2011 & Isabelle Installation & 20:00 & 22:30 & 2,50\\ 
       
   510 07.07.2011 & Treffen mit Neuper, Präsentationsvorbereitung & 14:45 & 16:15 & 1,50\\ 
       
   511 18.07.2011 & Präsentationsvorbereitung - Struktur & 14:15 & 16:00 & 1,75\\ 
       
   512 19.07.2011 & Präsentationsvorbereitung - Inhalt & 07:20 & 09:20 & 2,00\\ 
       
   513 19.07.2011 & Treffen mit Neuper & 10:00 & 12:00 & 2,00\\ 
       
   514 21.07.2011 & HG Fehlersuche, Latex Ausarbeitung & 11:10 & 14:00 & 2,83\\ 
       
   515 22.07.2011 & Treffen mit Neuper & 10:00 & 12:00 & 2,00\\ 
       
   516 23.07.2011 & Berechnungen in Latex fertigstellen & 13:45 & 16:30 & 2,75\\ 
       
   517 24.07.2011 & Präsentation fertigstellen & 20:10 & 20:40 & 0,50\\ 
       
   518 25.07.2011 & Treffen mit Neuper, Präsentation \& erste Tests & 15:15 & 17:55 & 2,67\\ 
       
   519 26.07.2011 & Test\_Complex.thy erarbeiten & 10:45 & 12:10 & 1,42\\ 
       
   520 27.07.2011 & present-1 mit Neuper, Geiger & 10:00 & 12:00 & 2,00\\
       
   521 \hline 
   565 \hline 
   522 02.09.2011 & Treffen mit Neuper, Vorlage Bakk-Arbeit & 08:30 & 10:20 & 1,83\\ 
   566   \multicolumn{5}{r}{{Continued on next page}} \\
   523 05.09.2011 & Treffen mit Neuper, Beginn Partialbruchzerlegung & 09:30 & 12:45 & 3,25\\ 
   567 \hline
   524 05.09.2011 & Partialbruchzerlegung & 17:10 & 18:30 & 1,33\\ 
   568 \endfoot
   525 06.09.2011 & Dokumentation Partialbruchzerlegung & 10:00 & 13:15 & 3,25\\ 
   569 
   526 07.09.2011 & Treffen mit Neuper, Einführung Programmierung & 10:00 & 12:50 & 2,83\\ 
   570 \hline 
   527 08.09.2011 & Latex Umgebung einrichten - Theory export & 19:00 & 22:45 & 3,75\\ 
   571 \hline
   528 09.09.2011 & Latex Umgebung einrichten - Makefile & 11:40 & 15:00 & 3,33\\ 
   572 \endlastfoot
   529 10.09.2011 & Treffen mit Neuper, HG Fehler, Skript Inv.-Z-Transf. & 10:00 & 12:00 & 2,00\\ 
   573 
   530 14.09.2011 & Skript Inv.-Z-Transf Prgrammierung & 09:10 & 12:25 & 3,25\\ 
   574 \multicolumn{5}{l}{Start 1st Iteration} \\
   531 16.09.2011 & Informationssammlung Summen & 13:15 & 16:00 & 2,75\\ 
   575 \hline
   532 19.09.2011 & Programmierübung & 10:00 & 13:10 & 3,17\\ 
   576 29.06.2011 & Meeting Dr. Neuper and DI Geiger & 15:00 & 17:30 & 2,50 \\
   533 20.09.2011 & Trefffen mit Neuper, Unterstützung bei Program. & 15:30 & 18:10 & 2,67\\ 
   577 02.07.2011 & Working on Examples from DI Geiger & 20:00 & 21:30 & 1,50 \\
   534 23.09.2011 & Neukonfiguration IsaMakefile & 13:00 & 14:30 & 1,50\\ 
   578 03.07.2011 & Working on Examples from DI Geiger & 21:00 & 22:45 & 1,75 \\
   535 23.09.2011 & Treffen Neuper, Programmierung Build\_Inverse\_Z & 14:30 & 17:30 & 3,00\\ 
   579 05.07.2011 & Meeting Dr. Neuper, Information Exchange & 10:00 & 13:00 & 3,00 \\
   536 26.09.2011 & Skript Partialbruchzerlegung - getArgument & 13:30 & 16:15 & 2,75\\ 
   580 06.07.2011 & Installing Isabelle & 20:00 & 22:30 & 2,50 \\
   537 27.09.2011 & Treffen mit Neuper, HG Fehler & 09:00 & 12:20 & 3,33\\ 
   581 07.07.2011 & Meeting Dr. Neuper, present-1 & 14:45 & 16:15 & 1,50 \\
   538 28.09.2011 & Treffen mit Neuper, Dateiumstrukturierung & 10:00 & 12:30 & 2,50\\ 
   582 18.07.2011 & Meeting Dr. Neuper, present-1 Structure & 14:15 & 16:00 & 1,75 \\
   539 01.10.2011 & Testen & 10:00 & 11:00 & 1,00\\ 
   583 19.07.2011 & Meeting Dr. Neuper, present-1 Content & 07:20 & 09:20 & 2,00\\
   540 02.10.2011 & Fehlersuche & 15:00 & 16:10 & 1,17\\ 
   584 19.07.2011 & Meeting Dr. Neuper & 10:00 & 12:00 & 2,00\\
   541 06.10.2011 & Treffen mit Neuper & 15:00 & 17:50 & 2,83\\ 
   585 21.07.2011 & HG Error Correction, Latex for Thesis & 11:10 & 14:00 & 2,83\\
   542 07.10.2011 & Treffen mit Neuper, Programmbesprechung & 15:00 & 16:50 & 1,83\\ 
   586 22.07.2011 & Meeting Dr. Neuper & 10:00 & 12:00 & 2,00\\
   543 09.10.2011 & Bakk. Arbeit & 16:30 & 18:45 & 2,25\\ 
   587 23.07.2011 & Latex for Calculations & 13:45 & 16:30 & 2,75\\
   544 11.10.2011 & Treffen mit Neuper, Programmbespr., Abstract & 14:10 & 17:10 & 3,00
   588 24.07.2011 & Meeting Dr. Neuper, present-1 & 20:10 & 20:40 & 0,50\\
       
   589 25.07.2011 & Meeting Dr. Neuper, present-1 & 15:15 & 17:55 & 2,67\\
       
   590 26.07.2011 & Work on Test\_Complex.thy & 10:45 & 12:10 & 1,42\\
       
   591 27.07.2011 & present-1 (Dr. Neuper, DI Geiger) & 10:00 & 12:00 & 2,00\\
       
   592 \hline
       
   593 \multicolumn{5}{l}{End 1st Iteration} \\
       
   594 \multicolumn{5}{l}{Start 2nd Iteration} \\
       
   595 \hline
       
   596 02.09.2011 & Meeting Dr. Neuper, Latex for Thesis & 08:30 & 10:20 & 1,83\\
       
   597 05.09.2011 & Meeting Dr. Neuper, Partial\_Frations.thy & 09:30 & 12:45 & 3,25\\
       
   598 05.09.2011 & Partial\_Fractions.thy & 17:10 & 18:30 & 1,33\\
       
   599 06.09.2011 & Documentation Partial\_Fractions.thy & 10:00 & 13:15 & 3,25\\
       
   600 07.09.2011 & Meeting Dr. Neuper, ML Introduction & 10:00 & 12:50 & 2,83\\
       
   601 08.09.2011 & Preparing Scripts for Latex Output & 19:00 & 22:45 & 3,75\\
       
   602 09.09.2011 & Preparing Scripts for Latex Output & 11:40 & 15:00 & 3,33\\
       
   603 10.09.2011 & Meeting Dr. Neuper, Latex Output, HG Errors & 10:00 & 12:00 & 2,00\\
       
   604 \hline
       
   605 \multicolumn{5}{l}{End 2nd Iteration} \\
       
   606 \multicolumn{5}{l}{Start 3rd and 4th Iteration} \\
       
   607 \hline
       
   608 14.09.2011 & Start on Inverse\_Z\_Transf. Script & 09:10 & 12:25 & 3,25\\
       
   609 16.09.2011 & Information Exchange Sums & 13:15 & 16:00 & 2,75\\
       
   610 19.09.2011 & Programming on Inverse\_Z\_Transf. & 10:00 & 13:10 & 3,17\\
       
   611 20.09.2011 & Meeting Dr. Neuper, Inverse\_Z\_Transf. Script & 15:30 & 18:10 & 2,67\\
       
   612 23.09.2011 & New IsaMakefile for Latex generation & 13:00 & 14:30 & 1,50\\
       
   613 23.09.2011 & Meeting Dr. Neuper, Inverse\_Z\_Transf. Script & 14:30 & 17:30 & 3,00\\
       
   614 26.09.2011 & Partial\_Fractions.thy, get\_Argument & 13:30 & 16:15 & 2,75\\
       
   615 27.09.2011 & Meeting Dr. Neuper, HG Error & 09:00 & 12:20 & 3,33\\
       
   616 28.09.2011 & Meeting Dr. Neuper, Hierarchy Reconstruction & 10:00 & 12:30 & 2,50\\
       
   617 01.10.2011 & Some Testing & 10:00 & 11:00 & 1,00\\
       
   618 02.10.2011 & Inverse\_Z\_Transf. Errors & 15:00 & 16:10 & 1,17\\
       
   619 06.10.2011 & Meeting Dr. Neuper & 15:00 & 17:50 & 2,83\\
       
   620 07.10.2011 & Meeting Dr. Neuper, Inverse\_Z\_Transf. Script & 15:00 & 16:50 & 1,83\\
       
   621 09.10.2011 & Work on Thesis & 16:30 & 18:45 & 2,25\\
       
   622 11.10.2011 & Meeting Dr. Neuper, Abstract & 14:10 & 17:10 & 3,00\\
       
   623 13.10.2011 & Work on Thesis, Implemention part & 08:30 & 10:00 & 1,50\\
       
   624 18.10.2011 & Work on Thesis & 20:30 & 22:50 & 2,33\\
       
   625 19.10.2011 & Work on Thesis & 21:20 & 23:40 & 2,33\\
       
   626 20.10.2011 & Work on Thesis & 08:45 & 10:45 & 2,00\\
       
   627 25.10.2011 & Meeting Dr. Neuper: thesis review & 08:00 & 10:00 & 2,00\\
       
   628 25.10.2011 & Reorganising after meeting & 20:10 & 23:50 & 3,67\\
       
   629 26.10.2011 & Reorganising after meeting, examples in thesis & 08:30 & 11:10 & 2,67\\
       
   630 07.11.2011 & Meeting Preparation & 16:30 & 17:15 & 0,75\\
       
   631 08.11.2011 & Meeting Dr. Neuper: thesis addons & 16:00 & 17:30 & 1,50\\
       
   632 12.11.2011 & Reorganization after meeting & 21:10 & 22:30 & 1,33\\
       
   633 20.11.2011 & Review of Inv\_Z\_Trans & 10:15 & 13:30 & 3,25\\
       
   634 21.11.2011 & get\_numerator & 12:15 & 14:30 & 2,25\\
       
   635 23.11.2011 & get\_numerator & 20:30 & 21:15 & 0,75\\
       
   636 24.11.2011 & get\_numerator final & 14:10 & 15:30 & 1,33\\
       
   637 28.11.2011 & tried to go on in build\_inverse\_ & 11:00 & 13:10 & 2,17\\
       
   638 01.12.2012 & Tuning Invers\_Z\_Tansf. Script & 16:15 & 19:30 & 3,25\\
       
   639 04.12.2012 & Moved Some Tests to Knowledge & 15:30 & 18:15 & 2,75\\
       
   640 05.12.2012 & Tuning Invers\_Z\_Tansf. Script & 13:10 & 14:15 & 1,08\\
       
   641 08.12.2012 & Inverse\_Z\_Tansf. Script, Factors from Solution & 14:30 & 16:15 & 1,75\\
       
   642 10.12.2012 & Moved Some Tests to Knowledge & 20:10 & 23:00 & 2,83\\
       
   643 11.12.2012 & Inverse\_Z\_Tansf. Script, PBZ Ansatz & 10:10 & 12:30 & 2,33\\
       
   644 12.12.2012 & Inverse\_Z\_Tansf. Script, Subsitution & 09:00 & 11:30 & 2,50\\
       
   645 16.12.2012 & Tuning Invers\_Z\_Tansf. Script & 17:15 & 18:45 & 1,50\\
       
   646 19.12.2012 & Tuning Invers\_Z\_Tansf. Script & 19:00 & 20:30 & 1,50\\
       
   647 14.01.2012 & Inverse\_Z\_Tansf. Script, Substitution & 18:45 & 20:30 & 1,75\\
       
   648 22.01.2012 & Inverse\_Z\_Transf. Script, Calc Coeff. & 20:10 & 21:45 & 1,58\\
       
   649 12.02.2012 & Inverse\_Z\_Transf. Script & 17:30 & 19:00 & 1,50\\
       
   650 13.02.2012 & Finished Work on Inverse\_Z\_Transf. Script & 19:30 & 22:10 & 2,67\\
       
   651 14.02.2012 & Formatting for Latex output & 09:00 & 14:45 & 5,75\\
       
   652 15.02.2012 & Formatting for Latex output & 10:00 & 15:30 & 5,50\\
       
   653 16.02.2012 & Going on Work on Thesis & 14:45 & 18:30 & 3,75\\
       
   654 17.02.2012 & Tuning Invers\_Z\_Tansf. Script & 18:30 & 19:45 & 1,25\\
       
   655 19.02.2012 & Meeting Dr. Neuper, present-2 & 09:00 & 13:30 & 4,50\\
       
   656 19.02.2012 & Meeting Dr. Neuper, Integration of work to Isac & 15:00 & 19:10 & 4,17\\
       
   657 20.02.2012 & Meeting Dr. Neuper, Integration of work to Isac & 09:00 & 12:45 & 3,75\\
       
   658 20.02.2012 & Meeting Dr. Neuper, Integration of work to Isac & 14:10 & 18:30 & 4,33\\
       
   659 \hline
       
   660 \multicolumn{5}{l}{End 3rd Iteration}\\
       
   661 \hline
       
   662 20.02.2012 & Finishing Thesis & 20:30 & 22:50 & 2,33\\
       
   663 21.02.2012 & Finishing Thesis & 13:30 & 14:45 & 1,25\\
       
   664 02.03.2012 & Finishing Thesis & 15:45 & 19:00 & 3,25\\
       
   665 06.03.2012 & Finishing Thesis & 09:15 & 10:30 & 1,25\\
       
   666 07.03.2012 & Finishing Thesis & 13:15 & 16:00 & 2,75\\
       
   667 \hline
       
   668 \multicolumn{5}{l}{End 4th Iteration} \\
       
   669 \multicolumn{5}{l}{Start 5th Iteration} \\
       
   670 \hline
       
   671 26.02.2012 & Preparing present-2 & 09:30 & 13:00 & 3,5 \\
       
   672 TBA & present-2 & 0 & 0 & 0 \\
       
   673 \hline
       
   674 \multicolumn{5}{l}{End 5th Iteration} \\
       
   675 \hline
       
   676 \multicolumn{4}{l}{Total working time:} & 196 \\
   545 \end{longtable}
   677 \end{longtable}
   546 \end{footnotesize}
   678 \end{footnotesize}
   547 
   679 
       
   680 %----------// CALCULATIONS \\-----------%
       
   681 
       
   682 \newevenside
   548 \section{Calculations\label{app:calc}}
   683 \section{Calculations\label{app:calc}}
   549 \input{calulations}
   684 \input{calulations}
   550 \end{document}
   685 \end{document}
   551 
   686