diff -r 2d30c74ba67f -r 9128b9440e93 thys/notes.tex --- a/thys/notes.tex Thu Feb 26 16:35:10 2015 +0000 +++ b/thys/notes.tex Wed Mar 04 19:34:47 2015 +0000 @@ -1,6 +1,7 @@ \documentclass[11pt]{article} \usepackage[left]{lineno} \usepackage{amsmath} +\usepackage{stmaryrd} \begin{document} %%%\linenumbers @@ -377,6 +378,67 @@ \subsection*{Problems in the paper proof} -I cannot verify +I cannot verify\ldots + + + +\newpage +\section*{Isabelle Cheat-Sheet} + +\begin{itemize} +\item The main notion in Isabelle is a \emph{theorem}. + Definitions, inductive predicates and recursive + functions all have underlying theorems. If a definition + is called \texttt{foo}, then the theorem will be called + \texttt{foo\_def}. Take a recursive function, say + \texttt{bar}, it will have a theorem that is called + \texttt{bar.simps} and will be added to the simplifier. + That means the simplifier will automatically + Inductive predicates called \texttt{baz} will be called + \texttt{baz.intros}. For inductive predicates, there are + also theorems \texttt{baz.induct} and + \texttt{baz.cases}. + +\item A \emph{goal-state} consists of one or more subgoals. If + there are \texttt{No more subgoals!} then the theorem is + proved. Each subgoal is of the form + + \[ + \llbracket \ldots{}premises\ldots \rrbracket \Longrightarrow + conclusion + \] + + \noindent + where $premises$ and $conclusion$ are formulas of type + \texttt{bool}. + +\item There are three low-level methods for applying one or + more theorem to a subgoal, called \texttt{rule}, + \texttt{drule} and \texttt{erule}. The first applies a + theorem to a conclusion of a goal. For example + + \[\texttt{apply}(\texttt{rule}\;thm) + \] + + If the conclusion is of the form $\_ \wedge \_$, + $\_ \longrightarrow \_$ and $\forall\,x. \_$ the + $thm$ is called + + \begin{center} + \begin{tabular}{lcl} + $\_ \wedge \_$ & $\Rightarrow$ & $conjI$\\ + $\_ \longrightarrow \_$ & $\Rightarrow$ & $impI$\\ + $\forall\,x.\_$ & $\Rightarrow$ & $allI$ + \end{tabular} + \end{center} + + Many of such rule are called intro-rules and end with + an ``$I$'', or in case of inductive predicates $\_.intros$. + + + + +\end{itemize} + \end{document}