doc-src/TutorialI/ToyList/ToyList.thy
changeset 10885 90695f46440b
parent 10795 9e888d60d3e5
child 10971 6852682eaf16
equal deleted inserted replaced
10884:2995639c6a09 10885:90695f46440b
   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