doc-src/isac/mlehnfeld/presentation.tex
author Mathias Lehnfeld <e0726734@student.tuwien.ac.at>
Sat, 28 May 2011 02:55:36 +0200
branchdecompose-isar
changeset 42030 bc8a1d08f0a4
parent 42029 26a7ca4b6563
child 42031 95abe93a41d2
permissions -rw-r--r--
presentation draft
e0726734@42027
     1
% $Header: /cvsroot/latex-beamer/latex-beamer/solutions/conference-talks/conference-ornate-20min.en.tex,v 1.7 2007/01/28 20:48:23 tantau Exp $
e0726734@42027
     2
e0726734@42027
     3
\documentclass{beamer}
e0726734@42027
     4
e0726734@42027
     5
% This file is a solution template for:
e0726734@42027
     6
e0726734@42027
     7
% - Talk at a conference/colloquium.
e0726734@42027
     8
% - Talk length is about 20min.
e0726734@42027
     9
% - Style is ornate.
e0726734@42027
    10
e0726734@42027
    11
e0726734@42027
    12
e0726734@42027
    13
% Copyright 2004 by Till Tantau <tantau@users.sourceforge.net>.
e0726734@42027
    14
%
e0726734@42027
    15
% In principle, this file can be redistributed and/or modified under
e0726734@42027
    16
% the terms of the GNU Public License, version 2.
e0726734@42027
    17
%
e0726734@42027
    18
% However, this file is supposed to be a template to be modified
e0726734@42027
    19
% for your own needs. For this reason, if you use this file as a
e0726734@42027
    20
% template and not specifically distribute it as part of a another
e0726734@42027
    21
% package/program, I grant the extra permission to freely copy and
e0726734@42027
    22
% modify this file as you see fit and even to delete this copyright
e0726734@42027
    23
% notice.
e0726734@42027
    24
e0726734@42027
    25
e0726734@42027
    26
\mode<presentation>
e0726734@42027
    27
{
e0726734@42027
    28
  \usetheme{Hannover}
e0726734@42027
    29
  % or ...
e0726734@42027
    30
e0726734@42027
    31
  \setbeamercovered{transparent}
e0726734@42027
    32
  % or whatever (possibly just delete it)
e0726734@42027
    33
}
e0726734@42027
    34
neuper@42029
    35
%\usepackage{setspace} %for "\begin{onehalfspace}"
e0726734@42027
    36
\usepackage[english]{babel}
e0726734@42027
    37
% or whatever
e0726734@42027
    38
e0726734@42027
    39
\usepackage[utf8]{inputenc}
e0726734@42027
    40
% or whatever
e0726734@42027
    41
e0726734@42027
    42
\usepackage{times}
e0726734@42027
    43
\usepackage[T1]{fontenc}
e0726734@42027
    44
% Or whatever. Note that the encoding and the font should match. If T1
e0726734@42027
    45
% does not look nice, try deleting the line with the fontenc.
e0726734@42027
    46
e0726734@42027
    47
