equal
deleted
inserted
replaced
105 text{*\noindent |
105 text{*\noindent |
106 When Isabelle prints a syntax error message, it refers to the HOL syntax as |
106 When Isabelle prints a syntax error message, it refers to the HOL syntax as |
107 the \bfindex{inner syntax} and the enclosing theory language as the \bfindex{outer syntax}. |
107 the \bfindex{inner syntax} and the enclosing theory language as the \bfindex{outer syntax}. |
108 |
108 |
109 |
109 |
110 \section{An introductory proof} |
110 \section{An Introductory Proof} |
111 \label{sec:intro-proof} |
111 \label{sec:intro-proof} |
112 |
112 |
113 Assuming you have input the declarations and definitions of \texttt{ToyList} |
113 Assuming you have input the declarations and definitions of \texttt{ToyList} |
114 presented so far, we are ready to prove a few simple theorems. This will |
114 presented so far, we are ready to prove a few simple theorems. This will |
115 illustrate not just the basic proof commands but also the typical proof |
115 illustrate not just the basic proof commands but also the typical proof |
218 *} |
218 *} |
219 (*<*) |
219 (*<*) |
220 oops |
220 oops |
221 (*>*) |
221 (*>*) |
222 |
222 |
223 subsubsection{*First lemma: @{text"rev(xs @ ys) = (rev ys) @ (rev xs)"}*} |
223 subsubsection{*First Lemma: @{text"rev(xs @ ys) = (rev ys) @ (rev xs)"}*} |
224 |
224 |
225 text{* |
225 text{* |
226 After abandoning the above proof attempt\indexbold{abandon |
226 After abandoning the above proof attempt\indexbold{abandon |
227 proof}\indexbold{proof!abandon} (at the shell level type |
227 proof}\indexbold{proof!abandon} (at the shell level type |
228 \isacommand{oops}\indexbold{*oops}) we start a new proof: |
228 \isacommand{oops}\indexbold{*oops}) we start a new proof: |
257 *} |
257 *} |
258 (*<*) |
258 (*<*) |
259 oops |
259 oops |
260 (*>*) |
260 (*>*) |
261 |
261 |
262 subsubsection{*Second lemma: @{text"xs @ [] = xs"}*} |
262 subsubsection{*Second Lemma: @{text"xs @ [] = xs"}*} |
263 |
263 |
264 text{* |
264 text{* |
265 This time the canonical proof procedure |
265 This time the canonical proof procedure |
266 *} |
266 *} |
267 |
267 |
310 \end{isabelle} |
310 \end{isabelle} |
311 and the missing lemma is associativity of @{text"@"}. |
311 and the missing lemma is associativity of @{text"@"}. |
312 *} |
312 *} |
313 (*<*)oops(*>*) |
313 (*<*)oops(*>*) |
314 |
314 |
315 subsubsection{*Third lemma: @{text"(xs @ ys) @ zs = xs @ (ys @ zs)"}*} |
315 subsubsection{*Third Lemma: @{text"(xs @ ys) @ zs = xs @ (ys @ zs)"}*} |
316 |
316 |
317 text{* |
317 text{* |
318 Abandoning the previous proof, the canonical proof procedure |
318 Abandoning the previous proof, the canonical proof procedure |
319 *} |
319 *} |
320 |
320 |