doc-src/isac/jrocnik/eJMT-paper/jrocnik_eJMT.tex
author Jan Rocnik <jan.rocnik@student.tugraz.at>
Thu, 06 Sep 2012 21:54:54 +0200
changeset 42466 7fe981922276
parent 42465 908a10fab49a
child 42467 1035c36360ae
permissions -rwxr-xr-x
tuned
     1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2 % Electronic Journal of Mathematics and Technology (eJMT) %
     3 % style sheet for LaTeX.  Please do not modify sections   %
     4 % or commands marked 'eJMT'.                              %
     5 %                                                         %
     6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     7 %                                                         %
     8 % eJMT commands                                           %
     9 %                                                         %
    10 \documentclass[12pt,a4paper]{article}%                    %
    11 \usepackage{times}                                        %
    12 \usepackage{amsfonts,amsmath,amssymb}                     %
    13 \usepackage[a4paper]{geometry}                            %
    14 \usepackage{fancyhdr}                                     %
    15 \usepackage{color}                                        %
    16 \usepackage[pdftex]{hyperref} % see note below            %
    17 \usepackage{graphicx}%                                    %
    18 \hypersetup{                                              %
    19     a4paper,                                              %
    20     breaklinks                                            %
    21 }                                                         %
    22 %                                                         %
    23 \newtheorem{theorem}{Theorem}                             %
    24 \newtheorem{acknowledgement}[theorem]{Acknowledgement}    %
    25 \newtheorem{algorithm}[theorem]{Algorithm}                %
    26 \newtheorem{axiom}[theorem]{Axiom}                        %
    27 \newtheorem{case}[theorem]{Case}                          %
    28 \newtheorem{claim}[theorem]{Claim}                        %
    29 \newtheorem{conclusion}[theorem]{Conclusion}              %
    30 \newtheorem{condition}[theorem]{Condition}                %
    31 \newtheorem{conjecture}[theorem]{Conjecture}              %
    32 \newtheorem{corollary}[theorem]{Corollary}                %
    33 \newtheorem{criterion}[theorem]{Criterion}                %
    34 \newtheorem{definition}[theorem]{Definition}              %
    35 \newtheorem{example}[theorem]{Example}                    %
    36 \newtheorem{exercise}[theorem]{Exercise}                  %
    37 \newtheorem{lemma}[theorem]{Lemma}                        %
    38 \newtheorem{notation}[theorem]{Notation}                  %
    39 \newtheorem{problem}[theorem]{Problem}                    %
    40 \newtheorem{proposition}[theorem]{Proposition}            %
    41 \newtheorem{remark}[theorem]{Remark}                      %
    42 \newtheorem{solution}[theorem]{Solution}                  %
    43 \newtheorem{summary}[theorem]{Summary}                    %
    44 \newenvironment{proof}[1][Proof]{\noindent\textbf{#1.} }  %
    45 {\ \rule{0.5em}{0.5em}}                                   %
    46 %                                                         %
    47 % eJMT page dimensions                                    %
    48 %                                                         %
    49 \geometry{left=2cm,right=2cm,top=3.2cm,bottom=4cm}        %
    50 %                                                         %
    51 % eJMT header & footer                                    %
    52 %                                                         %
    53 \newcounter{ejmtFirstpage}                                %
    54 \setcounter{ejmtFirstpage}{1}                             %
    55 \pagestyle{empty}                                         %
    56 \setlength{\headheight}{14pt}                             %
    57 \geometry{left=2cm,right=2cm,top=3.2cm,bottom=4cm}        %
    58 \pagestyle{fancyplain}                                    %
    59 \fancyhf{}                                                %
    60 \fancyhead[c]{\small The Electronic Journal of Mathematics%
    61 \ and Technology, Volume 1, Number 1, ISSN 1933-2823}     %
    62 \cfoot{%                                                  %
    63   \ifnum\value{ejmtFirstpage}=0%                          %
    64     {\vtop to\hsize{\hrule\vskip .2cm\thepage}}%          %
    65   \else\setcounter{ejmtFirstpage}{0}\fi%                  %
    66 }                                                         %
    67 %                                                         %
    68 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    69 %
    70 % Please place your own definitions here
    71 %
    72 \def\isac{${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}
    73 \def\sisac{\footnotesize${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}
    74 
    75 \usepackage{color}
    76 \definecolor{lgray}{RGB}{238,238,238}
    77 
    78 %
    79 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    80 %                                                         %
    81 % How to use hyperref                                     %
    82 % -------------------                                     %
    83 %                                                         %
    84 % Probably the only way you will need to use the hyperref %
    85 % package is as follows.  To make some text, say          %
    86 % "My Text Link", into a link to the URL                  %
    87 % http://something.somewhere.com/mystuff, use             %
    88 %                                                         %
    89 % \href{http://something.somewhere.com/mystuff}{My Text Link}
    90 %                                                         %
    91 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    92 %
    93 \begin{document}
    94 %
    95 % document title
    96 %
    97 \title{Trials with TP-based Programming
    98 \\
    99 for Interactive Course Material}%
   100 %
   101 % Single author.  Please supply at least your name,
   102 % email address, and affiliation here.
   103 %
   104 \author{\begin{tabular}{c}
   105 \textit{Jan Ro\v{c}nik} \\
   106 jan.rocnik@student.tugraz.at \\
   107 IST, SPSC\\
   108 Graz University of Technologie\\
   109 Austria\end{tabular}
   110 }%
   111 %
   112 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   113 %                                                         %
   114 % eJMT commands - do not change these                     %
   115 %                                                         %
   116 \date{}                                                   %
   117 \maketitle                                                %
   118 %                                                         %
   119 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   120 %
   121 % abstract
   122 %
   123 \begin{abstract}
   124 
   125 Traditional course material in engineering disciplines lacks an
   126 important component, interactive support for step-wise problem
   127 solving. Theorem-Proving (TP) technology is appropriate for one part
   128 of such support, in checking user-input. For the other part of such
   129 support, guiding the learner towards a solution, another kind of
   130 technology is required. %TODO ... connect to prototype ...
   131 
   132 A prototype combines TP with a programming language, the latter
   133 interpreted in a specific way: certain statements in a program, called
   134 tactics, are treated as breakpoints where control is handed over to
   135 the user. An input formula is checked by TP (using logical context
   136 built up by the interpreter); and if a learner gets stuck, a program
   137 describing the steps towards a solution of a problem ``knows the next
   138 step''. This kind of interpretation is called Lucas-Interpretation for
   139 \emph{TP-based programming languages}.
   140 
   141 This paper describes the prototype's TP-based programming language
   142 within a case study creating interactive material for an advanced
   143 course in Signal Processing: implementation of definitions and
   144 theorems in TP, formal specification of a problem and step-wise
   145 development of the program solving the problem. Experiences with the
   146 ork flow in iterative development with testing and identifying errors
   147 are described, too. The description clarifies the components missing
   148 in the prototype's language as well as deficiencies experienced during
   149 programming.
   150 \par
   151 These experiences are particularly notable, because the author is the
   152 first programmer using the language beyond the core team which
   153 developed the prototype's TP-based language interpreter.
   154 %
   155 \end{abstract}%
   156 %
   157 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   158 %                                                         %
   159 % eJMT command                                            %
   160 %                                                         %
   161 \thispagestyle{fancy}                                     %
   162 %                                                         %
   163 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   164 %
   165 % Please use the following to indicate sections, subsections,
   166 % etc.  Please also use \subsubsection{...}, \paragraph{...}
   167 % and \subparagraph{...} as necessary.
   168 %
   169 
   170 \section{Introduction}\label{intro}
   171 
   172 % \paragraph{Didactics of mathematics} 
   173 %WN: wenn man in einem high-quality paper von 'didactics' spricht, 
   174 %WN muss man am state-of-the-art ankn"upfen -- siehe
   175 %WN W.Neuper, On the Emergence of TP-based Educational Math Assistants
   176 % faces a specific issue, a gap
   177 % between (1) introduction of math concepts and skills and (2)
   178 % application of these concepts and skills, which usually are separated
   179 % into different units in curricula (for good reasons). For instance,
   180 % (1) teaching partial fraction decomposition is separated from (2)
   181 % application for inverse Z-transform in signal processing.
   182 % 
   183 % \par This gap is an obstacle for applying math as an fundamental
   184 % thinking technology in engineering: In (1) motivation is lacking
   185 % because the question ``What is this stuff good for?'' cannot be
   186 % treated sufficiently, and in (2) the ``stuff'' is not available to
   187 % students in higher semesters as widespread experience shows.
   188 % 
   189 % \paragraph{Motivation} taken by this didactic issue on the one hand,
   190 % and ongoing research and development on a novel kind of educational
   191 % mathematics assistant at Graz University of
   192 % Technology~\footnote{http://www.ist.tugraz.at/isac/} promising to
   193 % scope with this issue on the other hand, several institutes are
   194 % planning to join their expertise: the Institute for Information
   195 % Systems and Computer Media (IICM), the Institute for Software
   196 % Technology (IST), the Institutes for Mathematics, the Institute for
   197 % Signal Processing and Speech Communication (SPSC), the Institute for
   198 % Structural Analysis and the Institute of Electrical Measurement and
   199 % Measurement Signal Processing.
   200 %WN diese Information ist f"ur das Paper zu spezielle, zu aktuell 
   201 %WN und damit zu verg"anglich.
   202 % \par This thesis is the first attempt to tackle the above mentioned
   203 % issue, it focuses on Telematics, because these specific studies focus
   204 % on mathematics in \emph{STEOP}, the introductory orientation phase in
   205 % Austria. \emph{STEOP} is considered an opportunity to investigate the
   206 % impact of {\sisac}'s prototype on the issue and others.
   207 % 
   208 
   209 \paragraph{Traditional course material} in engineering disciplines lacks an
   210 important component, interactive support for step-wise problem
   211 solving. Theorem-Proving (TP) technology can provide such support by
   212 specific services. An important part of such services is called
   213 ``next-step-guidance'', generated by a specific kind of ``TP-based
   214 programming language''. In the
   215 {\sisac}-project~\footnote{http://www.ist.tugraz.at/projects/isac/} such
   216 a language is prototyped in line with~\cite{plmms10} and built upon
   217 the theorem prover
   218 Isabelle~\cite{Nipkow-Paulson-Wenzel:2002}\footnote{http://isabelle.in.tum.de/}.
   219 The TP services are coordinated by a specific interpreter for the
   220 programming language, called
   221 Lucas-Interpreter~\cite{wn:lucas-interp-12}. The language and the
   222 interpreter will be briefly re-introduced in order to make the paper
   223 self-contained.
   224 
   225 \subparagraph{The main part} of the paper is an account of first experiences
   226 with programming in this TP-based language. The experience was gained
   227 in a case study by the author. The author was considered an ideal
   228 candidate for this study for the following reasons: as a student in
   229 Telematics (computer science with focus on Signal Processing) he had
   230 general knowledge in programming as well as specific domain knowledge
   231 in Signal Processing; and he was not involved in the development of
   232 {\sisac}'s programming language and interpeter, thus a novice to the
   233 language.
   234 
   235 \subparagraph{The goal} of the case study was (1) some TP-based programs for
   236 interactive course material for a specific ``Adavanced Signal
   237 Processing Lab'' in a higher semester, (2) respective program
   238 development with as little advice from the {\sisac}-team and (3) records
   239 and comments for the main steps of development in an Isabelle theory;
   240 this theory should provide guidelines for future programmers. An
   241 excerpt from this theory is the main part of this paper.
   242 \par
   243 The paper will use the problem in Fig.\ref{fig-interactive} as a
   244 running example:
   245 \begin{figure} [htb]
   246 \begin{center}
   247 \includegraphics[width=140mm]{fig/isac-Ztrans-math}
   248 \caption{Step-wise problem solving guided by the TP-based program}
   249 \label{fig-interactive}
   250 \end{center}
   251 \end{figure}
   252 
   253 \paragraph{The problem is} from the domain of Signal Processing and requests to
   254 determine the inverse Z-transform for a given term. Fig.\ref{fig-interactive}
   255 also shows the beginning of the interactive construction of a solution
   256 for the problem. This construction is done in the right window named
   257 ``Worksheet''.
   258 \par
   259 User-interaction on the Worksheet is {\em checked} and {\em guided} by
   260 TP services:
   261 \begin{enumerate}
   262 \item Formulas input by the user are {\em checked} by TP: such a
   263 formula establishes a proof situation --- the prover has to derive the
   264 formula from the logical context. The context is built up from the
   265 formal specification of the problem (here hidden from the user) by the
   266 Lucas-Interpreter.
   267 \item If the user gets stuck, the program developed below in this
   268 paper ``knows the next step'' from behind the scenes. How the latter
   269 TP-service is exploited by dialogue authoring is out of scope of this
   270 paper and can be studied in~\cite{gdaroczy-EP-13}.
   271 \end{enumerate} It should be noted that the programmer using the
   272 TP-based language is not concerned with interaction at all; we will
   273 see that the program contains neither input-statements nor
   274 output-statements. Rather, interaction is handled by services
   275 generated automatically.
   276 \par
   277 So there is a clear separation of concerns: Dialogues are
   278 adapted by dialogue authors (in Java-based tools), using automatically
   279 generated TP services, while the TP-based program is written by
   280 mathematics experts (in Isabelle/ML). The latter is concern of this
   281 paper.
   282 
   283 \paragraph{The paper is structed} as follows: The introduction
   284 \S\ref{intro} is followed by a brief re-introduction of the TP-based
   285 programming language in \S\ref{PL}, which extends the executable
   286 fragment of Isabelle's language (\S\ref{PL-isab}) by tactics which
   287 play a specific role in Lucas-Interpretation and in providing the TP
   288 services (\S\ref{PL-tacs}). The main part in \S\ref{trial} describes
   289 the main steps in developing the program for the running example:
   290 prepare domain knowledge, implement the formal specification of the
   291 problem, prepare the environment for the program, implement the
   292 program. The workflow of programming, debugging and testing is
   293 described in \S\ref{workflow}. The conclusion \S\ref{conclusion} will
   294 give directions identified for future development. 
   295 
   296 
   297 \section{\isac's Prototype for a Programming Language}\label{PL} 
   298 The prototype's language extends the executable fragment in the
   299 language of the theorem prover
   300 Isabelle~\cite{Nipkow-Paulson-Wenzel:2002}\footnote{http://isabelle.in.tum.de/}
   301 by tactics which have a specific role in Lucas-Interpretation.
   302 
   303 \subsection{The Executable Fragment of Isabelle's Language}\label{PL-isab}
   304 The executable fragment consists of data-type and function
   305 definitions.  It's usability even suggests that fragment for
   306 introductory courses \cite{nipkow-prog-prove}. HOL is a typed logic
   307 whose type system resembles that of functional programming
   308 languages. Thus there are
   309 \begin{description}
   310 \item[base types,] in particular \textit{bool}, the type of truth
   311 values, \textit{nat}, \textit{int}, \textit{complex}, and the types of
   312 natural, integer and complex numbers respectively in mathematics.
   313 \item[type constructors] allow to define arbitrary types, from
   314 \textit{set}, \textit{list} to advanced data-structures like
   315 \textit{trees}, red-black-trees etc.
   316 \item[function types,] denoted by $\Rightarrow$.
   317 \item[type variables,] denoted by $^\prime a, ^\prime b$ etc, provide
   318 type polymorphism. Isabelle automatically computes the type of each
   319 variable in a term by use of Hindley-Milner type inference
   320 \cite{pl:hind97,Milner-78}.
   321 \end{description}
   322 
   323 \textbf{Terms} are formed as in functional programming by applying
   324 functions to arguments. If $f$ is a function of type
   325 $\tau_1\Rightarrow \tau_2$ and $t$ is a term of type $\tau_1$ then
   326 $f\;t$ is a term of type~$\tau_2$. $t\;::\;\tau$ means that term $t$
   327 has type $\tau$. There are many predefined infix symbols like $+$ and
   328 $\leq$ most of which are overloaded for various types.
   329 
   330 HOL also supports some basic constructs from functional programming:
   331 {\it\label{isabelle-stmts}
   332 \begin{tabbing} 123\=\kill
   333 \>$( \; {\tt if} \; b \; {\tt then} \; t_1 \; {\tt else} \; t_2 \;)$\\
   334 \>$( \; {\tt let} \; x=t \; {\tt in} \; u \; )$\\
   335 \>$( \; {\tt case} \; t \; {\tt of} \; {\it pat}_1
   336   \Rightarrow t_1 \; |\dots| \; {\it pat}_n\Rightarrow t_n \; )$
   337 \end{tabbing} }
   338 \noindent \textit{The running example's program uses some of these elements
   339 (marked by {\tt tt-font} on p.\pageref{expl-program}): ${\tt
   340 let}\dots{\tt in}$ in lines $02 \dots 11$, as well as {\tt last} for
   341 lists and {\tt o} for functional (forward) composition in line
   342 $10$. In fact, the whole program is an Isabelle term with specific
   343 function constants like {\sc program}, {\sc Substitute} and {\sc
   344 Rewrite\_Set\_Inst} in lines $01$ and $10$ respectively.}
   345 
   346 % Terms may also contain $\lambda$-abstractions. For example, $\lambda
   347 % x. \; x$ is the identity function.
   348 
   349 %JR warum auskommentiert?
   350 
   351 \textbf{Formulae} are terms of type \textit{bool}. There are the basic
   352 constants \textit{True} and \textit{False} and the usual logical
   353 connectives (in decreasing order of precedence): $\neg, \land, \lor,
   354 \rightarrow$.
   355 
   356 \textbf{Equality} is available in the form of the infix function $=$
   357 of type $a \Rightarrow a \Rightarrow {\it bool}$. It also works for
   358 formulas, where it means ``if and only if''.
   359 
   360 \textbf{Quantifiers} are written $\forall x. \; P$ and $\exists x. \;
   361 P$.  Quantifiers lead to non-executable functions, so functions do not
   362 always correspond to programs, for instance, if comprising \\$(
   363 \;{\it if} \; \exists x.\;P \; {\it then} \; e_1 \; {\it else} \; e_2
   364 \;)$.
   365 
   366 \subsection{\isac's Tactics for Lucas-Interpretation}\label{PL-tacs}
   367 The prototype extends Isabelle's language by specific statements
   368 called tactics~\footnote{{\sisac}'s tactics are different from
   369 Isabelle's tactics: the former concern steps in a calculation, the
   370 latter concern proof steps.}  and tacticals. For the programmer these
   371 statements are functions with the following signatures:
   372 
   373 \begin{description}
   374 \item[Rewrite:] ${\it theorem}\Rightarrow{\it term}\Rightarrow{\it
   375 term} * {\it term}\;{\it list}$:
   376 this tactic appplies {\it theorem} to a {\it term} yielding a {\it
   377 term} and a {\it term list}, the list are assumptions generated by
   378 conditional rewriting. For instance, the {\it theorem}
   379 $b\not=0\land c\not=0\Rightarrow\frac{a\cdot c}{b\cdot c}=\frac{a}{b}$
   380 applied to the {\it term} $\frac{2\cdot x}{3\cdot x}$ yields
   381 $(\frac{2}{3}, [x\not=0])$.
   382 
   383 \item[Rewrite\_Set:] ${\it ruleset}\Rightarrow{\it
   384 term}\Rightarrow{\it term} * {\it term}\;{\it list}$:
   385 this tactic appplies {\it ruleset} to a {\it term}; {\it ruleset} is
   386 a confluent and terminating term rewrite system, in general. If
   387 none of the rules ({\it theorem}s) is applicable on interpretation
   388 of this tactic, an exception is thrown.
   389 
   390 % \item[Rewrite\_Inst:] ${\it substitution}\Rightarrow{\it
   391 % theorem}\Rightarrow{\it term}\Rightarrow{\it term} * {\it term}\;{\it
   392 % list}$:
   393 % 
   394 % \item[Rewrite\_Set\_Inst:] ${\it substitution}\Rightarrow{\it
   395 % ruleset}\Rightarrow{\it term}\Rightarrow{\it term} * {\it term}\;{\it
   396 % list}$:
   397 
   398 \item[Substitute:] ${\it substitution}\Rightarrow{\it
   399 term}\Rightarrow{\it term}$:
   400 
   401 \item[Take:] ${\it term}\Rightarrow{\it term}$:
   402 this tactic has no effect in the program; but it creates a side-effect
   403 by Lucas-Interpretation (see below) and writes {\it term} to the
   404 Worksheet.
   405 
   406 \item[Subproblem:] ${\it theory} * {\it specification} * {\it
   407 method}\Rightarrow{\it argument}\;{\it list}\Rightarrow{\it term}$:
   408 this tactic allows to enter a phase of interactive specification
   409 of a theory ($\Re$, $\cal C$, etc), a formal specification (for instance,
   410 a specific type of equation) and a method (for instance, solving an
   411 equation symbolically or numerically).
   412 
   413 \end{description}
   414 The tactics play a specific role in
   415 Lucas-Interpretation~\cite{wn:lucas-interp-12}: they are treated as
   416 break-points and control is handed over to the user. The user is free
   417 to investigate underlying knowledge, applicable theorems, etc.  And
   418 the user can proceed constructing a solution by input of a tactic to
   419 be applied or by input of a formula; in the latter case the
   420 Lucas-Interpreter has built up a logical context (initialised with the
   421 precondition of the formal specification) such that Isabelle can
   422 derive the formula from this context --- or give feedback, that no
   423 derivation can be found.
   424 
   425 \subsection{Tacticals for Control of Interpretation}
   426 The flow of control in a program can be determined by {\tt if then else}
   427 and {\tt case of} as mentioned on p.\pageref{isabelle-stmts} and also
   428 by additional tacticals:
   429 \begin{description}
   430 \item[Repeat:] ${\it tactic}\Rightarrow{\it term}\Rightarrow{\it
   431 term}$: iterates over tactics which take a {\it term} as argument as
   432 long as a tactic is applicable (for instance, {\it Rewrite\_Set} might
   433 not be applicable).
   434 
   435 \item[Try:] ${\it tactic}\Rightarrow{\it term}\Rightarrow{\it term}$:
   436 if {\it tactic} is applicable, then it is applied to {\it term},
   437 otherwise {\it term} is passed on unchanged.
   438 
   439 \item[Or:] ${\it tactic}\Rightarrow{\it tactic}\Rightarrow{\it
   440 term}\Rightarrow{\it term}$:
   441 
   442 
   443 \item[@@:] ${\it tactic}\Rightarrow{\it tactic}\Rightarrow{\it
   444 term}\Rightarrow{\it term}$:
   445 
   446 \item[While:] ${\it term::bool}\Rightarrow{\it tactic}\Rightarrow{\it
   447 term}\Rightarrow{\it term}$:
   448 
   449 \end{description}
   450 
   451 no input / output --- Lucas-Interpretation
   452 
   453 .\\.\\.\\TODO\\.\\.\\
   454 
   455 \section{Development of a Program on Trial}\label{trial} 
   456 As mentioned above, {\sisac} is an experimental system for a proof of
   457 concept for Lucas-Interpretation~\cite{wn:lucas-interp-12}.  The
   458 latter interprets a specific kind of TP-based programming language,
   459 which is as experimental as the whole prototype --- so programming in
   460 this language can be only ``on trial'', presently.  However, as a
   461 prototype, the language addresses essentials described below.
   462 
   463 \subsection{Mechanization of Math --- Domain Engineering}\label{isabisac}
   464 
   465 %WN was Fachleute unter obigem Titel interessiert findet
   466 %WN unterhalb des auskommentierten Textes.
   467 
   468 %WN der Text unten spricht Benutzer-Aspekte anund ist nicht speziell
   469 %WN auf Computer-Mathematiker fokussiert.
   470 % \paragraph{As mentioned in the introduction,} a prototype of an
   471 % educational math assistant called
   472 % {{\sisac}}\footnote{{{\sisac}}=\textbf{Isa}belle for
   473 % \textbf{C}alculations, see http://www.ist.tugraz.at/isac/.} bridges
   474 % the gap between (1) introducation and (2) application of mathematics:
   475 % {{\sisac}} is based on Computer Theorem Proving (TP), a technology which
   476 % requires each fact and each action justified by formal logic, so
   477 % {{{\sisac}{}}} makes justifications transparent to students in
   478 % interactive step-wise problem solving. By that way {{\sisac}} already
   479 % can serve both:
   480 % \begin{enumerate}
   481 %   \item Introduction of math stuff (in e.g. partial fraction
   482 % decomposition) by stepwise explaining and exercising respective
   483 % symbolic calculations with ``next step guidance (NSG)'' and rigorously
   484 % checking steps freely input by students --- this also in context with
   485 % advanced applications (where the stuff to be taught in higher
   486 % semesters can be skimmed through by NSG), and
   487 %   \item Application of math stuff in advanced engineering courses
   488 % (e.g. problems to be solved by inverse Z-transform in a Signal
   489 % Processing Lab) and now without much ado about basic math techniques
   490 % (like partial fraction decomposition): ``next step guidance'' supports
   491 % students in independently (re-)adopting such techniques.
   492 % \end{enumerate} 
   493 % Before the question is answers, how {{\sisac}}
   494 % accomplishes this task from a technical point of view, some remarks on
   495 % the state-of-the-art is given, therefor follow up Section~\ref{emas}.
   496 % 
   497 % \subsection{Educational Mathematics Assistants (EMAs)}\label{emas}
   498 % 
   499 % \paragraph{Educational software in mathematics} is, if at all, based
   500 % on Computer Algebra Systems (CAS, for instance), Dynamic Geometry
   501 % Systems (DGS, for instance \footnote{GeoGebra http://www.geogebra.org}
   502 % \footnote{Cinderella http://www.cinderella.de/}\footnote{GCLC
   503 % http://poincare.matf.bg.ac.rs/~janicic/gclc/}) or spread-sheets. These
   504 % base technologies are used to program math lessons and sometimes even
   505 % exercises. The latter are cumbersome: the steps towards a solution of
   506 % such an interactive exercise need to be provided with feedback, where
   507 % at each step a wide variety of possible input has to be foreseen by
   508 % the programmer - so such interactive exercises either require high
   509 % development efforts or the exercises constrain possible inputs.
   510 % 
   511 % \subparagraph{A new generation} of educational math assistants (EMAs)
   512 % is emerging presently, which is based on Theorem Proving (TP). TP, for
   513 % instance Isabelle and Coq, is a technology which requires each fact
   514 % and each action justified by formal logic. Pushed by demands for
   515 % \textit{proven} correctness of safety-critical software TP advances
   516 % into software engineering; from these advancements computer
   517 % mathematics benefits in general, and math education in particular. Two
   518 % features of TP are immediately beneficial for learning:
   519 % 
   520 % \paragraph{TP have knowledge in human readable format,} that is in
   521 % standard predicate calculus. TP following the LCF-tradition have that
   522 % knowledge down to the basic definitions of set, equality,
   523 % etc~\footnote{http://isabelle.in.tum.de/dist/library/HOL/HOL.html};
   524 % following the typical deductive development of math, natural numbers
   525 % are defined and their properties
   526 % proven~\footnote{http://isabelle.in.tum.de/dist/library/HOL/Number\_Theory/Primes.html},
   527 % etc. Present knowledge mechanized in TP exceeds high-school
   528 % mathematics by far, however by knowledge required in software
   529 % technology, and not in other engineering sciences.
   530 % 
   531 % \paragraph{TP can model the whole problem solving process} in
   532 % mathematical problem solving {\em within} a coherent logical
   533 % framework. This is already being done by three projects, by
   534 % Ralph-Johan Back, by ActiveMath and by Carnegie Mellon Tutor.
   535 % \par
   536 % Having the whole problem solving process within a logical coherent
   537 % system, such a design guarantees correctness of intermediate steps and
   538 % of the result (which seems essential for math software); and the
   539 % second advantage is that TP provides a wealth of theories which can be
   540 % exploited for mechanizing other features essential for educational
   541 % software.
   542 % 
   543 % \subsubsection{Generation of User Guidance in EMAs}\label{user-guid}
   544 % 
   545 % One essential feature for educational software is feedback to user
   546 % input and assistance in coming to a solution.
   547 % 
   548 % \paragraph{Checking user input} by ATP during stepwise problem solving
   549 % is being accomplished by the three projects mentioned above
   550 % exclusively. They model the whole problem solving process as mentioned
   551 % above, so all what happens between formalized assumptions (or formal
   552 % specification) and goal (or fulfilled postcondition) can be
   553 % mechanized. Such mechanization promises to greatly extend the scope of
   554 % educational software in stepwise problem solving.
   555 % 
   556 % \paragraph{NSG (Next step guidance)} comprises the system's ability to
   557 % propose a next step; this is a challenge for TP: either a radical
   558 % restriction of the search space by restriction to very specific
   559 % problem classes is required, or much care and effort is required in
   560 % designing possible variants in the process of problem solving
   561 % \cite{proof-strategies-11}.
   562 % \par
   563 % Another approach is restricted to problem solving in engineering
   564 % domains, where a problem is specified by input, precondition, output
   565 % and postcondition, and where the postcondition is proven by ATP behind
   566 % the scenes: Here the possible variants in the process of problem
   567 % solving are provided with feedback {\em automatically}, if the problem
   568 % is described in a TP-based programing language: \cite{plmms10} the
   569 % programmer only describes the math algorithm without caring about
   570 % interaction (the respective program is functional and even has no
   571 % input or output statements!); interaction is generated as a
   572 % side-effect by the interpreter --- an efficient separation of concern
   573 % between math programmers and dialog designers promising application
   574 % all over engineering disciplines.
   575 % 
   576 % 
   577 % \subsubsection{Math Authoring in Isabelle/ISAC\label{math-auth}}
   578 % Authoring new mathematics knowledge in {{\sisac}} can be compared with
   579 % ``application programing'' of engineering problems; most of such
   580 % programing uses CAS-based programing languages (CAS = Computer Algebra
   581 % Systems; e.g. Mathematica's or Maple's programing language).
   582 % 
   583 % \paragraph{A novel type of TP-based language} is used by {{\sisac}{}}
   584 % \cite{plmms10} for describing how to construct a solution to an
   585 % engineering problem and for calling equation solvers, integration,
   586 % etc~\footnote{Implementation of CAS-like functionality in TP is not
   587 % primarily concerned with efficiency, but with a didactic question:
   588 % What to decide for: for high-brow algorithms at the state-of-the-art
   589 % or for elementary algorithms comprehensible for students?} within TP;
   590 % TP can ensure ``systems that never make a mistake'' \cite{casproto} -
   591 % are impossible for CAS which have no logics underlying.
   592 % 
   593 % \subparagraph{Authoring is perfect} by writing such TP based programs;
   594 % the application programmer is not concerned with interaction or with
   595 % user guidance: this is concern of a novel kind of program interpreter
   596 % called Lucas-Interpreter. This interpreter hands over control to a
   597 % dialog component at each step of calculation (like a debugger at
   598 % breakpoints) and calls automated TP to check user input following
   599 % personalized strategies according to a feedback module.
   600 % \par
   601 % However ``application programing with TP'' is not done with writing a
   602 % program: according to the principles of TP, each step must be
   603 % justified. Such justifications are given by theorems. So all steps
   604 % must be related to some theorem, if there is no such theorem it must
   605 % be added to the existing knowledge, which is organized in so-called
   606 % \textbf{theories} in Isabelle. A theorem must be proven; fortunately
   607 % Isabelle comprises a mechanism (called ``axiomatization''), which
   608 % allows to omit proofs. Such a theorem is shown in
   609 % Example~\ref{eg:neuper1}.
   610 
   611 The running example, introduced by Fig.\ref{fig-interactive} on
   612 p.\pageref{fig-interactive}, requires to determine the inverse $\cal
   613 Z$-transform for a class of functions. The domain of Signal Processing
   614 is accustomed to specific notation for the resulting functions, which
   615 are absolutely summable and are called TODO: $u[n]$, where $u$ is the
   616 function, $n$ is the argument and the brackets indicate that the
   617 arguments are TODO. Surprisingly, Isabelle accepts the rules for
   618 ${\cal Z}^{-1}$ in this traditional notation~\footnote{Isabelle
   619 experts might be particularly surprised, that the brackets do not
   620 cause errors in typing (as lists).}:
   621 %\vbox{
   622 % \begin{example}
   623   \label{eg:neuper1}
   624   {\small\begin{tabbing}
   625   123\=123\=123\=123\=\kill
   626   \hfill \\
   627   \>axiomatization where \\
   628   \>\>  rule1: ``${\cal Z}^{-1}\;1 = \delta [n]$'' and\\
   629   \>\>  rule2: ``$\vert\vert z \vert\vert > 1 \Rightarrow {\cal Z}^{-1}\;z / (z - 1) = u [n]$'' and\\
   630   \>\>  rule3: ``$\vert\vert$ z $\vert\vert$ < 1 ==> z / (z - 1) = -u [-n - 1]'' and \\
   631 %TODO
   632   \>\>  rule4: ``$\vert\vert$ z $\vert\vert$ > $\vert\vert$ $\alpha$ $\vert\vert$ ==> z / (z - $\alpha$) = $\alpha^n$ $\cdot$ u [n]'' and\\
   633 %TODO
   634   \>\>  rule5: ``$\vert\vert$ z $\vert\vert$ < $\vert\vert$ $\alpha$ $\vert\vert$ ==> z / (z - $\alpha$) = -($\alpha^n$) $\cdot$ u [-n - 1]'' and\\
   635 %TODO
   636   \>\>  rule6: ``$\vert\vert$ z $\vert\vert$ > 1 ==> z/(z - 1)$^2$ = n $\cdot$ u [n]''\\
   637 %TODO
   638   \end{tabbing}
   639   }
   640 % \end{example}
   641 %}
   642 These 6 rules can be used as conditional rewrite rules, depending on
   643 the respective convergence radius. Satisfaction from accordance with traditional notation
   644 contrasts with the above word {\em axiomatization}: As TP-based, the
   645 programming language expects these rules as {\em proved} theorems, and
   646 not as axioms implemented in the above brute force manner; otherwise
   647 all the verification efforts envisaged (like proof of the
   648 post-condition, see below) would be meaningless.
   649 
   650 Isabelle provides a large body of knowledge, rigorously proven from
   651 the basic axioms of mathematics~\footnote{This way of rigorously
   652 deriving all knowledge from first principles is called the
   653 LCF-paradigm in TP.}. In the case of the Z-Transform the most advanced
   654 knowledge can be found in the theoris on Multivariate
   655 Analysis~\footnote{http://isabelle.in.tum.de/dist/library/HOL/HOL-Multivariate\_Analysis}. However,
   656 building up knowledge such that a proof for the above rules would be
   657 reasonably short and easily comprehensible, still requires lots of
   658 work (and is definitely out of scope of our case study).
   659 
   660 \paragraph{At the state-of-the-art in mechanization of knowledge} in
   661 engineering sciences, the process does not stop with the mechanization of
   662 mathematics traditionally used in these sciences. Rather, ``Formal Methods''~\cite{TODO-formal-methods}
   663 are expected to proceed to formal and explicit description of physical items.  Signal Processing,
   664 for instance is concerned with physical devices for signal acquisition
   665 and reconstruction, which involve measuring a physical signal, storing
   666 it, and possibly later rebuilding the original signal or an
   667 approximation thereof. For digital systems, this typically includes
   668 sampling and quantization; devices for signal compression, including
   669 audio compression, image compression, and video compression, etc.
   670 ``Domain engineering''\cite{db-domain-engineering} is concerned with
   671 {\em specification} of these devices' components and features; this
   672 part in the process of mechanization is only at the beginning in domains
   673 like Signal Processing.
   674 
   675 \subparagraph{TP-based programming, concern of this paper,} is determined to
   676 add ``algorithmic knowledge'' in Fig.\ref{fig:mathuni} on
   677 p.\pageref{fig:mathuni}.  As we shall see below, TP-based programming
   678 starts with a formal {\em specification} of the problem to be solved.
   679 
   680 
   681 \subsection{Specification of the Problem}\label{spec}
   682 %WN <--> \chapter 7 der Thesis
   683 %WN die Argumentation unten sollte sich NUR auf Verifikation beziehen..
   684 
   685 The problem of the running example is textually described in
   686 Fig.\ref{fig-interactive} on p.\pageref{fig-interactive}. The {\em
   687 formal} specification of this problem, in traditional mathematical
   688 notation, could look lik is this:
   689 
   690 %WN Hier brauchen wir die Spezifikation des 'running example' ...
   691 
   692 %JR Habe input, output und precond vom Beispiel eingefügt brauche aber Hilfe bei
   693 %JR der post condition - die existiert für uns ja eigentlich nicht aka
   694 %JR haben sie bis jetzt nicht beachtet
   695 
   696   \label{eg:neuper2}
   697   {\small\begin{tabbing}
   698   123,\=postcond \=: \= $\forall \,A^\prime\, u^\prime \,v^\prime.\,$\=\kill
   699   \hfill \\
   700   Specification:\\
   701     \>input    \>: filterExpression $X=\frac{3}{(z-\frac{1}{4}+-\frac{1}{8}*\frac{1}{z}}$\\
   702   \>precond  \>: filterExpression continius on $\mathbb{R}$ \\
   703   \>output   \>: stepResponse $x[n]$ \\
   704   \>postcond \>:{\small  $\;A=2uv-u^2 \;\land\; (\frac{u}{2})^2+(\frac{v}{2})^2=r^2 \;\land$}\\
   705   \>     \>\>{\small $\;\forall \;A^\prime\; u^\prime \;v^\prime.\;(A^\prime=2u^\prime v^\prime-(u^\prime)^2 \land
   706   (\frac{u^\prime}{2})^2+(\frac{v^\prime}{2})^2=r^2) \Longrightarrow A^\prime \leq A$} \\
   707   \end{tabbing}
   708   }
   709 
   710 And this is the implementation of the formal specification in the present
   711 prototype, still bar-bones without support for authoring:
   712 %WN Kopie von Inverse_Z_Transform.thy, leicht versch"onert:
   713 {\footnotesize
   714 \begin{verbatim}
   715    01  store_specification
   716    02    (prepare_specification
   717    03      ["Jan Rocnik"]
   718    04      "pbl_SP_Ztrans_inv"
   719    05      thy
   720    06      ( ["Inverse", "Z_Transform", "SignalProcessing"],
   721    07        [ ("#Given", ["filterExpression X_eq"]),
   722    08          ("#Pre"  , ["X_eq is_continuous"]),
   723    19          ("#Find" , ["stepResponse n_eq"]),
   724    10          ("#Post" , [" TODO "])],
   725    11        append_rls Erls [Calc ("Atools.is_continuous", eval_is_continuous)], 
   726    12        NONE, 
   727    13        [["SignalProcessing","Z_Transform","Inverse"]]));
   728 \end{verbatim}}
   729 Although the above details are partly very technical, we explain them
   730 in order to document some intricacies of TP-based programming in the
   731 present state of the {\sisac} prototype:
   732 \begin{description}
   733 \item[01..02]\textit{store\_specification:} stores the result of the
   734 function \textit{prep\_specification} in a global reference
   735 \textit{Unsynchronized.ref}, which causes principal conflicts with
   736 Isabelle's asyncronous document model~\cite{Wenzel-11:doc-orient} and
   737 parallel execution~\cite{Makarius-09:parall-proof} and is under
   738 reconstruction already.
   739 
   740 \textit{prep\_pbt:} translates the specification to an internal format
   741 which allows efficient processing; see for instance line {\rm 07}
   742 below.
   743 \item[03..04] are the ``mathematics author'' holding the copy-rights
   744 and a unique identifier for the specification within {\sisac},
   745 complare line {\rm 06}.
   746 \item[05] is the Isabelle \textit{theory} required to parse the
   747 specification in lines {\rm 07..10}.
   748 \item[06] is a key into the tree of all specifications as presented to
   749 the user (where some branches might be hidden by the dialog
   750 component).
   751 \item[07..10] are the specification with input, pre-condition, output
   752 and post-condition respectively; the post-condition is not handled in
   753 the prototype presently.
   754 \item[11] creates a term rewriting system (abbreviated \textit{rls} in
   755 {\sisac}) which evaluates the pre-condition for the actual input data.
   756 Only if the evaluation yields \textit{True}, a program con be started.
   757 \item[12]\textit{NONE:} could be \textit{SOME ``solve ...''} for a
   758 problem associated to a function from Computer Algebra (like an
   759 equation solver) which is not the case here.
   760 \item[13] is the specific key into the tree of programs addressing a
   761 method which is able to find a solution which satiesfies the
   762 post-condition of the specification.
   763 \end{description}
   764 
   765 
   766 %WN die folgenden Erkl"arungen finden sich durch "grep -r 'datatype pbt' *"
   767 %WN ...
   768 %  type pbt = 
   769 %     {guh  : guh,         (*unique within this isac-knowledge*)
   770 %      mathauthors: string list, (*copyright*)
   771 %      init  : pblID,      (*to start refinement with*)
   772 %      thy   : theory,     (* which allows to compile that pbt
   773 %			  TODO: search generalized for subthy (ref.p.69*)
   774 %      (*^^^ WN050912 NOT used during application of the problem,
   775 %       because applied terms may be from 'subthy' as well as from super;
   776 %       thus we take 'maxthy'; see match_ags !*)
   777 %      cas   : term option,(*'CAS-command'*)
   778 %      prls  : rls,        (* for preds in where_*)
   779 %      where_: term list,  (* where - predicates*)
   780 %      ppc   : pat list,
   781 %      (*this is the model-pattern; 
   782 %       it contains "#Given","#Where","#Find","#Relate"-patterns
   783 %       for constraints on identifiers see "fun cpy_nam"*)
   784 %      met   : metID list}; (* methods solving the pbt*)
   785 %
   786 %WN weil dieser Code sehr unaufger"aumt ist, habe ich die Erkl"arungen
   787 %WN oben selbst geschrieben.
   788 
   789 
   790 
   791 
   792 %WN das w"urde ich in \sec\label{progr} verschieben und
   793 %WN das SubProblem partial fractions zum Erkl"aren verwenden.
   794 % Such a specification is checked before the execution of a program is
   795 % started, the same applies for sub-programs. In the following example
   796 % (Example~\ref{eg:subprob}) shows the call of such a subproblem:
   797 % 
   798 % \vbox{
   799 %   \begin{example}
   800 %   \label{eg:subprob}
   801 %   \hfill \\
   802 %   {\ttfamily \begin{tabbing}
   803 %   ``(L\_L::bool list) = (\=SubProblem (\=Test','' \\
   804 %   ``\>\>[linear,univariate,equation,test],'' \\
   805 %   ``\>\>[Test,solve\_linear])'' \\
   806 %   ``\>[BOOL equ, REAL z])'' \\
   807 %   \end{tabbing}
   808 %   }
   809 %   {\small\textit{
   810 %     \noindent If a program requires a result which has to be
   811 % calculated first we can use a subproblem to do so. In our specific
   812 % case we wanted to calculate the zeros of a fraction and used a
   813 % subproblem to calculate the zeros of the denominator polynom.
   814 %     }}
   815 %   \end{example}
   816 % }
   817 
   818 \subsection{Implementation of the Method}\label{meth}
   819 %WN <--> \chapter 7 der Thesis
   820 TODO
   821 \subsection{Preparation of Simplifiers for the Program}\label{simp}
   822 TODO
   823 \subsection{Preparation of ML-Functions}\label{funs}
   824 %WN <--> Thesis 6.1 -- 6.3: jene ausw"ahlen, die Du f"ur \label{progr}
   825 %WN brauchst
   826 TODO
   827 \subsection{Implementation of the TP-based Program}\label{progr}
   828 %WN <--> \chapter 8 der Thesis
   829 TODO
   830 
   831 \section{Workflow of Programming in the Prototype}\label{workflow}
   832 %WN ``workflow'' heisst: das mache ich zuerst, dann das ...
   833 \subsection{Preparations and Trials}\label{flow-prep}
   834 \subsubsection{Trials on Notation and Termination}
   835 
   836 \paragraph{Technical notations} are a big problem for our piece of software,
   837 but the reason for that isn't a fault of the software itself, one of the
   838 troubles comes out of the fact that different technical subtopics use different
   839 symbols and notations for a different purpose. The most famous example for such
   840 a symbol is the complex number $i$ (in cassique math) or $j$ (in technical
   841 math). In the specific part of signal processing one of this notation issues is
   842 the use of brackets --- we use round brackets for analoge signals and squared
   843 brackets for digital samples. Also if there is no problem for us to handle this
   844 fact, we have to tell the machine what notation leads to wich meaning and that
   845 this purpose seperation is only valid for this special topic - signal
   846 processing.
   847 \subparagraph{In the programming language} itself it is not possible to declare
   848 fractions, exponents, absolutes and other operators or remarks in a way to make
   849 them pretty to read; our only posssiblilty were ASCII characters and a handfull
   850 greek symbols like: $\alpha, \beta, \gamma, \phi,\ldots$.
   851 \par
   852 With the upper collected knowledge it is possible to check if we were able to
   853 donate all required terms and expressions.
   854 
   855 \subsubsection{Definition and Usage of Rules}
   856 
   857 \paragraph{The core} of our implemented problem is the Z-Transformation, due
   858 the fact that the transformation itself would require higher math which isn't
   859 yet avaible in our system we decided to choose the way like it is applied in
   860 labratory and problem classes at our university - by applying transformation
   861 rules (collected in transformation tables).
   862 \paragraph{Rules,} in {\sisac{}}'s programming language can be designed by the
   863 use of axiomatizations like shown in Example~\ref{eg:ruledef}
   864 
   865 \begin{example}
   866   \label{eg:ruledef}
   867   \hfill\\
   868   \begin{verbatim}
   869   axiomatization where
   870     rule1: ``1 = $\delta$[n]'' and
   871     rule2: ``|| z || > 1 ==> z / (z - 1) = u [n]'' and
   872     rule3: ``|| z || < 1 ==> z / (z - 1) = -u [-n - 1]''
   873   \end{verbatim}
   874 \end{example}
   875 
   876 This rules can be collected in a ruleset and applied to a given expression as
   877 follows in Example~\ref{eg:ruleapp}.
   878 
   879 \begin{example}
   880   \hfill\\
   881   \label{eg:ruleapp}
   882   \begin{enumerate}
   883   \item Store rules in ruleset:
   884   \begin{verbatim}
   885   val inverse_Z = append_rls "inverse_Z" e_rls
   886     [ Thm ("rule1",num_str @{thm rule1}),
   887       Thm ("rule2",num_str @{thm rule2}),
   888       Thm ("rule3",num_str @{thm rule3})
   889     ];\end{verbatim}
   890   \item Define exression:
   891   \begin{verbatim}
   892   val sample_term = str2term "z/(z-1)+z/(z-</delta>)+1";\end{verbatim}
   893   \item Apply ruleset:
   894   \begin{verbatim}
   895   val SOME (sample_term', asm) = 
   896     rewrite_set_ thy true inverse_Z sample_term;\end{verbatim}
   897   \end{enumerate}
   898 \end{example}
   899 
   900 The use of rulesets makes it much easier to develop our designated applications,
   901 but the programmer has to be careful and patient. When applying rulesets
   902 two important issues have to be mentionend:
   903 \subparagraph{How often} the rules have to be applied? In case of
   904 transformations it is quite clear that we use them once but other fields
   905 reuqire to apply rules until a special condition is reached (e.g.
   906 a simplification is finished when there is nothing to be done left).
   907 \subparagraph{The order} in which rules are applied often takes a big effect
   908 and has to be evaluated for each purpose once again.
   909 \par
   910 In our special case of Signal Processing and the rules defined in
   911 Example~\ref{eg:ruledef} we have to apply rule~1 first of all to transform all
   912 constants. After this step has been done it no mather which rule fit's next.
   913 
   914 \subsubsection{Helping Functions}
   915 %get denom, argument in
   916 \subsubsection{Trials on equation solving}
   917 %simple eq and problem with double fractions/negative exponents
   918 
   919 
   920 \subsection{Implementation in Isabelle/{\isac}}\label{flow-impl}
   921 TODO Build\_Inverse\_Z\_Transform.thy ... ``imports Isac''
   922 
   923 \subsection{Transfer into the Isabelle/{\isac} Knowledge}\label{flow-trans}
   924 TODO http://www.ist.tugraz.at/isac/index.php/Extend\_ISAC\_Knowledge\#Add\_an\_example ?
   925 
   926 -------------------------------------------------------------------
   927 
   928 Das unterhalb hab' ich noch nicht durchgearbeitet; einiges w\"are 
   929 vermutlich auf andere sections aufzuteilen.
   930 
   931 -------------------------------------------------------------------
   932 
   933 \subsection{Formalization of missing knowledge in Isabelle}
   934 
   935 \paragraph{A problem} behind is the mechanization of mathematic
   936 theories in TP-bases languages. There is still a huge gap between
   937 these algorithms and this what we want as a solution - in Example
   938 Signal Processing. 
   939 
   940 \vbox{
   941   \begin{example}
   942     \label{eg:gap}
   943     \[
   944       X\cdot(a+b)+Y\cdot(c+d)=aX+bX+cY+dY
   945     \]
   946     {\small\textit{
   947       \noindent A very simple example on this what we call gap is the
   948 simplification above. It is needles to say that it is correct and also
   949 Isabelle for fills it correct - \emph{always}. But sometimes we don't
   950 want expand such terms, sometimes we want another structure of
   951 them. Think of a problem were we now would need only the coefficients
   952 of $X$ and $Y$. This is what we call the gap between mechanical
   953 simplification and the solution.
   954     }}
   955   \end{example}
   956 }
   957 
   958 \paragraph{We are not able to fill this gap,} until we have to live
   959 with it but first have a look on the meaning of this statement:
   960 Mechanized math starts from mathematical models and \emph{hopefully}
   961 proceeds to match physics. Academic engineering starts from physics
   962 (experimentation, measurement) and then proceeds to mathematical
   963 modeling and formalization. The process from a physical observance to
   964 a mathematical theory is unavoidable bound of setting up a big
   965 collection of standards, rules, definition but also exceptions. These
   966 are the things making mechanization that difficult.
   967 
   968 \vbox{
   969   \begin{example}
   970     \label{eg:units}
   971     \[
   972       m,\ kg,\ s,\ldots
   973     \]
   974     {\small\textit{
   975       \noindent Think about some units like that one's above. Behind
   976 each unit there is a discerning and very accurate definition: One
   977 Meter is the distance the light travels, in a vacuum, through the time
   978 of 1 / 299.792.458 second; one kilogram is the weight of a
   979 platinum-iridium cylinder in paris; and so on. But are these
   980 definitions usable in a computer mechanized world?!
   981     }}
   982   \end{example}
   983 }
   984 
   985 \paragraph{A computer} or a TP-System builds on programs with
   986 predefined logical rules and does not know any mathematical trick
   987 (follow up example \ref{eg:trick}) or recipe to walk around difficult
   988 expressions. 
   989 
   990 \vbox{
   991   \begin{example}
   992     \label{eg:trick}
   993   \[ \frac{1}{j\omega}\cdot\left(e^{-j\omega}-e^{j3\omega}\right)= \]
   994   \[ \frac{1}{j\omega}\cdot e^{-j2\omega}\cdot\left(e^{j\omega}-e^{-j\omega}\right)=
   995      \frac{1}{\omega}\, e^{-j2\omega}\cdot\colorbox{lgray}{$\frac{1}{j}\,\left(e^{j\omega}-e^{-j\omega}\right)$}= \]
   996   \[ \frac{1}{\omega}\, e^{-j2\omega}\cdot\colorbox{lgray}{$2\, sin(\omega)$} \]
   997     {\small\textit{
   998       \noindent Sometimes it is also useful to be able to apply some
   999 \emph{tricks} to get a beautiful and particularly meaningful result,
  1000 which we are able to interpret. But as seen in this example it can be
  1001 hard to find out what operations have to be done to transform a result
  1002 into a meaningful one.
  1003     }}
  1004   \end{example}
  1005 }
  1006 
  1007 \paragraph{The only possibility,} for such a system, is to work
  1008 through its known definitions and stops if none of these
  1009 fits. Specified on Signal Processing or any other application it is
  1010 often possible to walk through by doing simple creases. This creases
  1011 are in general based on simple math operational but the challenge is
  1012 to teach the machine \emph{all}\footnote{Its pride to call it
  1013 \emph{all}.} of them. Unfortunately the goal of TP Isabelle is to
  1014 reach a high level of \emph{all} but it in real it will still be a
  1015 survey of knowledge which links to other knowledge and {{\sisac}{}} a
  1016 trainer and helper but no human compensating calculator. 
  1017 \par
  1018 {{{\sisac}{}}} itself aims to adds \emph{Algorithmic Knowledge} (formal
  1019 specifications of problems out of topics from Signal Processing, etc.)
  1020 and \emph{Application-oriented Knowledge} to the \emph{deductive} axis of
  1021 physical knowledge. The result is a three-dimensional universe of
  1022 mathematics seen in Figure~\ref{fig:mathuni}.
  1023 
  1024 \begin{figure}
  1025   \begin{center}
  1026     \includegraphics{fig/universe}
  1027     \caption{Didactic ``Math-Universe'': Algorithmic Knowledge (Programs) is
  1028              combined with Application-oriented Knowledge (Specifications) and Deductive Knowledge (Axioms, Definitions, Theorems). The Result
  1029              leads to a three dimensional math universe.\label{fig:mathuni}}
  1030   \end{center}
  1031 \end{figure}
  1032 
  1033 %WN Deine aktuelle Benennung oben wird Dir kein Fachmann abnehmen;
  1034 %WN bitte folgende Bezeichnungen nehmen:
  1035 %WN 
  1036 %WN axis 1: Algorithmic Knowledge (Programs)
  1037 %WN axis 2: Application-oriented Knowledge (Specifications)
  1038 %WN axis 3: Deductive Knowledge (Axioms, Definitions, Theorems)
  1039 %WN 
  1040 %WN und bitte die R"ander von der Grafik wegschneiden (was ich f"ur *.pdf
  1041 %WN nicht hinkriege --- weshalb ich auch die eJMT-Forderung nicht ganz
  1042 %WN verstehe, separierte PDFs zu schicken; ich w"urde *.png schicken)
  1043 
  1044 %JR Ränder und beschriftung geändert. Keine Ahnung warum eJMT sich pdf's
  1045 %JR wünschen, würde ebenfalls png oder ähnliches verwenden, aber wenn pdf's
  1046 %JR gefordert werden...
  1047 
  1048 \subsection{Notes on Problems with Traditional Notation}
  1049 
  1050 \paragraph{During research} on these topic severely problems on
  1051 traditional notations have been discovered. Some of them have been
  1052 known in computer science for many years now and are still unsolved,
  1053 one of them aggregates with the so called \emph{Lambda Calculus},
  1054 Example~\ref{eg:lamda} provides a look on the problem that embarrassed
  1055 us.
  1056 
  1057 \vbox{
  1058   \begin{example}
  1059     \label{eg:lamda}
  1060 
  1061   \[ f(x)=\ldots\;  \quad R \rightarrow \quad R \]
  1062 
  1063 
  1064   \[ f(p)=\ldots\;  p \in \quad R \]
  1065 
  1066     {\small\textit{
  1067       \noindent Above we see two equations. The first equation aims to
  1068 be a mapping of an function from the reel range to the reel one, but
  1069 when we change only one letter we get the second equation which
  1070 usually aims to insert a reel point $p$ into the reel function. In
  1071 computer science now we have the problem to tell the machine (TP) the
  1072 difference between this two notations. This Problem is called
  1073 \emph{Lambda Calculus}.
  1074     }}
  1075   \end{example}
  1076 }
  1077 
  1078 \paragraph{An other problem} is that terms are not full simplified in
  1079 traditional notations, in {{\sisac}} we have to simplify them complete
  1080 to check weather results are compatible or not. in e.g. the solutions
  1081 of an second order linear equation is an rational in {{\sisac}} but in
  1082 tradition we keep fractions as long as possible and as long as they
  1083 aim to be \textit{beautiful} (1/8, 5/16,...).
  1084 \subparagraph{The math} which should be mechanized in Computer Theorem
  1085 Provers (\emph{TP}) has (almost) a problem with traditional notations
  1086 (predicate calculus) for axioms, definitions, lemmas, theorems as a
  1087 computer program or script is not able to interpret every Greek or
  1088 Latin letter and every Greek, Latin or whatever calculations
  1089 symbol. Also if we would be able to handle these symbols we still have
  1090 a problem to interpret them at all. (Follow up \hbox{Example
  1091 \ref{eg:symbint1}})
  1092 
  1093 \vbox{
  1094   \begin{example}
  1095     \label{eg:symbint1}
  1096     \[
  1097       u\left[n\right] \ \ldots \ unitstep
  1098     \]
  1099     {\small\textit{
  1100       \noindent The unitstep is something we need to solve Signal
  1101 Processing problem classes. But in {{{\sisac}{}}} the rectangular
  1102 brackets have a different meaning. So we abuse them for our
  1103 requirements. We get something which is not defined, but usable. The
  1104 Result is syntax only without semantic.
  1105     }}
  1106   \end{example}
  1107 }
  1108 
  1109 In different problems, symbols and letters have different meanings and
  1110 ask for different ways to get through. (Follow up \hbox{Example
  1111 \ref{eg:symbint2}}) 
  1112 
  1113 \vbox{
  1114   \begin{example}
  1115     \label{eg:symbint2}
  1116     \[
  1117       \widehat{\ }\ \widehat{\ }\ \widehat{\ } \  \ldots \  exponent
  1118     \]
  1119     {\small\textit{
  1120     \noindent For using exponents the three \texttt{widehat} symbols
  1121 are required. The reason for that is due the development of
  1122 {{{\sisac}{}}} the single \texttt{widehat} and also the double were
  1123 already in use for different operations.
  1124     }}
  1125   \end{example}
  1126 }
  1127 
  1128 \paragraph{Also the output} can be a problem. We are familiar with a
  1129 specified notations and style taught in university but a computer
  1130 program has no knowledge of the form proved by a professor and the
  1131 machines themselves also have not yet the possibilities to print every
  1132 symbol (correct) Recent developments provide proofs in a human
  1133 readable format but according to the fact that there is no money for
  1134 good working formal editors yet, the style is one thing we have to
  1135 live with.
  1136 
  1137 \section{Problems rising out of the Development Environment}
  1138 
  1139 fehlermeldungen! TODO
  1140 
  1141 \section{Conclusion}\label{conclusion}
  1142 
  1143 TODO
  1144 
  1145 \bibliographystyle{alpha}
  1146 \bibliography{references}
  1147 
  1148 \end{document}