\def\isac{${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}
e0726734@42027
    48
\def\sisac{{\footnotesize${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}}
e0726734@42027
    49
e0726734@42027
    50
\title[\isac: Computation \& Deduction] % (optional, use only with long paper titles)
e0726734@42027
    51
{Integrating Computation and Deduction\\
e0726734@42027
    52
  in the \isac-System}
e0726734@42027
    53
e0726734@42027
    54
\subtitle{Projektpraktikum: Introducing Isabelle's Contexts}
e0726734@42027
    55
e0726734@42030
    56
\author[Lehnfeld] % (optional, use only with lots of authors)
e0726734@42030
    57
{Mathias~Lehnfeld}
e0726734@42027
    58
% - Give the names in the same order as the appear in the paper.
e0726734@42027
    59
% - Use the \inst{?} command only if the authors have different
e0726734@42027
    60
%   affiliation.
e0726734@42027
    61
e0726734@42027
    62
\institute % (optional, but mostly needed)
e0726734@42027
    63
{
e0726734@42030
    64
  Vienna University of Technology\\
e0726734@42030
    65
  Institute of Computer Languages
e0726734@42027
    66
}
e0726734@42027
    67
% - Use the \inst command only if there are several affiliations.
e0726734@42027
    68
% - Keep it simple, no one is interested in your street address.
e0726734@42027
    69
e0726734@42027
    70
% \date[CFP 2003] % (optional, should be abbreviation of conference name)
e0726734@42027
    71
% {Conference on Fabulous Presentations, 2003}
e0726734@42027
    72
% - Either use conference name or its abbreviation.
e0726734@42027
    73
% - Not really informative to the audience, more for people (including
e0726734@42027
    74
%   yourself) who are reading the slides online
e0726734@42027
    75
e0726734@42027
    76
% \subject{Theoretical Computer Science}
e0726734@42027
    77
% This is only inserted into the PDF information catalog. Can be left
e0726734@42027
    78
% out.
e0726734@42027
    79
e0726734@42027
    80
e0726734@42027
    81
e0726734@42027
    82
% If you have a file called "university-logo-filename.xxx", where xxx
e0726734@42027
    83
% is a graphic format that can be processed by latex or pdflatex,
e0726734@42027
    84
% resp., then you can add a logo as follows:
e0726734@42027
    85
e0726734@42027
    86
% \pgfdeclareimage[height=0.5cm]{university-logo}{university-logo-filename}
e0726734@42027
    87
% \logo{\pgfuseimage{university-logo}}
e0726734@42027
    88
e0726734@42027
    89
e0726734@42027
    90
e0726734@42027
    91
% Delete this, if you do not want the table of contents to pop up at
e0726734@42027
    92
% the beginning of each subsection:
e0726734@42027
    93
\AtBeginSubsection[]
e0726734@42027
    94
{
e0726734@42027
    95
  \begin{frame}<beamer>{Outline}
e0726734@42027
    96
    \tableofcontents[currentsection,currentsubsection]
e0726734@42027
    97
  \end{frame}
e0726734@42027
    98
}
e0726734@42027
    99
e0726734@42027
   100
e0726734@42027
   101
% If you wish to uncover everything in a step-wise fashion, uncomment
e0726734@42027
   102
% the following command:
e0726734@42027
   103
e0726734@42027
   104
%\beamerdefaultoverlayspecification{<+->}
e0726734@42027
   105
e0726734@42027
   106
e0726734@42027
   107
\begin{document}
e0726734@42027
   108
e0726734@42027
   109
\begin{frame}
e0726734@42027
   110
  \titlepage
e0726734@42027
   111
\end{frame}
e0726734@42027
   112
e0726734@42027
   113
\begin{frame}{Outline}
e0726734@42027
   114
  \tableofcontents
e0726734@42027
   115
  % You might wish to add the option [pausesections]
e0726734@42027
   116
\end{frame}
e0726734@42027
   117
e0726734@42027
   118
e0726734@42027
   119
% Structuring a talk is a difficult task and the following structure
e0726734@42027
   120
% may not be suitable. Here are some rules that apply for this
e0726734@42027
   121
% solution:
e0726734@42027
   122
e0726734@42027
   123
% - Exactly two or three sections (other than the summary).
e0726734@42027
   124
% - At *most* three subsections per section.
e0726734@42027
   125
% - Talk about 30s to 2min per frame. So there should be between about
e0726734@42027
   126
%   15 and 30 frames, all told.
e0726734@42027
   127
e0726734@42027
   128
% - A conference audience is likely to know very little of what you
e0726734@42027
   129
%   are going to talk about. So *simplify*!
e0726734@42027
   130
% - In a 20min talk, getting the main ideas across is hard
e0726734@42027
   131
%   enough. Leave out details, even if it means being less precise than
e0726734@42027
   132
%   you think necessary.
e0726734@42027
   133
% - If you omit details that are vital to the proof/implementation,
e0726734@42027
   134
%   just say so once. Everybody will be happy with that.
e0726734@42027
   135
neuper@42028
   136
\section[Introduction]{Introduction}
e0726734@42030
   137
\subsection[Isabelle \& \isac]{Isabelle and \isac}
neuper@42028
   138
\begin{frame}
neuper@42028
   139
  \frametitle{Isabelle and \isac}
e0726734@42030
   140
    \begin{itemize}
e0726734@42030
   141
    \item Computer Theorem Prover Isabelle
e0726734@42030
   142
    \item Math Learning Assistent \isac
e0726734@42030
   143
    \end{itemize}
e0726734@42027
   144
\end{frame}
e0726734@42027
   145
e0726734@42030
   146
\subsection[Computation \& Deduction]{Computation and Deduction in a Lucas-Interpreter}
neuper@42028
   147
\begin{frame}
e0726734@42030
   148
  \frametitle{Computation and Deduction in a Lucas-Interpreter}
e0726734@42030
   149
    \includegraphics[width=100mm]{overview.pdf}
e0726734@42027
   150
\end{frame}
e0726734@42027
   151
neuper@42028
   152
\section[Contributions]{Contributions of the project}
e0726734@42030
   153
\subsection[Contexts]{Introduction of Isabelle Contexts}
neuper@42028
   154
\begin{frame}
e0726734@42030
   155
  \frametitle{Introduction of Isabelle Contexts}
e0726734@42030
   156
    \begin{itemize}
e0726734@42030
   157
    \item theories too general
e0726734@42030
   158
    \item not capable of type inference
e0726734@42030
   159
    \item replace function \texttt{parseNEW}
e0726734@42030
   160
    \end{itemize}
e0726734@42027
   161
\end{frame}
e0726734@42027
   162
neuper@42028
   163
\begin{frame}
e0726734@42030
   164
  \frametitle{Introduction of Isabelle Contexts}
e0726734@42030
   165
    \texttt{\tiny{
e0726734@42030
   166
      \begin{tabbing}
e0726734@42030
   167
xx\=xx\=xx\=xx\=\kill
e0726734@42030
   168
fun parse thy str =\\
e0726734@42030
   169
\>(let val t = (typ\_a2real o numbers\_to\_string)\\
e0726734@42030
   170
\>\>\>\>(Syntax.read\_term\_global thy str)\\
e0726734@42030
   171
\>\>in SOME (cterm\_of thy t) end)\\
e0726734@42030
   172
\>\>\>handle \_ => NONE;
e0726734@42030
   173
\\~\\~\\
e0726734@42030
   174
fun parseNEW ctxt str = SOME (Syntax.read\_term ctxt str |> numbers\_to\_string)\\
e0726734@42030
   175
\>\>\>handle \_ => NONE;
e0726734@42030
   176
\\~\\~\\
e0726734@42030
   177
local\\
e0726734@42030
   178
\>fun insert\_ctxt data = ContextData.map (fn xs => distinct (data@xs));\\
e0726734@42030
   179
in\\
e0726734@42030
   180
\>fun insert\_assumptions asms = map (fn t => Asm t) asms |> insert\_ctxt;\\
e0726734@42030
   181
\>fun insert\_environments envs = map (fn t => Env t) envs |> insert\_ctxt;\\
e0726734@42030
   182
end
e0726734@42030
   183
      \end{tabbing}
e0726734@42030
   184
    }}
e0726734@42027
   185
\end{frame}
e0726734@42027
   186
e0726734@42030
   187
\subsection[Redesign]{Redesign of Type Inference in \isac}
neuper@42028
   188
\begin{frame}
e0726734@42030
   189
  \frametitle{Redesign of type inference in \isac}
e0726734@42030
   190
    \begin{itemize}
e0726734@42030
   191
    \item use context type inference
e0726734@42030
   192
    \item parsing input (specification \& user input)
e0726734@42030
   193
    \item specification with polymorphic types
e0726734@42030
   194
    \item etc.
e0726734@42030
   195
    \end{itemize}
e0726734@42030
   196
\end{frame}
e0726734@42030
   197
e0726734@42030
   198
\subsection[Code Improvement]{Improvement of functional code}
e0726734@42030
   199
\begin{frame}
e0726734@42030
   200
  \frametitle{Improvement of functional code}
e0726734@42030
   201
  \begin{itemize}
e0726734@42030
   202
  \item combinators
e0726734@42030
   203
  \item code conventions
e0726734@42030
   204
  \end{itemize}
e0726734@42030
   205
\end{frame}
e0726734@42030
   206
e0726734@42030
   207
\begin{frame}
e0726734@42030
   208
  \frametitle{Combinators \& Code Conventions}
e0726734@42030
   209
    \texttt{\tiny{
e0726734@42030
   210
      \begin{tabbing}
e0726734@42030
   211
xx\=xx\=xx\=xx\=xx\=\kill
e0726734@42030
   212
fun prep\_ori [] \_ \_ = ([], e\_ctxt)\\
e0726734@42030
   213
\>| prep\_ori fmz thy pbt =\\
e0726734@42030
   214
\>\>\>let\\
e0726734@42030
   215
\>\>\>\>val ctxt = ProofContext.init\_global thy |> fold declare\_constraints fmz\\
e0726734@42030
   216
\>\>\>\>val ori = map (add\_field thy pbt o split\_dts o the o parseNEW ctxt) fmz\\
e0726734@42030
   217
\>\>\>\>\>|> add\_variants\\
e0726734@42030
   218
\>\>\>\>val maxv = map fst ori |> max\\
e0726734@42030
   219
\>\>\>\>val maxv = if maxv = 0 then 1 else maxv\\
e0726734@42030
   220
\>\>\>\>val oris = coll\_variants ori\\
e0726734@42030
   221
\>\>\>\>\>|> map (replace\_0 maxv |> apfst)\\
e0726734@42030
   222
\>\>\>\>\>|> add\_id\\
e0726734@42030
   223
\>\>\>\>\>|> map flattup\\
e0726734@42030
   224
\>\>\>in (oris, ctxt) end;
e0726734@42030
   225
      \end{tabbing}
e0726734@42030
   226
    }}
e0726734@42030
   227
\end{frame}
e0726734@42030
   228
e0726734@42030
   229
\begin{frame}
e0726734@42030
   230
  \frametitle{Drop \tt{Check\_Elementwise}!}
neuper@42029
   231
neuper@42029
   232
\small{
neuper@42029
   233
%\begin{onehalfspace}
neuper@42029
   234
\begin{tabbing}
neuper@42029
   235
xxx\=xxx\=\kill
neuper@42029
   236
$\mathit{solve}\;(\frac{x}{x ^ 2 - 6 * x + 9} - \frac{1}{x ^ 2 - 3 * x} = \frac{1}{x}, x)$\\ \\
neuper@42029
   237
\>$\frac{x}{x ^ 2 - 6 * x + 9} - \frac{1}{x ^ 2 - 3 * x} = \frac{1}{x}$ \\ \\
neuper@42029
   238
\>$\frac{x}{x ^ 2 + -1 * (6 * x) + 9} + \frac{-1 * 1}{x ^ 2 + -1 * (3 * x)} = \frac{1}{x}$ \\ \\
neuper@42029
   239
%\>$\frac{3 + -1 * x + x ^ 2}{9 * x + -6 * x ^ 2 + x ^ 3} = \frac{1}{x}$ \\ \\
neuper@42029
   240
\>$(3 + -1 * x + x ^ 2) * x = 1 * (9 * x + -6 * x ^ 2 + x ^ 3)$ \\
neuper@42029
   241
\>$\mathit{solve}\;((3 + -1 * x + x ^ 2) * x = 1 * (9 * x + -6 * x ^ 2 + x ^ 3), x)$ \\
neuper@42029
   242
\>\>$(3 + -1 * x + x ^ 2) * x = 1 * (9 * x + -6 * x ^ 2 + x ^ 3)$ \\
neuper@42029
   243
%\>\>$(3 + -1 * x + x ^ 2) * x - 1 * (9 * x + -6 * x ^ 2 + x ^ 3) = 0$ \\
neuper@42029
   244
\>\>$(3 + -1 * x + x ^ 2) * x - (9 * x + -6 * x ^ 2 + x ^ 3) = 0$ \\
neuper@42029
   245
\>\>$-6 * x + 5 * x ^ 2 = 0$ \\
neuper@42029
   246
\>\>$\mathit{solve}\;(-6 * x + 5 * x ^ 2 = 0, x)$ \\
neuper@42029
   247
\>\>$[x = 0, x = \frac{6}{5}]$ \\
neuper@42029
   248
\>$[x = 0, x = \frac{6}{5}]$ \\
neuper@42029
   249
                                          \`\alert{$\mathit{Check\_Elementwise}\;\mathit{Assumptions}$}\\
neuper@42029
   250
\>$[x = \frac{6}{5}]$ \\
neuper@42029
   251
$[x = \frac{6}{5}]$
neuper@42029
   252
\end{tabbing}
neuper@42029
   253
}
neuper@42029
   254
%\end{onehalfspace}
neuper@42029
   255
e0726734@42027
   256
\end{frame}
e0726734@42027
   257
e0726734@42030
   258
\subsection[Future Development]{Preparation of Future Development}
neuper@42028
   259
\begin{frame}
e0726734@42030
   260
  \frametitle{Preparation of Future Development}
e0726734@42030
   261
    \begin{itemize}
e0726734@42030
   262
    \item logical data for Isabelle provers in contexts
e0726734@42030
   263
    \item \isac programming language more compact\\
e0726734@42030
   264
      $\rightarrow$ context built automatically
e0726734@42030
   265
    \end{itemize}
e0726734@42027
   266
\end{frame}
e0726734@42027
   267
neuper@42028
   268
\section[Problems]{Problems encountered in the project}
neuper@42028
   269
\begin{frame}
e0726734@42030
   270
  \frametitle{Problems encountered in the project}
e0726734@42030
   271
    \begin{itemize}
e0726734@42030
   272
    \item publication of new Isabelle release
e0726734@42030
   273
    \item amount of code in Isabelle and \isac
e0726734@42030
   274
    \item changes scattered throughout the code
e0726734@42030
   275
    \end{itemize}
e0726734@42027
   276
\end{frame}
e0726734@42027
   277
neuper@42028
   278
\section{Summary}
neuper@42028
   279
\begin{frame}
e0726734@42030
   280
  \frametitle{Summary}
neuper@42028
   281
TODO
e0726734@42027
   282
\end{frame}
e0726734@42027
   283
e0726734@42027
   284
\end{document}
e0726734@42027
   285
e0726734@42027
   286