+++ /dev/null
-
-\firstslide{}
-% 1
- \begin{center}
- \large{\textbf{
- Brokers and Web-Services\\
- for Automatic Deduction:\\
- a Case Study}}
- \end{center}
- \vfill
- \begin{center}
- \small
- \emph{Claudio Sacerdoti Coen} \emailcsc \\
- \vspace{0.2cm}
- \tiny
- Department of Computer Science \\
- University of Bologna (Italy)
- \vfill
- \small
- Stefano Zacchiroli \emailzack \\
- \vspace{0.2cm}
- \tiny
- Department of Computer Science \\
- \'Ecole Normale Sup\'erieure de Paris (France)
- \end{center}
-
-\newslide{Outline}
-% 2
- \begin{citemize}
- \pause
- \item Motivations
- \pause
- \item HELM's Proof Assistant
- \pause
- \color{blue}
- \item \hbugs
- \begin{citemize}
- \small
- \pause
- \item architecture
- \item a brief demo
- \item \Gray{implementation highlights (maybe)}
- \item future work
- \end{citemize}
- \end{citemize}
-
-\newslide{Motivations}
-% 3
- Web-Service approach at software development \ldots
- \begin{citemize}
- \small
- \item helps in getting rid of a wide range of software incompatibilities
- \item is (hopefully) granted to have longevity
- \end{citemize}
- \ldots thus the WWW is moving \ldots
- \begin{citemize}
- \small
- \item[\Red{from}] \advirecord{f}{a disorganized repository of human-understandable
- HTML documents}
- \item[\Green{to}] \advirecord{t}{a disorganized repository of application exchanging
- XML documents}
- \end{citemize}
- \pause \adviplay{f} \pause \adviplay{t}
-
-\newslide{Motivations}
-% 4
- The open challenge:
- \begin{citemize}
- \small
- \item Provide a set of stable and reliable services over this disorganization
- \end{citemize}
- \pause
- What about solutions? \pause \ldots \small \Red{none :-(} \pause
-
- \begin{citemize}
- \item Just an useful architecture / widespread idea: \\
- \hfill add an additional intermediate level of stable services and call them
- \Blue{brokers}
- \end{citemize}
-
-\newslide{\Large{HELM's Proof Assistant}}
-% 5
- \advirecord{bp}{\adviembed{display eps/helmLogic.png}}
- \Blue{\large Pros} \hfill \advianchor[click,underline]{bp}{\small{The Big
- Picture}}
- \begin{citemize}
- \small
- \pause
- \item document centric
- \pause
- \item exploits the HELM distributed library
- \hfill \Red{($\approx$ 40000 theorems/defs)}
- \pause
- \item modular, based on the HELM Web-Services
- \hfill \Red{(via XML + OMDoc)}
- \pause
- \item XML based GUI
- \hfill \Red{(XSLT stylesheets, MathML)}
- \pause
- \item a wonderful name: \adviwait[1] \Gray{\large{TODO}} \adviwait[1]
- \hfill \Red{(gTopLevel? CIClIDE?)}
- \end{citemize}
-
-\newslide{\Large{HELM's Proof Assistant}}
-% 6
- \Blue{\large Cons}
- \begin{citemize}
- \item \Red{Beginners' Cons}
- \advirecord{B}{
- \begin{citemize}
- \small
- \item get lost in the available tactics
- \item focus shouldn't be on interface issues, but rather on formal proof
- development
- \end{citemize}}
- \item \Red{Experts' Cons}
- \advirecord{E}{
- \begin{citemize}
- \small
- \item computational expensive / resource consuming tactics
- \item too low exploitation of the HELM library
- \end{citemize}}
- \end{citemize}
- \pause \adviplay{B} \pause \adviplay{E}
-
-\newslide{An improvement}
-% 7
- A \Blue{suggestion engine} that \ldots
- \begin{citemize}
- \pause
- \item \ldots works in background
- \item \ldots notify the user out-of-band
- \item \ldots is as much re-usable as possible
- \end{citemize}
- \vfill
- \begin{center}
- \pause \Red{\OmegaAnts}? \hspace{2cm} \pause \Blue{\hbugs}!
- \end{center}
-
-\newslide{\hbugs{} Actors}
-% 8
- \vfill
- \begin{description}
- \item[\large{clients}]
- ~\advirecord{c}{\parbox[t]{0.7\textwidth}{\small Software components able to
- produce \Blue{proof status} consuming \Red{hints}}}
- \item[\large{tutors}]
- ~\advirecord{t}{\parbox[t]{0.7\textwidth}{\small Software components able to
- consume \Red{proof status} producing \Blue{hints}}}
- \item[\large{brokers}]
- ~\advirecord{b}{\parbox[t]{0.7\textwidth}{\small Software components which
- act as \Green{intermediaries} decoupling clients and tutors}}
- \end{description}
-
- \pause \adviplay{c} \pause \adviplay{t} \pause \adviplay{b}
-
-\newslide{\hbugs{} Architecture}
-% 9
- \vfill
- \myincludegraphics{hbugsArch}{0.8\textwidth}
-
-\newslide{\hbugs{} Web-Services}
-% 10
- \vfill
- \myincludegraphics{hbugsInterfaces}{0.8\textwidth}
-
-\newslide{\hbugs{} Messages}
-% 11
- \advirecord{dia}{\adviembed{dia-gnome misc/messages.dia}}
- \vfill
- \begin{center}
- \advianchor[click,underline]{dia}{messages.dia}
- \end{center}
-
-\newslide{\hbugs{} Tutors}
-% 12
- \vfill
- \Blue{I. Tutors for beginners}
- \begin{enumerate}
- \small
- \item \Red{Assumption} thesis equivalent to one of the hypotheses
- \item \Red{Contradiction} reductio ad absurdum
- \item \Red{Simmetry} commutative property over equalities
- \item \Red{Left/Right/Exists/Split/Reflexivity/Constructor} inductive type
- constructors application
- \end{enumerate}
-
-\newslide{\hbugs{} Tutors}
-% 13
- \vfill
- \Blue{II. Tutors for computationally expensive tactics}
- \begin{enumerate}
- \small
- \item \Red{Ring} associative and commutative rewritings over ring structures
- \item \Red{Fourier} solves linear inequation systems (over R)
- \end{enumerate}
- \vfill
- \pause
- \Blue{III. Intelligent tutors}
- \begin{enumerate}
- \small
- \item \Red{Search pattern Apply} search for applicable theorems from the
- HELM library (search + unification ``attempts'')
- \end{enumerate}
-
-\newslide{\hbugs{} Demo}
-% 14
-
- \vfill
- \begin{center}
- \fbox{\parbox{0.8\textwidth}{
- \textbf{\Red{Exercise 1.}}
-
- \vspace{1cm}
- \emph{Let $x$ be a generic real number. Using the \helm{} proof-engine, prove
- that:}
-
- \Blue{
- \begin{displaymath}
- x = \frac{(x+1)^2 - 1 - x^2}{2}
- \end{displaymath}}}}
- \end{center}
-
-\newslide{\Large \hbugs{} Tutors' Implementation}
-% 15
- All tutors \ldots:
- \Blue{\begin{citemize}
- \small
- \pause
- \item \ldots are multi-threaded
- \pause
- \item \ldots present a Web-Service interface
- \pause
- \item \ldots perform a lot of similar operations (decoding proof status,
- encoding hints, parse and submit HTTP requests, \ldots)
- \end{citemize}}
-
- \vfill
- \advirecord{a}{\FromRight{is not that difficult, but \ldots}}
-
- \advirecord{b}{\FromRight{\Red{requires a lot of duplicated code/work :-(}}}
-
- \pause \adviplay{a} \adviwait[0.5] \adviplay{b}
-
-\newslide{\Large \hbugs{} Tutors' Implementation}
-% 16
- {\small To avoid the repetitive task of implementing a tutor each time we
- develop a new tactic:}
- \begin{cenumerate}
- \small
- \item[I.] ~\advirecord{a}{we have written a \Green{generic tutor
- implementation}}
- \item[II.] ~\advirecord{b}{we \Green{instantiate} it with each available tactic
- starting from an XML signature of each tutor}
- \begin{Verbatim}[fontshape=it,fontsize=\tiny,formatcom=\color{blue}]
- <tutor source="symmetry_tutor.ml">
- <addr>127.0.0.1</addr>
- <port>50004</port>
- <tactic>EqualityTactics.symmetry_tac</tactic>
- <hint>Hbugs_types.Use_symmetry_Luke</hint>
- <hint_type>Use Symmetry Luke</hint_type>
- <description>Symmetry tutor</description>
- <environment_file>symmetry.environment</environment_file>
- </tutor>
- \end{Verbatim}
- \end{cenumerate}
- \pause \adviplay{a} \pause \adviplay{b}
-
-\newslide{\hbugs{} Future Work}
-% 17
- \vfill
- \begin{center}
- \Blue{\Large{A lot!}}
- \end{center}
- \vfill
- \begin{citemize}
- \item ~\advirecord{a}{implement more \advirecord{b}{\Gray{(Intelligent)}}
- tutors}
- \item ~\advirecord{c}{interfacing of CASs \hfill \Red{(Field tactic?)}}
- \item ~\advirecord{d}{non-hint \hfill \Red{(warnings?)}}
- \item ~\advirecord{e}{hints rating}
- \item ~\advirecord{f}{MONET integration \hfill \Red{ontologies, reuse}}
- \item ~\advirecord{g}{work on the GUI!}
- \end{citemize}
-
- \pause \adviplay{a} \adviwait[0.3] \adviplay{b} \pause \adviplay{c} \pause
- \adviplay{d} \pause \adviplay{e} \pause \adviplay{f} \pause \adviplay{g}
-
-\newslide{References}
-% 18
- \vfill
- \begin{citemize}
- \item A. Asperti, F. Guidi, L. Padovani, C. Sacerdoti Coen, I. Schena.
- Mathematical Knowledge Management in HELM. In Annals of Mathematics and
- Artificial Intelligence, 38(1): 27--46, May 2003.
- \item C. Benzm\"uller, M. Jamnik, M. Kerber, V. Sorge.
- Agent-based Mathematical Reasoning. In A. Armando and T. Jebelean (eds.),
- Electronic Notes in Theoretical Computer Science, (1999) 23(3), Elsevier.
- \item The MONET Consortium, MONET Architecture Overview,
- Public Deliverable D04 of the MONET Project.\\
- \texttt{http://monet.nag.co.uk/cocoon/monet/publicsdocs/monet-overview.pdf}
- \item S. Zacchiroli. \emph{Web services per il supporto alla
- dimostrazione interattiva}, Master Thesis, University of Bologna, 2002.
- \end{citemize}
-
-\newslide{That's all Folks!}
-% 19
- \vfill
- \adviwait[1]
- \myincludegraphics{thatsall}{0.4\textwidth}
-