Doc/Specify_Phase 1: first part copied from ThEdu'23 paper
authorwneuper <Walther.Neuper@jku.at>
Sat, 30 Dec 2023 17:52:03 +0100
changeset 607863b43cbacca0a
parent 60785 5b6bd5ae739b
child 60787 26037efefd61
Doc/Specify_Phase 1: first part copied from ThEdu'23 paper
src/Tools/isac/Doc/ROOT
src/Tools/isac/Doc/Specify_Phase/Specify_Phase.thy
src/Tools/isac/Doc/Specify_Phase/document/Screenshot-problemdef-running-expl.png
src/Tools/isac/Doc/Specify_Phase/document/coil-kernel-uv.png
src/Tools/isac/Doc/Specify_Phase/document/root.bib
src/Tools/isac/Doc/Specify_Phase/document/specification-complete.png
src/Tools/isac/Doc/Specify_Phase/document/specification-method.png
src/Tools/isac/Doc/Specify_Phase/document/specification-template.png
test/Tools/isac/Test_Isac.thy
test/Tools/isac/Test_Isac_Short.thy
     1.1 --- a/src/Tools/isac/Doc/ROOT	Sat Dec 30 16:49:50 2023 +0100
     1.2 +++ b/src/Tools/isac/Doc/ROOT	Sat Dec 30 17:52:03 2023 +0100
     1.3 @@ -22,6 +22,11 @@
     1.4    theories
     1.5      "Specify_Phase"
     1.6    document_files
     1.7 +    "coil-kernel-uv.png"
     1.8 +    "Screenshot-problemdef-running-expl.png"
     1.9 +    "specification-complete.png"
    1.10 +    "specification-method.png"
    1.11 +    "specification-template.png"
    1.12      "root.bib"
    1.13      "root.tex"
    1.14  
     2.1 --- a/src/Tools/isac/Doc/Specify_Phase/Specify_Phase.thy	Sat Dec 30 16:49:50 2023 +0100
     2.2 +++ b/src/Tools/isac/Doc/Specify_Phase/Specify_Phase.thy	Sat Dec 30 17:52:03 2023 +0100
     2.3 @@ -7,10 +7,732 @@
     2.4  
     2.5  text \<open>
     2.6  \chapter{Interactive Specification in an \isac-Calculation}
     2.7 +%#############################################################################
     2.8 +This is a copy of the submission to the post-proceedings of ThEdu'23
     2.9 +under the title \textit{``Interactive Formal Specification for Mathematical Problems of Engineers''} \footnote{
    2.10 +\url{https://static.miraheze.org/isacwiki/a/a0/Wneuper-3-adopt-post.pdf)}}.
    2.11 +Thus this chapter is preliminary, it will be supplemented and probably split
    2.12 +up in the following.
    2.13  
    2.14 -TODO
    2.15 +\section{Introduction} \label{sect:introduction}
    2.16 +%==============================================================================
    2.17 +Since its beginnings more than two decades ago the \sisac{} project strives for
    2.18 +a generally usable system for mathematics education, which might cover a major 
    2.19 +part of educational scenarios, posing and solving problems which can best be 
    2.20 +tackled by mathematical methods.
    2.21 +%
    2.22 +This paper presents the second part of a concise description of the prototype
    2.23 +that has been developed in the course of the project, the description of the
    2.24 +so-called specify-phase, while the first part describing the solve-phase is
    2.25 +already published \cite{wn:lucin-thedu20}.
    2.26 +
    2.27 +\medskip
    2.28 +The specify-phase first addresses the ``what to solve'', while the solve-phase 
    2.29 +addresses the ``how to solve'' later in the process of problem solving --- 
    2.30 +an important conceptual separation in
    2.31 +the education of engineers. In terms of computer mathematics the fist
    2.32 +phase concerns a transition from facts in the physical world (captured by
    2.33 +text or figures) to abstract notions of mathematics (mainly captured by
    2.34 +formulas). And in terms of educational science and psychology this first phase
    2.35 +concerns a transition from intuitive and associative human thinking to 
    2.36 +handling of abstract formal entities according to formal logic.
    2.37 +
    2.38 +A successful transition results in a ``formal specification'' (to be exactly
    2.39 +defined in \S\ref{ssec:urs-specify} Pt.\ref{UR:form-spec} on 
    2.40 +p.\pageref{UR:form-spec}), so the subsequent solve-phase resides
    2.41 +exclusively in the abstract area of computater mathematics, 
    2.42 +where Lucas-Interpretation \cite{wn:lucin-thedu20} is
    2.43 +able to automatically generate ``next step guidance'' \cite{gdaroczy-EP-13}
    2.44 +and reliable checks of logical correctness --- this paper, however, addresses the 
    2.45 +preceding phase, more challenging in terms of computer mathematics and in terms 
    2.46 +of psychology.
    2.47 +
    2.48 +The latter point will be touched on in this paper only by relating it here to
    2.49 +recent advances in Artifical Intelligence, where ChatCPT for instance, 
    2.50 +achieved great public attention, even among computer mathematicians
    2.51 +\cite{bb-ChatCPT-2023}. A software, which given a textual description
    2.52 +of mathematical problems is able to convincingly reason about relevant facts,
    2.53 +to react to supplementary remarks and even come up with a solution for the problem
    2.54 +\emph{and is able to justify the solution} --- doesn't it outperform software
    2.55 +of formal mathematics, in particular, might it outperform the \sisac{} prototype?
    2.56 +%
    2.57 +In spite of this serious question, the present step of development in the \sisac{} 
    2.58 +project continues to build the prototype solely upon the proof assistant Isabelle
    2.59 +\cite{LCF-to-Isabelle-HOL:2019}. Presently without systematic experiments and 
    2.60 +detailed examination, the 
    2.61 +\sisac{} project is aware, that integrations of AI technologies and formal
    2.62 +mathematics are a vivid research topic (see, for instance, 
    2.63 +\cite{benzmuller-2021.7,jamnik-2023.2}). And the description of our
    2.64 +conservative approach contains hints at a ``dialog guide'' and a ``user model'',
    2.65 +which will be necessary to adapt the power of the \sisac{} protoype (and system,
    2.66 +sooner or later) to the needs of the user, the student -- and in such future
    2.67 +development the \sisac{} project will come back to AI.
    2.68 +
    2.69 +\medskip
    2.70 +The present description, of how the \sisac{} prototype handles the specify-phase, is
    2.71 +partly a position paper in that it omits the justification for user requirements
    2.72 +(already published in \cite{imst-htl07,imst-htl06,imst-hpts08}) and not even 
    2.73 +evaluates them (which shall be more informative in a broader educational 
    2.74 +setting in the future). And partly the description reports technical details
    2.75 +how design and implementation attempts to realise these requirements; 
    2.76 +a secondary objective of the description is to motivate the reuse of generic tools for 
    2.77 +language definition in proof assistants and their rich pool of software 
    2.78 +components for formal mathematics and also their front-ends ---
    2.79 +and \emph{not} to re-invent the wheel again and again in educational math 
    2.80 +software development.
    2.81 +
    2.82 +The paper has another special feature, the lack of related work ---
    2.83 +because there seems none to be to the best knowledge of the author. The ThEdu
    2.84 +workshop series were
    2.85 +founded to promote activities for the creation of software generally useful for 
    2.86 +mathematics education. There have been notable successes with geometry software 
    2.87 +and software to teach mechanical reasoning in academia, but software to support 
    2.88 +learning in the most general education settings, maths problem solving,
    2.89 +still does not exist.
    2.90 +
    2.91 +\medskip
    2.92 +There is an actual reason for writing this paper now: It became apparent
    2.93 +that the Java-based front-end of the \sisac{} prototype cannot catch up with recent development
    2.94 +of front-ends in mathematics software: proof assistants make semantic 
    2.95 +information transparent to the user, they make formulas a door
    2.96 +open for a great portion of mathematics knowledge just by mouse-click.
    2.97 +So this lead to the hard decision to drop the Java-based front-end, 
    2.98 +i.e. about thirty valuable student projects
    2.99 +\footnote{\url{https://isac.miraheze.org/wiki/Credits}} and to start
   2.100 +shifting \sisac's code in between Isabelle's proof machinery and Isabelle's
   2.101 +upcoming new front-end Isabelle/VSCode.
   2.102 +The first step in this shift is additionally motivated by a lucky technical 
   2.103 +coincidence: Isabelle's formulas (terms, in respective diction) are \emph{linear}
   2.104 +sequences of (very specific) characters -- and so are formulas on the Braille
   2.105 +display\footnote{\url{https://en.wikipedia.org/wiki/Refreshable_braille_display}}.
   2.106 +Thus \sisac{} engages in the ``A-I-MAWEN'' project aiming at an 
   2.107 +\textbf{A}ccessible \footnote{\url{https://en.wikipedia.org/wiki/Accessibility}}
   2.108 +and \textbf{I}nclusive\footnote{\url{https://en.wikipedia.org/wiki/Inclusion_(education)}}
   2.109 +\textbf{Ma}thematics \textbf{W}orking \textbf{En}vironment
   2.110 +taking advantage from VSCode's accessibility features; and Isabelle enjoys 
   2.111 +collaboration on its upcoming new new front-end \cite{mawen-23,IsaWS-22}.
   2.112 +
   2.113 +\paragraph{The paper is organised as follows.} 
   2.114 +After the introduction first come user requirements, as clarified in the
   2.115 +\sisac{} project. The requirements are partitioned in general ones in 
   2.116 +\S\ref{ssec:urs-gerneral} and ones addressing the specify-phase in 
   2.117 +\S\ref{ssec:urs-specify}. 
   2.118 +
   2.119 +After a definition of ``formal specification'' the design of interaction 
   2.120 +in the specify-phase
   2.121 +is described by use of a running example given in \S\ref{ssec:running-expl}. 
   2.122 +\S\ref{ssec:formalise} describes the transition from text and
   2.123 +figures into formal mathematics, \S\ref{ssec:variants} turns to the most 
   2.124 +essential features, freedom in input and freedom to pursuevariants in 
   2.125 +problem solving. \S\ref{ssec:interactivity} shows, what kinds of feedback can
   2.126 +be given in the specify-phase. And \S\ref{ssec:auto-spec} addresses problem-refinement,
   2.127 +a particularly sketchy part in the \sisac{} prototype. The final section
   2.128 +\S\ref{ssec:solve-phase} concerns the transition from the specify-phase to the 
   2.129 +solve-phase. 
   2.130 +
   2.131 +\medskip
   2.132 +Since the paper also wants to advertise the generic tools of proof assistants
   2.133 +for defining new input languages, in particular the tools of Isabelle, the
   2.134 +section on implementation is detailed as follows. 
   2.135 +\S\ref{ssec:outer-syntax} shows how elegantly \sisac's input language for
   2.136 +the specify-phase can be 
   2.137 +implemented in Isabelle/Isar, \S\ref{ssec:interaction} goes into detail with
   2.138 +handling semantics of the input. Analogously to the solve-phase also the
   2.139 +specify-phase is organised in steps introduced in \S\ref{ssec:stepwise}.
   2.140 +A specific detail is refinement of equations discussed in \S\ref{ssec:refine}.
   2.141 +\S\ref{ssec:efficiency} addresses efficiency considerations and finally
   2.142 +in \S\ref{ssec:preconds} preconditions are described, which require evaluation
   2.143 +by rewriting.
   2.144 +\S\ref{sect:conclusion} gives a brief summary and concludes the paper.
   2.145 +
   2.146 +
   2.147 +
   2.148 +\section{User Requirements} \label{sect:user-requirements}
   2.149 +%==============================================================================
   2.150 +\sisac{} aims at an educational software and so design and development started
   2.151 +with analysing the requirements, which a student places on the system when 
   2.152 +using it according to the introduction.
   2.153 +The requirements capture and requirements analysis in the \sisac{} project
   2.154 +\footnote{\url{https://isac.miraheze.org/wiki/History}}
   2.155 +are already published in \cite{imst-htl07,imst-htl06,imst-hpts08}.
   2.156 +Here the requirements
   2.157 +\footnote{This list will go into the \sisac{} documentation and
   2.158 +supersedes the old documentation \cite{isac:all}}.
   2.159 +are kept as short as possible, are restricted to the specify-phase
   2.160 +and serve to introduce the system features from the users point of view;
   2.161 +the descriptions of respective implementation details
   2.162 +in \S\ref{sect:design} justify the requirements more or less explicitly by 
   2.163 +backward references. However, first come some general considerations.
   2.164 +
   2.165 +\subsection{Foundational axioms about User Requirements}\label{ssec:urs-gerneral}
   2.166 +%------------------------------------------------------------------------------
   2.167 +\sisac's decision to build software on top of reasoning technology -- for maths 
   2.168 +education at high school and academic engineering courses, this decision is 
   2.169 +novel and opens up novel educational settings.
   2.170 +The efficiency of these setting shall be researched thoroughly. As soon as
   2.171 +tracing data\footnote{There 
   2.172 +are good experiences with logging user-interaction in \sisac{} \cite{fkober-bakk}}
   2.173 +from the interaction with such tools become available, interesting
   2.174 +discussions in educational research of mathematics education can be expected.
   2.175 +
   2.176 +
   2.177 +Until then the following requirements are considered as abstract and so far from 
   2.178 +concrete usability testing that these requirements are stated as axioms,
   2.179 +axioms advocating software models to learn by interaction, \emph{not} to
   2.180 +learn by a teachers explanation primarily:
   2.181 +
   2.182 +\begin{itemize}
   2.183 +\item\textbf{A complete model of mathematics} shall comprise all software tools
   2.184 +required to solve a problem at hand, such that a student need not switch 
   2.185 +between different software applications: the problem statement, the textbook with
   2.186 +background theory and explanation, the formulary, probably another textbook
   2.187 +with a boilerplate for solving the problem at hand, and last not least an electronic
   2.188 +notebook for interactive construction of a solution for the problem.
   2.189 +
   2.190 +\item\textbf{A transparent model of mathematics} shall be open for all kinds of
   2.191 +inquiry of the underlying maths knowledge: What data is required to probably
   2.192 +describe a given problem? What is required as input, what is expected as output?
   2.193 +What are the types of the respective data types? What are the constraints 
   2.194 +(preconditions) on the input? What pattern does the problem at hand match, 
   2.195 +what are similar problems? And at the transition to the solve-phase there
   2.196 +are further questions to be answered by the system: Which methods could be
   2.197 +appropriate for finding a solution? Etc.
   2.198 +
   2.199 +\item\label{axiom:stepwise-inter}\textbf{An interactive model of mathematics} 
   2.200 +shall support step-wise construction of a solution to a given problem. 
   2.201 +Each step is checked for correctness and justified according to the above 
   2.202 +axiom of ``transparency''.
   2.203 +So interaction follows the principle of ``correct by construction''.
   2.204 +\end{itemize}
   2.205 +
   2.206 +\noindent
   2.207 +\sisac's basic design is not embossed to mimic a human lecturer or teacher,
   2.208 +rather the student shall learn independently from a software model, which 
   2.209 +clearly represents an essence of mathematics. 
   2.210 +In fact, if mathematics is the ``science to mechanise thinking'' (Bruno Buchberger
   2.211 +\footnote{\url{https://en.wikipedia.org/wiki/Bruno_Buchberger}}), then this
   2.212 +science is most appropriate one to be modelled on computers, essentials can
   2.213 +be best studied there and prover technologies provide the most
   2.214 +powerful tools \cite{EPTCS290.6} for developing tools, which give justifications
   2.215 +and explanations.
   2.216 +
   2.217 +Experiences with \sisac{} indicate that the hint of ``mechanises thinking''
   2.218 +is helpful for students at any age, helpful to chase the omnipresent suspicion that
   2.219 +mathematics is magic. Just watch a power user of a proof assistant, how she or 
   2.220 +he plays around with text snippets in order to find solutions (after a coarse
   2.221 +idea of a subject matter or a proof has become clear).
   2.222 +
   2.223 +\subsection{User Requirements focusing Specify-Phase} \label{ssec:urs-specify}
   2.224 +%------------------------------------------------------------------------------
   2.225 +Now, what follows are the requirements which serve to pass the specify-phase 
   2.226 +successfully, to come from human imagination of a problem (triggered by an
   2.227 +informal text or a figure or whatever) to a formal representation, appropriate
   2.228 +to be tackled within software.
   2.229 +
   2.230 +\begin{enumerate}
   2.231 +\item As an educational software \sisac{} must be \textbf{intuitive} such that a 
   2.232 +newbie can easily learn to use the system by interacting with trial and error.
   2.233 +
   2.234 +\item\label{UR:form-spec} The system ensures ``correctness by construction''
   2.235 +when given a \textbf{formal specification} (definition):
   2.236 +%\begin{definition}
   2.237 +Two lists of terms are given, input $\it{in}$ and output $\it{out}$. 
   2.238 +And given are two predicates: The precondition $\it{Pre}\;(\it{in})$ constrains 
   2.239 +the elements of the input to reasonable values. The postcondition
   2.240 +$\it{Post}\;(\it{in},\,\it{out})$ relates input and output 
   2.241 +(and thus characterises the kind of problem).
   2.242 +%\end{definition}
   2.243 +
   2.244 +\medskip
   2.245 +This definition is according to \cite{gries} and restricts the kind of problems 
   2.246 +accepted by the system.
   2.247 +
   2.248 +\item\label{UR:next-step}If a student gets stuck, the system can 
   2.249 +\textbf{propose a next step}, i.e. a single element of the specification,
   2.250 +which is still missing (equivalent to Lucas-Interpretation \cite{wn:lucin-thedu20}).
   2.251 +
   2.252 +\item\label{UR:types} \sisac{} tries to raise students awareness of different
   2.253 +operational power in different number ranges (e.g. in the complex numbers
   2.254 +each polynomial has roots, in the real numbers it may have none).
   2.255 +Thus it \textbf{restricts Isabelle's contexts to 
   2.256 +particular theories}, for instance to \texttt{Int.thy}, to \texttt{Real.thy} or 
   2.257 +to \texttt{Complex.thy}.
   2.258 +
   2.259 +\item\label{UR:model} \textbf{No need for formal logic}:
   2.260 +The formal specification of a problem must be 
   2.261 +comprehensible for students in an academic course in engineering disciplines 
   2.262 +(and also at high school) without any instruction in formal logic. So a 
   2.263 +\emph{Specification} is given by \emph{Given} (the input according to 
   2.264 +Pt.\ref{UR:form-spec}), 
   2.265 +\emph{Where} (the precondition) and \emph{Find} (the output, i.e. the solution
   2.266 +of the problem) and \emph{Relate} (to be described in the next point).
   2.267 +
   2.268 +\item\label{UR:relate}\textbf{\emph{Relate}} captures essential parts of the postcondition
   2.269 +such that the description avoids logical operators (like $\exists$,
   2.270 +$\forall$, $\land$, $\lor$ etc) according to requirement \UR\ref{UR:model}. 
   2.271 +This is a crucial design decision of \sisac{} which will be illustrated 
   2.272 +by the running example.
   2.273 +
   2.274 +\item\label{UR:variants}In general, mathematical problems can be solved in many 
   2.275 +ways. Thus a \emph{Specification} must be  \textbf{open for variants} which are 
   2.276 +handled within one and the same process of solving the problem. The running 
   2.277 +example (\S\ref{ssec:variants} below) illustrates three variants.
   2.278 +
   2.279 +\item\label{UR:template} The transition from an informal problem description, 
   2.280 +given by text and by figures, to the formal specification must not be 
   2.281 +overstrained by \textbf{issues of formal notation}. The problem is well-known from 
   2.282 +educational use of algebra systems \cite{fuchs:algebra-sys}. Thus \sisac{} will 
   2.283 +give the following templates for the respective types (examples are given in 
   2.284 +Fig.\ref{fig:specification-template} below):
   2.285 +\begin{itemize}
   2.286 +\item $[$\_\_=\_\_, \_\_=\_\_$]$ for lists of equalities,
   2.287 +  for example ${\it Constants }\,[a=1, b=2]$
   2.288 +\item $[$\_\_, \_\_$]$ for lists of elements without $=$,
   2.289 +  for example ${\it AdditionalValues }\,[a, b, c]$
   2.290 +\item "\_\_" for theories (as strings),
   2.291 +  for example ${\it Theory\_Ref}\;{\it"Diff\_App"}$
   2.292 +\item "\_\_/\_\_" for string lists,
   2.293 +  for example ${\it Problem\_Ref}\;{\it"univariate\_calculus/optimisation"}$
   2.294 +\item \_\_ for arbitrary input (not involving the above cases),
   2.295 +  for example ${\it Maximum\;A}$.
   2.296 +\end{itemize}
   2.297 +
   2.298 +\item\label{UR:toggle-problem-method} Within the \emph{Specification} the
   2.299 +\textbf{\emph{Model} serves two purposes}: for the \emph{Problem\_Ref} it shows
   2.300 +the fields from \emph{Given} to \emph{Relate} according to Pt.\ref{UR:model}
   2.301 +and for \emph{Method\_Ref} it shows the guard of the program guiding
   2.302 +the \emph{Solution}; for details see \cite{wn:lucin-thedu20}. A
   2.303 +toggle switches between the two purposes (in the examples below indicated by 
   2.304 +$\otimes$ and $\odot$, the former for activation and the latter for idle).
   2.305 + 
   2.306 +\item\label{UR:toggle}The \textbf{specify-phase can be skipped} on predefined
   2.307 +settings. This requirement is more important than it seems: \sisac{} may be 
   2.308 +not only be used for solving new problems, but also for exercising \emph{known}
   2.309 +problems, for instance differentiation. In that case \emph{Specification} 
   2.310 +will be folded in such that the solve-phase will be started immediately 
   2.311 +by \emph{Solution}.
   2.312 + 
   2.313 +\item\label{UR:complete}A \emph{Specification} \textbf{can be completed} automatically
   2.314 +(by pushing a button or the like), in case a student wants to enter the solve-phase 
   2.315 +right now (and in case the course designer allows to do so by the predefined
   2.316 +settings).
   2.317 + 
   2.318 +\item\label{UR:refine}In equation solving the system can \textbf{assist in finding an 
   2.319 +appropriate type of equation}. That means, in this special case the system
   2.320 +is capable of problem refinement (which is under ongoing research on more
   2.321 +general problem types). The user requests this assistance by easy-going means
   2.322 +(by pushing a button or the like).
   2.323 +
   2.324 +\item\label{UR:feedback}There is the following \textbf{feedback on a 
   2.325 +specification's elements}, indicated at the appropriate location of the 
   2.326 +respective element on screen:
   2.327 +  \begin{itemize}
   2.328 +  \item \textbf{Correct}: There is probably no specific indication.
   2.329 +  \item \textbf{Syntax}: This feedback can be necessary, if the user
   2.330 +    switches the \emph{Model} suddenly from \emph{Problem\_Ref} to
   2.331 +  \emph{Method\_Ref} or vice versa, see \UR\ref{UR:toggle-problem-method}
   2.332 +  \item \textbf{Incomplete}: Input is incomplete, in particular elements
   2.333 +    of type list.
   2.334 +  \item \textbf{Superfluous}: An input can be syntactically correct, but have no
   2.335 +    evident relation to the problem at hand.
   2.336 +  \end{itemize}
   2.337 +
   2.338 +%\item TODO
   2.339 +%\item TODO
   2.340 +\end{enumerate}
   2.341 +
   2.342 +\noindent
   2.343 +These user requirements evolved alongside two decades of development in the
   2.344 +\sisac{} project, which was close to educational practice all the time due to
   2.345 +%ref.2: confusing ^v^v^
   2.346 +the involved persons; and the requirements have been checked in several field
   2.347 +tests \cite{imst-htl07,imst-htl06,imst-hpts08}.
   2.348 +
   2.349 +The requirements raise a lot of questions with respect to detailed
   2.350 +software design. Some of the questions will be clarified alongside presenting
   2.351 +the running example in \S\ref{sect:design} below.
   2.352 +
   2.353 +
   2.354 +\section{Design of the Specify-Phase} \label{sect:design}
   2.355 +%==============================================================================
   2.356 +In the specify-phase a student interactively constructs a formal specification 
   2.357 +(definition
   2.358 +in \S\ref{ssec:urs-specify} Pt.\ref{UR:form-spec} on p.\pageref{UR:form-spec}),
   2.359 +which then enables Lucas-Interpretation \cite{wn:lucin-thedu20} to 
   2.360 +automatically generate user guidance.
   2.361 +The concept of formal specification involves logic, which is not taught at
   2.362 +many engineering faculties (and not at all at high school), however.
   2.363 +Thus, according to \S\ref{ssec:urs-specify} requirement no.\ref{UR:form-spec} 
   2.364 +on p.\pageref{UR:form-spec}, respective logic is hidden from the user; 
   2.365 +for explaining that approach we use a running example.
   2.366 +
   2.367 +\subsection{A Running Example} \label{ssec:running-expl}
   2.368 +%------------------------------------------------------------------------------
   2.369 +The running example is re-used from \cite{mawen-23}: There it was used to 
   2.370 +illustrate what has been achieved in the old prototype and what is
   2.371 +\emph{planned} for developing a ``mathematical working environment'', whereas in
   2.372 +this paper the example is used to explain the design and implementation
   2.373 +of the part of the prototype supporting the specify-phase.\\
   2.374 +
   2.375 +\begin{minipage}[c]{0.55\textwidth}
   2.376 +% first column
   2.377 +\textit{
   2.378 +The efficiency of an electrical coil depends on the mass of the kernel. 
   2.379 +Given is a kernel with cross-sectional area, determined by two rectangles of
   2.380 +the same shape as shown in the figure.\\
   2.381 +Given a radius $r=7$, determine the length~$u$ and width~$v$ of the rectangles
   2.382 +such that the cross-sectional area~$A$  (and thus the mass of the kernel) is a 
   2.383 +maximum.}\\
   2.384 +\end{minipage}
   2.385 +\hfill
   2.386 +%second column
   2.387 +\begin{minipage}{0.45\textwidth}
   2.388 +  \includegraphics[width=0.55\textwidth]{coil-kernel-uv.png}\\
   2.389 +\end{minipage}
   2.390 +In ancient times this kind of example belonged to a well-established class of
   2.391 +examples at the end of the mathematics curriculum at German speaking Gymnasiums, 
   2.392 +``Extremwertaufgaben''. Nowadays it can be found in text books for electrical
   2.393 +engineering.
   2.394 +
   2.395 +\subsection{Formalisation of Problems and Authoring} \label{ssec:formalise}
   2.396 +%------------------------------------------------------------------------------
   2.397 +In order to meet \UR\ref{UR:next-step} it is necessary to prepare data for
   2.398 +each example, where automated generation of user guidance is desired 
   2.399 +\cite{wn:lucas-interp-12}. Classes of examples are collected to \textit{Problem}s; 
   2.400 +this conforms with teaching experience:
   2.401 +certain classes focus on certain problem patterns, which are
   2.402 +explained and exercised by more or less different examples.
   2.403 +%ref.2: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ confusing
   2.404 +
   2.405 +Most of the lecturers and teachers want to expose their \emph{personal} collection of 
   2.406 +exercises to their students; so lecturers should be enabled to implement these
   2.407 +independently in the system, without further expertise -- so \emph{authoring for
   2.408 +lecturers} needs to be supported eventually for type \texttt{Formalise.T}
   2.409 +below. However, the implementation of problem patterns \texttt{Model\_Pattern.T} 
   2.410 +involves specific knowledge in computer mathematics -- 
   2.411 +so \emph{maths authoring} needs to be supported in addition, eventually.
   2.412 +%ref.2: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ repetitive/ confusing
   2.413 +``Maths authors'' might be lecturers of specific academic courses, 
   2.414 +book authors and others.
   2.415 +
   2.416 +%ref.2:-----------vvvvvvvvvv what distinction?
   2.417 +According to this distinction there are the following two data-types
   2.418 +\footnote{We adapt ML \cite{pl:milner97} syntax for readability purposes: 
   2.419 +instead of "type T in structure Formalise" we write "Formalise.T". "(*" and "*)" 
   2.420 +enclose comments, which are outside ML syntax. The numbers on the left margin 
   2.421 +serve referencing and do not belong to the ML code.}:
   2.422 +
   2.423 +\begin{small}
   2.424 +\begin{verbatim}
   2.425 +  01  type Formalise.T = model * refs;
   2.426 +\end{verbatim}
   2.427 +\end{small}
   2.428 +\label{src:model-pattern}
   2.429 +\begin{small}
   2.430 +\begin{verbatim}
   2.431 +  01  type Model_Pattern.T =
   2.432 +  02    (m_field *        (* field "Given", "Find", "Relate"   *)
   2.433 +  03      (descriptor *   (* for term                          *)
   2.434 +  04        term))        (* identifier for instantiating term *)
   2.435 +  05    list;
   2.436 +  06  (*does NOT contain preconditions "Where"; these have no descriptor*)
   2.437 +\end{verbatim}
   2.438 +\end{small}
   2.439 +
   2.440 +The \texttt{type Formalise.T} consists of a (preparatory form of) model and
   2.441 +\texttt{refs}; the latter are explained below in \S\ref{ssec:solve-phase}.
   2.442 +\texttt{Model\_Pattern.T} is designed according to \UR\ref{UR:model}. 
   2.443 +Each \texttt{term}
   2.444 +is accompanied by a \texttt{descriptor}, which informs the user about what
   2.445 +is requested from him to input. Pairs of \texttt{(descriptor * term)} are
   2.446 +assigned to \texttt{m\_field}s according to \UR\ref{UR:model}.
   2.447 +The special values for the running example
   2.448 +are as follows, where the \texttt{descriptor}s are \texttt{Constants},
   2.449 +\texttt{Maximum}, \texttt{AdditionalValues}, \texttt{Extremum},
   2.450 +\texttt{SideConditions}, \texttt{FunctionVariable}, \texttt{Domain}
   2.451 +and \texttt{ErrorBound}:
   2.452 +
   2.453 +\begin{small}
   2.454 +\begin{verbatim}
   2.455 +  01  val demo_example = ("The efficiency of an electrical coil depends on the mass of the kernel. Given is a kernel with cross-sectional area determined by two rectangles of same shape as shown in the figure. Given a radius r = 7, determine the length u and width v of the rectangles such that the cross-sectional area A (and thus the mass of the kernel) is a maximum. + Figure", 
   2.456 +  02     ([
   2.457 +  03     (*Problem model:*)
   2.458 +  04       "Constants [r = (7::real)]", "Maximum A", "AdditionalValues [u, v]",
   2.459 +  05       "Extremum (A = 2 * u * v - u \<up> 2)",
   2.460 +  06       "SideConditions [((u::real) / 2) \<up> 2 + (v / 2) \<up> 2 = r \<up> 2]",
   2.461 +  07       "SideConditions [(u::real) / 2 = r * sin \<alpha>, v / 2 = r * cos \<alpha>]",
   2.462 +  08     (*MethodC model:*)
   2.463 +  09       "FunctionVariable u", "FunctionVariable v",
   2.464 +  10       "FunctionVariable \<alpha>",
   2.465 +  11       "Domain {0 <..< r}",
   2.466 +  12       "Domain {0 <..< \<pi> / 2}",
   2.467 +  13       "ErrorBound (\<epsilon> = (0::real))"]: TermC.as_string list,
   2.468 +  14      ("Diff_App", ["univariate_calculus", "Optimisation"], 
   2.469 +  15        ["Optimisation", "by_univariate_calculus"]): References.T)): Formalise.T
   2.470 +\end{verbatim}\label{src:demo-expl}
   2.471 +\end{small}
   2.472 +The text in line \texttt{01} exceeds the line limit, it has already been
   2.473 +shown with the problem statement of the running example in \S\ref{ssec:running-expl}.
   2.474 +The reader may be surprised by the multiple entries for the descriptors
   2.475 +\texttt{SideConditions}, \texttt{FunctionVariable} and \texttt{Domain};
   2.476 +this is due to \emph{variants} introduced in \S\ref{ssec:variants} below  ---
   2.477 +this representation of variants is considered intermediate, it was easy 
   2.478 +to implement and will be up to further refinement. The lines \texttt{14} and 
   2.479 +\texttt{15} represent the \texttt{refs} introduced above in \texttt{Formalise.T}
   2.480 +and explained in \S\ref{ssec:solve-phase} below.
   2.481 +The attentive reader will also notice that the items of the example's \texttt{model}
   2.482 +are not assigned to an \texttt{m\_field}
   2.483 +(line \texttt{02} on p.\pageref{src:model-pattern}), rather the
   2.484 +\texttt{descriptor} is the means to relate items between different data 
   2.485 +structures, in this case between \texttt{Formalise.model} and the 
   2.486 +\texttt{problem} below defining the running example:
   2.487 +\begin{small}
   2.488 +\begin{verbatim}
   2.489 +  01  problem pbl_opti_univ : "univariate_calculus/Optimisation" =
   2.490 +  02    \<open>eval_rls\<close> (*for evaluation of 0 < r*)
   2.491 +  03    Method_Ref: "Optimisation/by_univariate_calculus"
   2.492 +  04    Given: "Constants fixes"
   2.493 +  05    Where: "0 < fixes"
   2.494 +  06    Find: "Maximum maxx" "AdditionalValues vals"
   2.495 +  07    Relate: "Extremum extr" "SideConditions sideconds"
   2.496 +\end{verbatim}\label{problem}
   2.497 +\end{small}
   2.498 +The above \texttt{problem} assigns the elements of the model (in \sisac{} we 
   2.499 +call an element of a model an \emph{item} in order not to confuse with 
   2.500 +\emph{elements} of lists or sets) to a respective \texttt{m\_field}. 
   2.501 +As already mentioned, the assignment is done via \texttt{descriptor}s accompanied with 
   2.502 +place-holders (\texttt{fixes}, \texttt{maxx}, etc; see line \texttt{03}
   2.503 +in \texttt{type Model\_Pattern.T} on p.\pageref{src:model-pattern}) -- these are instantiated
   2.504 +on the fly with values of the concrete example selected by the user.
   2.505 +
   2.506 +It is the task of a mathematics author to decide the structure
   2.507 +of the model such that it covers an appropriate collection of examples,
   2.508 +where a respective \texttt{Model\_Pattern.T} of a \texttt{problem} is 
   2.509 +instantiated for several examples by values of a \texttt{Formalise.T}.
   2.510 +For instantiation of the model for a \texttt{problem} an environment is 
   2.511 +required, for instance for the \texttt{demo\_example} the environment
   2.512 +\label{env-subst}
   2.513 +\begin{small}
   2.514 +\begin{tabbing}
   2.515 +12345\=$[$x\=$($\kill
   2.516 +\>[\>$("fixes", \;[r = 7]), \;\;("maxx", \;A), \;\;("vals", \;[u, v]),$\\
   2.517 +\> \>$("extr", \;(A = 2 * u * v - u \uparrow 2)), \;\;       
   2.518 +   ("sideconds", \;[(u / 2) \uparrow 2 + (v / 2) \uparrow 2 = r \uparrow 2])$\\
   2.519 +\>]
   2.520 +\end{tabbing}
   2.521 +\end{small}
   2.522 +is required.
   2.523 +
   2.524 +Another reason for this late assignment is that one and the same item may
   2.525 +belong to \texttt{m\_field} \texttt{Relate} for a problem but to \texttt{Given}
   2.526 +for a \texttt{method}, see \S\ref{ssec:solve-phase}.
   2.527 +Finally it may be remarked that the identifier 
   2.528 +\texttt{"univariate\_calculus/Optimisation"} can be found in a more 
   2.529 +convenient format already on p.\pageref{src:demo-expl} on line \texttt{14}). 
   2.530 +
   2.531 +
   2.532 +\subsection{Freedom of Input and Variants in Problem Solving} \label{ssec:variants}
   2.533 +%------------------------------------------------------------------------------
   2.534 +The model described above is presented
   2.535 +\footnote{\S\ref{ssec:outer-syntax} will show how easily the format presented 
   2.536 +in the screen-shot can be defined in Isabelle/Isar.}
   2.537 +to students as shown in the screen-shot 
   2.538 +% on p.\pageref{fig:specification-template}. 
   2.539 +below.
   2.540 +\begin{figure} [htb]
   2.541 +  \centering
   2.542 +  \includegraphics[width=0.6\textwidth]{specification-template.png}
   2.543 +  \caption{The template for starting a \emph{Specification}.}
   2.544 +  \label{fig:specification-template}
   2.545 +\end{figure}
   2.546 +There the \texttt{descriptor}s (\texttt{Constants}, etc) are followed by
   2.547 +templates giving hints on the input format according to
   2.548 +\UR\ref{UR:template} in order to help students to cope with the troublesome
   2.549 +transition to exact formal representation. The \texttt{Model} is embedded
   2.550 +into the \texttt{Specification} which also contains \texttt{References}
   2.551 +explained in \S\ref{ssec:solve-phase} below. The above template is completed
   2.552 +in Fig.\ref{fig:specification-complete} on p.\pageref{fig:specification-complete}
   2.553 +and the reader may refer to the \texttt{Relate} in the \texttt{Model} when
   2.554 +reading the next paragraph.
   2.555 +
   2.556 +\subparagraph{Representation in field \texttt{Relate} is simplified}\label{post-cond}
   2.557 +such that a student needs not encounter formal logic according to \UR\ref{UR:relate}.
   2.558 +Fig.\ref{fig:specification-complete} %on p.\pageref{fig:specification-complete}
   2.559 +shows that for the \texttt{demo\_example}
   2.560 +\texttt{Extremum} and \texttt{SideConditions} actually are the
   2.561 +essential parts of the postcondition, which characterises a \texttt{problem}
   2.562 +by relating \texttt{Given} and \texttt{Find}:
   2.563 +\begin{eqnarray*}
   2.564 + &\;& (A = 2 * u * v - u \uparrow 2)\;\;\land\;\;
   2.565 +  ((u / 2) \uparrow 2 + (v / 2) \uparrow 2 = r \uparrow 2)\;\;\land\\
   2.566 +\forall A' u' v'
   2.567 +  &.& 
   2.568 +  (A' = 2 * u' * v' - u' \uparrow 2)\;\land\;
   2.569 +    ((u' / 2) \uparrow 2 + (v' / 2) \uparrow 2 = r \uparrow 2)\;\;
   2.570 +  \Rightarrow A' < A
   2.571 +\end{eqnarray*}\label{postcondition}
   2.572 +Students at engineering faculties usually are not educated in formal logic
   2.573 +(computer science is an exception). A formula containing $\land$ or $\Rightarrow$ would distract
   2.574 +them from actual problem solving. Thus \sisac{} decided to extract the essential 
   2.575 +parts of the postcondition:
   2.576 +\begin{tabbing}
   2.577 +12345\=\kill
   2.578 +\> \texttt{Extremum} $(A = 2 * u * v - u \uparrow 2)$,
   2.579 +      \texttt{SideConditions} $(u / 2) \uparrow 2 + (v / 2) \uparrow 2 = r \uparrow 2$
   2.580 +\end{tabbing}
   2.581 +These parts also are sufficient to automatically generate user-guidance
   2.582 +according to \UR\ref{UR:next-step} (by enabling Lucas-Interpretation 
   2.583 +\cite{wn:lucas-interp-12} to find a next step).
   2.584 +
   2.585 +\bigskip
   2.586 +Input should not only be easygoing with respect to format and with bypassing formal
   2.587 +logic. According to \UR\ref{UR:variants} the system should cope flexibly with 
   2.588 +semantics, it should also adapt to fresh ideas of a student and support various 
   2.589 +variants in solving a particular problem. 
   2.590 +Let us look at Fig.\ref{fig:specification-complete} with the completed 
   2.591 +\texttt{Specification} and ask an important question:
   2.592 +\begin{figure} [htb]
   2.593 +  \centering
   2.594 +  \includegraphics[width=0.65\textwidth]{specification-complete.png}
   2.595 +  \caption{The complete \emph{Specification}.}
   2.596 +  \label{fig:specification-complete}
   2.597 +\end{figure}
   2.598 +What could a student have in mind when encountering the problem
   2.599 +statement on p.\pageref{ssec:running-expl}? Looking at the figure
   2.600 +on p.\pageref{ssec:running-expl}, he or she
   2.601 +might focus on the width $u$ and the length $v$, and apply Pythagoras theorem
   2.602 +$(u / 2) \uparrow 2 + (v / 2) \uparrow 2 = r \uparrow 2$. 
   2.603 +But students might focus as well on the angle $\alpha$ and formalise
   2.604 +the \texttt{SideConditions} as $u / 2 = r * \sin \alpha,\;v / 2 = r * \cos \alpha$. 
   2.605 +
   2.606 +\medskip
   2.607 +And what if a student has an eye for simple solutions and takes as
   2.608 +\texttt{SideConditions} either $u = \cos\alpha, v = \sin\alpha$ or
   2.609 +$u \uparrow 2 + v \uparrow 2 = 4 * r \uparrow 2$ ? The latter is semantically
   2.610 +equivalent (equivalent in this specific example) to the variant shown in 
   2.611 +Fig.\ref{fig:specification-complete}. So, during the whole specify-phase,
   2.612 +each formula input by a student must be checked for equivalence with the
   2.613 +formulas prepared in the \texttt{Formalise.T}. Such checking is done via
   2.614 +rewriting to a normal form. This might be quite tedious, for instance with 
   2.615 +equations involving fractions like in showing equivalence of the equations
   2.616 +$u \uparrow 2 + v \uparrow 2 = 4 * r \uparrow 2
   2.617 +\;\equiv\;
   2.618 +(\frac{u}{2}) \uparrow 2 + (\frac{v}{2}) \uparrow 2 = r \uparrow 2$)
   2.619 +
   2.620 +\paragraph{An open design question, a ``pattern-matching-language'' ?} 
   2.621 +Now we are ready to address the design decision related to the format given 
   2.622 +on p.\pageref{src:demo-expl}, which has been identified as preliminary
   2.623 +and simplistic for the purpose of simple implementation.
   2.624 +Much information is redundant there, apparently, and on the other hand interesting
   2.625 +structural properties are hardly visible. For instance, the student's decision
   2.626 +whether to take the \texttt{FunctionVariable u} or the
   2.627 +\texttt{FunctionVariable v} for differentiation (see \S\ref{ssec:solve-phase}),
   2.628 +this decision is fairly independent from the \texttt{problem}'s model -- 
   2.629 +the \texttt{Model} just must no refer to $\alpha$.
   2.630 +
   2.631 +The need for a separated language for \texttt{Specification} becomes definitely
   2.632 +clear when considering the precondition and the postcondition (the latter
   2.633 +introduced above on p.\pageref{postcondition}). The precondition must evaluate
   2.634 +to true for a \texttt{Specification} to be valid, and the postcondition must be
   2.635 +true for a \texttt{Solution} to be accepted by the system.
   2.636 +
   2.637 +In order to evaluate precondition \texttt{Where} $0 < r$ to true, we need to 
   2.638 +create the environment $[(r, 7)]$ from \texttt{Constants}. With the 
   2.639 +\texttt{demo\_example} this is straight forward, but if we had 
   2.640 +\texttt{Constants [s = 1, t = 2]} we already need to employ some trickery with
   2.641 +indexing. And what about the postcondition?
   2.642 +\begin{tabbing}
   2.643 +123 \= $\forall \;\; {\it maxx}' \;\; {\it funvar}'\;\; . \;\;$ \=\kill
   2.644 +\>    \> ${\it extr} \;\;\land\;\; {\it sideconds}\;\;\land$ \\
   2.645 +\> $\forall \;\; {\it maxx}' \;\; funvar'. \;\;$ 
   2.646 +      \> ${\it extr}' \;\land\; {\it sideconds}' \;\; 
   2.647 +                  \Rightarrow {\it maxx}' < {\it maxx}$
   2.648 +\end{tabbing}
   2.649 +How could such a ``pattern-matching'' description be instantiated to the
   2.650 +postcondition on p.\pageref{postcondition}? Instantiated reliably, such that Isabelle could 
   2.651 +evaluate it to true with the values found by \texttt{Solution}? How would the 
   2.652 +variant with the $\alpha$ work out, which has two \texttt{SideConditions}?
   2.653 +
   2.654 +\medskip
   2.655 +Answering the open question above may go in parallel to implementation of a larger
   2.656 +body of examples and respective \texttt{problem}s.
   2.657 +Field tests \cite{imst-htl06,imst-htl07,imst-hpts08} in the \sisac{} project 
   2.658 +were based on limited content and thus did not gain much experience with a 
   2.659 +variety of problems with variants and respective flexibility of the system; 
   2.660 +one has to wait for implementation of more various examples and problems.
   2.661 +
   2.662 +\subsection{Interactivity and Feedback} \label{ssec:interactivity}
   2.663 +%------------------------------------------------------------------------------
   2.664 +The previous section describes how \sisac{} makes a \texttt{Specification} 
   2.665 +flexible and open for various variants in solving a particular problem.
   2.666 +Flexibility in problem solving must be accompanied by flexible interactivity
   2.667 +and appropriate feedback. Feedback for input to a \texttt{Model} is
   2.668 +predefined by \UR\ref{UR:feedback} and modelled by a respective datatype as 
   2.669 +follows (\texttt{values} are of type \texttt{term list})
   2.670 +\begin{small}
   2.671 +\begin{verbatim}
   2.672 +  01  datatype I_Model.feedback = 
   2.673 +  02      Correct of (descriptor * values)     (* wrt. syntax and semantics    *)
   2.674 +  03    | Incomplete of (descriptor * values)  (* for list types               *)
   2.675 +  04    | Superfluous of (descriptor * values) (* not found in Formalise.model *)
   2.676 +  05    | Syntax of TermC.as_string            (* in case of switching model   *)
   2.677 +\end{verbatim}\label{src:feedback}
   2.678 +\end{small}
   2.679 +The above code plus comments appear fairly self-explaining. \texttt{descriptor} 
   2.680 +has been introduced already. In case of empty input, we shall have
   2.681 +\texttt{Incomplete (\_, [])} and display templates for input-format
   2.682 +according to  \UR\ref{UR:template}. Syntax errors are handled very elegantly in
   2.683 +Isabelle/PIDE (see \S\ref{ssec:outer-syntax}); in case of switching from the
   2.684 +\texttt{Model} of the \texttt{Problem\_Ref} to the \texttt{Model} of the
   2.685 +\texttt{Method\_Ref} (see \S\ref{ssec:solve-phase} below) it might be useful
   2.686 +to keep a copy of an input with syntax errors. Items can be \texttt{Superfluous}
   2.687 +either because they are syntactically correct but not related the \texttt{Model}
   2.688 +under construction, or they belong to a \texttt{variant}, which has not yet been
   2.689 +decided for. For instance, if the \texttt{Model} is as in 
   2.690 +Fig.\ref{fig:specification-complete} on p.\pageref{fig:specification-complete}
   2.691 +and the student adds \texttt{SideConditions} $[v = \sin\alpha]$, this item
   2.692 +will be marked as \texttt{Superfluous} unless interactive
   2.693 +completion to \texttt{SideConditions} $[v = \sin\alpha, v = \cos\alpha]$
   2.694 +and deletion of a competing item like \texttt{SideConditions} 
   2.695 +$[u \uparrow 2 + v \uparrow 2 = 4 * r \uparrow 2]$.
   2.696 +
   2.697 +\bigskip
   2.698 +If a student gets stuck during input to a \texttt{Model}, then \UR\ref{UR:next-step}
   2.699 +allows him or her to request help. In the specify-phase such help is given
   2.700 +best by presenting a (partial -- predefined setting!) missing item.
   2.701 +\emph{But output of a \texttt{Model} with item does not conform to Isabelle's
   2.702 +document model}: The content of an Isabelle theory is considered a document
   2.703 +which has to be checked by the system --- Isabelle is in principle a reactive
   2.704 +system.
   2.705 +There are few exceptions to the document model, for instance, when Sledgehammer
   2.706 +\cite{sledgehammer-tutorial} finds intermediate proof-steps on request and 
   2.707 +metis \footnote{https://isabelle.in.tum.de/library/HOL/HOL/Metis.html}
   2.708 +displays the respective proof steps.
   2.709 +
   2.710 +\sisac{}, in contrary, is designed as a tutoring system, where partners
   2.711 +construct a \texttt{Specification} and a \texttt{Solution} in cooperation, 
   2.712 +where the user can propose a step while the system checks it and where the 
   2.713 +student can request help such that the system can propose a step as well. 
   2.714 +Since here  psychology of learning is involved,
   2.715 +a ``user guide'' component shall be involved in the future, and a ``user model''
   2.716 +shall provide personalisation. \sisac's original architecture placed
   2.717 +the components at the center of the system. But now \sisac{} is being embedded in
   2.718 +Isabelle and Isabelle/PIDE is already highly elaborated --- where will be the place for
   2.719 +these components in Isabelle? This is one of the major open questions
   2.720 +for \S\ref{sect:implementation}.
   2.721 +
   2.722 +
   2.723 +\subsection{Automated Specifications} \label{ssec:auto-spec}
   2.724 +%------------------------------------------------------------------------------
   2.725 +Sometimes a user might not be interested in specification. For instance, when
   2.726 +solving an equation, the type of the problem and the respective
   2.727 +\texttt{Model\_Pattern.T} are clear, and only the hierarchy of problem types
   2.728 +would have to be searched for the appropriate type.
   2.729 +
   2.730 +
   2.731 +
   2.732  \<close>
   2.733  
   2.734  (*<*)
   2.735  end
   2.736 -(*>*)
   2.737 \ No newline at end of file
   2.738 +(*>*)
     3.1 Binary file src/Tools/isac/Doc/Specify_Phase/document/Screenshot-problemdef-running-expl.png has changed
     4.1 Binary file src/Tools/isac/Doc/Specify_Phase/document/coil-kernel-uv.png has changed
     5.1 --- a/src/Tools/isac/Doc/Specify_Phase/document/root.bib	Sat Dec 30 16:49:50 2023 +0100
     5.2 +++ b/src/Tools/isac/Doc/Specify_Phase/document/root.bib	Sat Dec 30 17:52:03 2023 +0100
     5.3 @@ -1,11 +1,233 @@
     5.4 -@TechReport{isac:all,
     5.5 -  author = 	 {\isac{}- Team},
     5.6 -  title = 	 {\isac{} -- User Requirements Document, Software Requirements Document,
     5.7 -    Architectural Design Document, Software Design Document, Use Cases, Test Cases},
     5.8 -  institution =  {Institute for Softwaretechnology, University of Technology},
     5.9 -  year = 	 {2002},
    5.10 -  note = 	 {\url{https://static.miraheze.org/isacwiki/0/04/Isac-docu.pdf}}
    5.11 +@InProceedings{gdaroczy-EP-13,
    5.12 +  author = 	 {Gabriella Dar\'{o}czy and Walther Neuper},
    5.13 +  title = 	 {Error-Patterns within ``Next-Step-Guidance'' in {TP}-based Educational Systems},
    5.14 +  booktitle = 	 {eJMT, the Electronic Journal of Mathematics \& Technology},
    5.15 +  year = 	 {2013},
    5.16 +  volume = 	 {7},
    5.17 +  pages = 	 {175-194},
    5.18 +  month = 	 {February},
    5.19 +  note = 	 {Special Issue ``TP-based Systems and Education''},
    5.20 +  url = {https://php.radford.edu/~ejmt/ContentIndex.php\#v7n2}
    5.21  }
    5.22 +@TechReport{bb-ChatCPT-2023,
    5.23 +  author = {Buchberger, Bruno},
    5.24 +  title = {Is {ChatGPT} Smarter Than Master’s Applicants?},
    5.25 +  institution = {Research Institute for Symbolic Computation (RISC), 
    5.26 +    Johannes Kepler University},
    5.27 +  year = {2023},
    5.28 +  type = {RISC Report Series},
    5.29 +  number = {23-04},
    5.30 +  address = {Linz, Austria},
    5.31 +  month = {January},
    5.32 +  url = {https://www3.risc.jku.at/publications/download/risc_6684/23-04.pdf}
    5.33 +}
    5.34 +
    5.35 +@InProceedings{jamnik-2023.2,
    5.36 +  author =	{Jamnik, Mateja},
    5.37 +  title =	{{How Can We Make Trustworthy AI?}},
    5.38 +  booktitle =	{8th International Conference on Formal Structures for Computation and Deduction (FSCD 2023)},
    5.39 +  pages =	{2:1--2:1},
    5.40 +  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
    5.41 +  ISBN =	{978-3-95977-277-8},
    5.42 +  ISSN =	{1868-8969},
    5.43 +  year =	{2023},
    5.44 +  volume =	{260},
    5.45 +  editor =	{Gaboardi, Marco and van Raamsdonk, Femke},
    5.46 +  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
    5.47 +  address =	{Dagstuhl, Germany},
    5.48 +  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.FSCD.2023.2},
    5.49 +  URN =		{urn:nbn:de:0030-drops-179869},
    5.50 +  doi =		{10.4230/LIPIcs.FSCD.2023.2},
    5.51 +  annote =	{Keywords: AI, human-centric computing, knowledge representation, reasoning, machine learning}
    5.52 +}
    5.53 +@InProceedings{benzmuller-2021.7,
    5.54 +  author =	{Benzm\"{u}ller, Christoph and Fuenmayor, David},
    5.55 +  title =	{{Value-Oriented Legal Argumentation in Isabelle/HOL}},
    5.56 +  booktitle =	{12th International Conference on Interactive Theorem Proving (ITP 2021)},
    5.57 +  pages =	{7:1--7:20},
    5.58 +  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
    5.59 +  ISBN =	{978-3-95977-188-7},
    5.60 +  ISSN =	{1868-8969},
    5.61 +  year =	{2021},
    5.62 +  volume =	{193},
    5.63 +  editor =	{Cohen, Liron and Kaliszyk, Cezary},
    5.64 +  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
    5.65 +  address =	{Dagstuhl, Germany},
    5.66 +  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ITP.2021.7},
    5.67 +  URN =		{urn:nbn:de:0030-drops-139028},
    5.68 +  doi =		{10.4230/LIPIcs.ITP.2021.7},
    5.69 +  annote =	{Keywords: Higher order logic, preference logic, shallow embedding, legal reasoning}
    5.70 +}
    5.71 +@MastersThesis{fkober-bakk,
    5.72 +  author = 	 {Franz Kober},
    5.73 +  title = 	 {Logging of High-Level Steps in a Mechanized Math Assistant},
    5.74 +  school = 	 {IICM, Graz University of Technology},
    5.75 +  year = 	 {2012},
    5.76 +  note = 	 {\url{https://static.miraheze.org/isacwiki/e/e6/Fkober_bakk.pdf}}
    5.77 +}
    5.78 +@Inproceedings{EPTCS79.9,
    5.79 +  author       = {Makarius Wenzel and
    5.80 +                  Burkhart Wolff},
    5.81 +  editor       = {Pedro Quaresma and
    5.82 +                  Ralph{-}Johan Back},
    5.83 +  title        = {Isabelle/PIDE as Platform for Educational Tools},
    5.84 +  booktitle    = {Proceedings First Workshop on {CTP} Components for Educational Software,
    5.85 +                  THedu'11, Wroclaw, Poland, 31th July 2011},
    5.86 +  series       = {{EPTCS}},
    5.87 +  volume       = {79},
    5.88 +  pages        = {143--153},
    5.89 +  year         = {2011},
    5.90 +  url          = {https://doi.org/10.4204/EPTCS.79.9},
    5.91 +  doi          = {10.4204/EPTCS.79.9},
    5.92 +  timestamp    = {Mon, 22 Nov 2021 15:31:41 +0100},
    5.93 +  biburl       = {https://dblp.org/rec/journals/corr/abs-1202-4835.bib},
    5.94 +  bibsource    = {dblp computer science bibliography, https://dblp.org}
    5.95 +}
    5.96 +@Article{LCF-to-Isabelle-HOL:2019,
    5.97 +  author    = {Lawrence C. Paulson and
    5.98 +               Tobias Nipkow and
    5.99 +               Makarius Wenzel},
   5.100 +  title     = {From {LCF} to {Isabelle/HOL}},
   5.101 +  journal = {Formal Aspects of Computing},
   5.102 +  volume = {31},
   5.103 +  pages = {675--698},
   5.104 +  year = {2019},
   5.105 +  month = {September},
   5.106 +  note = {Springer, London},
   5.107 +  url = {https://doi.org/10.1007/s00165-019-00492-1},
   5.108 +}
   5.109 +@Book{gries,
   5.110 +  author = 	 {Gries, David},
   5.111 +  title = 	 {The science of programming},
   5.112 +  publisher = 	 {Springer-Verlag},
   5.113 +  year = 	 {1981},          
   5.114 +  series = 	 {Texts and monographs in computer science},
   5.115 +  doi={10.1007/978-1-4612-5983-1}
   5.116 +}
   5.117 +@Inproceedings{EPTCS290.6,
   5.118 +  author    = {Neuper, Walther},
   5.119 +  year      = {2019},
   5.120 +  title     = {Technologies for ``Complete, Transparent \& Interactive Models of Math'' in Education},
   5.121 +  editor    = {Quaresma, Pedro and Neuper, Walther},
   5.122 +  booktitle = {{\rm Proceedings 7th International Workshop on}
   5.123 +               Theorem proving components for Educational software,
   5.124 +               {\rm Oxford, United Kingdom, 18 july 2018}},
   5.125 +  series    = {Electronic Proceedings in Theoretical Computer Science},
   5.126 +  volume    = {290},
   5.127 +  publisher = {Open Publishing Association},
   5.128 +  pages     = {76-95},
   5.129 +  doi       = {10.4204/EPTCS.290.6},
   5.130 +  note      = {\url{http://eptcs.web.cse.unsw.edu.au/paper.cgi?thedu18.6}}
   5.131 +}
   5.132 +@BOOK{Back1998,
   5.133 +  title = {Refinement Calculus: A Systematic Introduction},
   5.134 +  publisher = {Springer-Verlag},
   5.135 +  year = {1998},
   5.136 +  author = {Back, Ralph-Johan and von Wright, Joakim},
   5.137 +  note = {Graduate Texts in Computer Science},
   5.138 +  project = {refinement}
   5.139 +}
   5.140 +@Misc{sledgehammer-tutorial,
   5.141 +  author = 	 {Jasmin C.Blanchette},
   5.142 +  title = 	 {{Hammering Away. A User's Guide to Sledgehammer for Isabelle/HOL}},
   5.143 +  howpublished = {contained in the Isabelle distribution},
   5.144 +  year = 	 {},
   5.145 +  url = 	 {http://isabelle.in.tum.de/doc/sledgehammer.pdf}
   5.146 +}
   5.147 +@TechReport{imst-htl06,
   5.148 +  author = 	 {Neuper, Walther and others},
   5.149 +  title = 	 {{Angewandte Mathematik und Fachtheorie}},
   5.150 +  institution =  {IMST -- Innovationen Machen Schulen Top!},
   5.151 +  year = 	 {2006},
   5.152 +  number = 	 {357},
   5.153 +  address = 	 {University of Klagenfurt, Institute of Instructional and School Development (IUS), 9010 Klagenfurt, Sterneckstrasse 15},
   5.154 +  url = {http://imst.uni-klu.ac.at/imst-wiki/index.php/Angewandte\_Mathematik\_und\_Fachtheorie},
   5.155 +  note = {\url{http://imst.uni-klu.ac.at/imst-wiki/index.php/Angewandte\_Mathematik\_und\_Fachtheorie}}
   5.156 +}
   5.157 +@TechReport{imst-htl07,
   5.158 +  author = 	 {Neuper, Walther and Christian D\"urnsteiner},
   5.159 +  title = 	 {{Angewandte Mathematik und Fachtheorie mithilfe adaptierter Basis-Software}},
   5.160 +  institution =  {IMST -- Innovationen Machen Schulen Top!},
   5.161 +  year = 	 {2007},
   5.162 +  number = 	 {683},
   5.163 +  address = 	 {University of Klagenfurt, Institute of Instructional and School Development (IUS), 9010 Klagenfurt, Sterneckstrasse 15},
   5.164 +  url = {https://www.imst.ac.at/imst-wiki/images/f/f9/683_Kurzfassung_Neuper.pdf},
   5.165 +  note = {\url{https://www.imst.ac.at/imst-wiki/images/f/f9/683_Kurzfassung_Neuper.pdf}}
   5.166 +}
   5.167 +@TechReport{imst-hpts08,
   5.168 +  author = 	 {Neuper, Walther and Reitinger, Johannes and Angelika Gr\"undlinger},
   5.169 +  title = 	 {{Begreifen und Mechanisieren beim Algebra Einstieg}},
   5.170 +  institution =  {IMST -- Innovationen Machen Schulen Top!},
   5.171 +  year = 	 {2008},
   5.172 +  number = 	 {1063},
   5.173 +  address = 	 {University of Klagenfurt, Institute of Instructional and School Development (IUS), 9010 Klagenfurt, Sterneckstrasse 15},
   5.174 +  url = 	 {https://www.imst.ac.at/imst-wiki/images/9/9d/1063_Langfassung_Reitinger.pdf},
   5.175 +  note = 	 {\url{https://www.imst.ac.at/imst-wiki/images/9/9d/1063_Langfassung_Reitinger.pdf}}
   5.176 +}
   5.177 +@Book{pl:milner97,
   5.178 +  author = 	 {Robin Milner and Mads Tofte and Robert Harper and David MacQueen},
   5.179 +  title = 	 {The Definition of Standard ML (Revised)},
   5.180 +  publisher = 	 {The MIT Press},
   5.181 +  year = 	 1997,
   5.182 +  address =	 {Cambridge, London},
   5.183 +  annote =	 {97bok375}
   5.184 +}
   5.185 +@InProceedings{wn:lucas-interp-12,
   5.186 +  author    = "Neuper, Walther",
   5.187 +  year      = "2012",
   5.188 +  title     = "Automated Generation of User Guidance by Combining Computation and Deduction",
   5.189 +  pages     = "82-101",
   5.190 +  doi       = "10.4204/EPTCS.79.5",
   5.191 +  booktitle = {Electronic Proceedings in Theoretical Computer Science},
   5.192 +  editor    = "Quaresma, Pedro and Back, Ralph-Johan",
   5.193 +  volume    = "79",
   5.194 +  publisher = "Open Publishing Association",
   5.195 +  note      = {\url{https://cgi.cse.unsw.edu.au/~eptcs/paper.cgi?THedu11.5}}
   5.196 +}
   5.197 +@InProceedings{wn:proto-sys,
   5.198 +  author    = {Krempler, Alan and Neuper, Walther},
   5.199 +  year      = {2018},
   5.200 +  title     = {Prototyping ``Systems that Explain Themselves'' for Education},
   5.201 +  editor    = {Quaresma, Pedro and Neuper, Walther},
   5.202 +  booktitle = {{\rm Proceedings 6th International Workshop on}
   5.203 +               Theorem proving components for Educational software,
   5.204 +               {\rm Gothenburg, Sweden, 6 Aug 2017}},
   5.205 +  series    = {Electronic Proceedings in Theoretical Computer Science},
   5.206 +  volume    = {267},
   5.207 +  publisher = {Open Publishing Association},
   5.208 +  pages     = {89-107},
   5.209 +  doi       = {10.4204/EPTCS.267.6},
   5.210 +  note      = {\url{https://arxiv.org/abs/1803.01470v1}}
   5.211 +}
   5.212 +@Inproceedings{mawen-23,
   5.213 +  author    = {Miesenberger, Klaus and Neuper, Walther and St\"oger, Bernhard and Wenzel, Makarius},
   5.214 +  year      = {2023},
   5.215 +  title     = {Towards an Accessible Mathematics Working Environment Based on {Isabelle/VSCode}},
   5.216 +  editor    = {Quaresma, Pedro and Marcos, Jo{\~a}o and Neuper, Walther},
   5.217 +  booktitle = {{\rm Proceedings 11th International Workshop on}
   5.218 +               Theorem Proving Components for Educational Software,
   5.219 +               {\rm Haifa, Israel, 11 August 2022}},
   5.220 +  series    = {Electronic Proceedings in Theoretical Computer Science},
   5.221 +  volume    = {375},
   5.222 +  publisher = {Open Publishing Association},
   5.223 +  pages     = {92-111},
   5.224 +  doi       = {10.4204/EPTCS.375.8},
   5.225 +}
   5.226 +@misc{IsaWS-22,
   5.227 +  title        = {Towards Accessible Formal Mathematics with \sisac{} and {Isabelle/VSCode}},
   5.228 +  author       = {W.Neuper and  B.St\"oger and M.Wenzel},
   5.229 +  howpublished = {Isabelle Workshop 2022 \url{https://sketis.net/isabelle/isabelle-workshop-2022}},
   5.230 +  year         = 2022,
   5.231 +  note         = {Accessed: 202-10-13}
   5.232 +}
   5.233 +@inproceedings{Isabelle/Naproce,
   5.234 + author = {De Lon, Adrian and Koepke, Peter and Lorenzen, Anton and  Marti, Adrian and  Sch\"utz, Marcel and Wenzel, Makarius},
   5.235 + title = {The {I}sabelle/{N}aproche natural language proof assistant (system description)},
   5.236 + booktitle = { 28th International Conference on Automated Deduction (CADE 28)},
   5.237 + series = {Lecture Notes in Computer Science},
   5.238 + year = {2021},
   5.239 + publisher = {Springer-Verlag}
   5.240 +} 
   5.241  @TECHREPORT{Back-SD09,
   5.242    author = {Back, Ralph-Johan},
   5.243    title = {Structured Derivations as a Unified Proof Style for Teaching Mathematics},
   5.244 @@ -16,25 +238,44 @@
   5.245    address = {Turku, Finland},
   5.246    month = {July}
   5.247  }
   5.248 -@Book{gries,
   5.249 -  author = 	 {Gries, David},
   5.250 -  title = 	 {The science of programming},
   5.251 -  publisher = 	 {Springer-Verlag},
   5.252 -  year = 	 {1981},
   5.253 -  series = 	 {Texts and monographs in computer science}
   5.254 +@InProceedings{wn:lucin-thedu20,
   5.255 +  author = {Walther Neuper},
   5.256 +  title = {Lucas-Interpretation on {I}sabelle's Functions},
   5.257 +  booktitle = { Proceedings 9th International Workshop on Theorem Proving Components for Educational Software (ThEdu'20)},
   5.258 +  year = {2020},
   5.259 +  editor = {Pedro Quaresma and Walther Neuper and João Marcos},
   5.260 +  number = {328},
   5.261 +  pages = {79–95},
   5.262 +  month = {30th October},
   5.263 +  address = {Paris, France,},
   5.264 +  organization = {},
   5.265 +  publisher = {Electronic Proceedings in Theoretical Computer Science},
   5.266 +  url = {https://arxiv.org/abs/2010.16016v1},
   5.267 +  doi = {2010.16016v1}
   5.268  }
   5.269 -@Inproceedings{EPTCS-wn-20,
   5.270 -  author    = {Neuper, Walther},
   5.271 -  year      = {2020},
   5.272 -  title     = {Lucas-Interpretation on Isabelle's Functions},
   5.273 -  editor    = {Quaresma, Pedro and Neuper, Walther and Marcos, Jo\~ao},
   5.274 -  booktitle = {{\rm Proceedings 9th International Workshop on}
   5.275 -               Theorem Proving Components for Educational Software,
   5.276 -               {\rm Paris, France, 29th June 2020}},
   5.277 -  series    = {Electronic Proceedings in Theoretical Computer Science},
   5.278 -  volume    = {328},
   5.279 -  publisher = {Open Publishing Association},
   5.280 -  pages     = {79-95},
   5.281 -  doi       = {10.4204/EPTCS.328.5},
   5.282 -  note      = {\url{http://eptcs.web.cse.unsw.edu.au/paper.cgi?thedu2020.5}}
   5.283 +@Book{fuchs:algebra-sys,
   5.284 +  editor = {Fuchs, Karl Josef and Plangg, Simon and Stein, Martin and Greefrath, Gilbert},
   5.285 +  title = {{C}omputer {A}lgebra {S}ysteme in der {L}ehrer(innen)bildung (\"uberarbeitete Neuauflage)},
   5.286 +  publisher = {WTM Verlag},
   5.287 +  year = {2020},
   5.288 +  address = {M\"unster}
   5.289  }
   5.290 +@InProceedings{wenzel:isar,
   5.291 +  author = 	 {Wenzel, Markus},
   5.292 +  title = 	 {Isar - a Generic Interpretative Approach to Readable Formal Proof Documents},
   5.293 +  booktitle = 	 {Theorem Proving in Higher Order Logics},
   5.294 +  year = 	 {1999},
   5.295 +  editor = 	 {G. Dowek and A. Hirschowitz and C. Paulin and L. Thery},
   5.296 +  series = 	 {LNCS 1690},
   5.297 +  organization = {12th International Conference TPHOLs'99},
   5.298 +  publisher = {Springer},
   5.299 +  note = {\url{https://doi.org/10.1007/3-540-48256-3_12}}
   5.300 +}
   5.301 +@TechReport{isac:all,
   5.302 +  author = 	 {\isac{}- Team},
   5.303 +  title = 	 {\isac{} -- User Requirements Document, Software Requirements Document, Architectural Design Document, Software Design Document, Use Cases, Test Cases},
   5.304 +  institution =  {Institute for Softwaretechnology, 
   5.305 +                  University of Technology},
   5.306 +  year = 	 {2002},
   5.307 +  url = {https://static.miraheze.org/isacwiki/0/04/Isac-docu.pdf}
   5.308 +}
     6.1 Binary file src/Tools/isac/Doc/Specify_Phase/document/specification-complete.png has changed
     7.1 Binary file src/Tools/isac/Doc/Specify_Phase/document/specification-method.png has changed
     8.1 Binary file src/Tools/isac/Doc/Specify_Phase/document/specification-template.png has changed
     9.1 --- a/test/Tools/isac/Test_Isac.thy	Sat Dec 30 16:49:50 2023 +0100
     9.2 +++ b/test/Tools/isac/Test_Isac.thy	Sat Dec 30 17:52:03 2023 +0100
     9.3 @@ -45,12 +45,12 @@
     9.4  \<close>
     9.5  
     9.6  theory Test_Isac
     9.7 -  imports Isac.Build_Isac (* note that imports are WITHOUT open struct ..*)
     9.8 +  imports "Isac.Build_Isac" (* note that imports are WITHOUT open struct ..*)
     9.9    (* in case of ERROR Bad theory import "Draft.Thy_All"..., open each theory one by one
    9.10       and find out, which ML_file or *.thy causes an error (might be ONLY one).
    9.11       Also backup files (#* ) recognised by jEdit cause this trouble                    *)
    9.12  (*/---------------------- do Minisubpbl before ADDTESTS/All_Ctxt ------------------------------\*)
    9.13 -(*  "$ISABELLE_ISAC_TEST/ADDTESTS/accumulate-val/Thy_All"(*but ok in editor*)*)
    9.14 +(** )"$ISABELLE_ISAC_TEST/ADDTESTS/accumulate-val/Thy_All"(*but ok in editor*) ( **)
    9.15  (**)"$ISABELLE_ISAC_TEST/Tools/isac/ADDTESTS/accumulate-val/Lucas_Interpreter"
    9.16  (**)"$ISABELLE_ISAC_TEST/Tools/isac/ADDTESTS/Ctxt"
    9.17  (**)"$ISABELLE_ISAC_TEST/Tools/isac/ADDTESTS/test-depend/Build_Test"
    9.18 @@ -75,12 +75,12 @@
    9.19    "$ISABELLE_ISAC_TEST/Tools/isac/Specify/refine"        (* setup for refine.sml   *)
    9.20    "$ISABELLE_ISAC_TEST/Tools/isac/ProgLang/calculate"    (* setup for evaluate.sml *)
    9.21    "$ISABELLE_ISAC_TEST/Tools/isac/Knowledge/integrate"   (* setup for integrate.sml*)
    9.22 -(*Test_Isac.thy*)
    9.23 +(*Test_Isac.thy--\*)
    9.24  (*\---------------------- do Minisubpbl before ADDTESTS/All_Ctxt ------------------------------/*)
    9.25    "$ISABELLE_ISAC/Knowledge/GCD_Poly_OLD" (*not imported by Isac.thy*)        (*Test_Isac_Short*)
    9.26    "$ISABELLE_ISAC/Knowledge/GCD_Poly_FP"  (*not imported by Isac.thy*)        (*Test_Isac_Short*)
    9.27  (*\---------------------- do Minisubpbl before ADDTESTS/All_Ctxt ------------------------------/*)
    9.28 -(*Test_Isac.thy*)
    9.29 +(*Test_Isac.thy--/*)
    9.30    "$ISABELLE_ISAC_TEST/Tools/isac/BridgeJEdit/Test_VSCode_Example"
    9.31  
    9.32    "$ISABELLE_ISAC/Doc/Lucas_Interpreter/Lucas_Interpreter"                    (*Test_Isac_Short*)
    10.1 --- a/test/Tools/isac/Test_Isac_Short.thy	Sat Dec 30 16:49:50 2023 +0100
    10.2 +++ b/test/Tools/isac/Test_Isac_Short.thy	Sat Dec 30 17:52:03 2023 +0100
    10.3 @@ -50,7 +50,7 @@
    10.4       and find out, which ML_file or *.thy causes an error (might be ONLY one).
    10.5       Also backup files (#* ) recognised by jEdit cause this trouble                    *)
    10.6  (*/---------------------- do Minisubpbl before ADDTESTS/All_Ctxt ------------------------------\*)
    10.7 -(*  "$ISABELLE_ISAC_TEST/ADDTESTS/accumulate-val/Thy_All"(*but ok in editor*)*)
    10.8 +(** )"$ISABELLE_ISAC_TEST/ADDTESTS/accumulate-val/Thy_All"(*but ok in editor*) ( **)
    10.9  (**)"$ISABELLE_ISAC_TEST/Tools/isac/ADDTESTS/accumulate-val/Lucas_Interpreter"
   10.10  (**)"$ISABELLE_ISAC_TEST/Tools/isac/ADDTESTS/Ctxt"
   10.11  (**)"$ISABELLE_ISAC_TEST/Tools/isac/ADDTESTS/test-depend/Build_Test"
   10.12 @@ -75,12 +75,12 @@
   10.13    "$ISABELLE_ISAC_TEST/Tools/isac/Specify/refine"        (* setup for refine.sml   *)
   10.14    "$ISABELLE_ISAC_TEST/Tools/isac/ProgLang/calculate"    (* setup for evaluate.sml *)
   10.15    "$ISABELLE_ISAC_TEST/Tools/isac/Knowledge/integrate"   (* setup for integrate.sml*)
   10.16 -(*Test_Isac_Short.thy* )
   10.17 +(*Test_Isac_Short.thy*--\ )
   10.18  (*\---------------------- do Minisubpbl before ADDTESTS/All_Ctxt ------------------------------/*)
   10.19  (*"$ISABELLE_ISAC/Knowledge/GCD_Poly_OLD" (*not imported by Isac.thy*)        Test_Isac_Short*)
   10.20  (*"$ISABELLE_ISAC/Knowledge/GCD_Poly_FP"  (*not imported by Isac.thy*)        Test_Isac_Short*)
   10.21  (*\---------------------- do Minisubpbl before ADDTESTS/All_Ctxt ------------------------------/*)
   10.22 -( *Test_Isac_Short.thy*)
   10.23 +( *Test_Isac_Short.thy--/*)
   10.24    "$ISABELLE_ISAC_TEST/Tools/isac/BridgeJEdit/Test_VSCode_Example"
   10.25  
   10.26  (*"$ISABELLE_ISAC/Doc/Lucas_Interpreter/Lucas_Interpreter"                    Test_Isac_Short*)