doc-src/TutorialI/Misc/document/simp.tex
changeset 10950 aa788fcb75a5
parent 10878 b254d5ad6dd4
child 10971 6852682eaf16
equal deleted inserted replaced
10949:98cdeb6beb3b 10950:aa788fcb75a5
   253 \isacommand{lemma}\ {\isachardoublequote}{\isacharparenleft}case\ xs\ of\ {\isacharbrackleft}{\isacharbrackright}\ {\isasymRightarrow}\ zs\ {\isacharbar}\ y{\isacharhash}ys\ {\isasymRightarrow}\ y{\isacharhash}{\isacharparenleft}ys{\isacharat}zs{\isacharparenright}{\isacharparenright}\ {\isacharequal}\ xs{\isacharat}zs{\isachardoublequote}\isanewline
   253 \isacommand{lemma}\ {\isachardoublequote}{\isacharparenleft}case\ xs\ of\ {\isacharbrackleft}{\isacharbrackright}\ {\isasymRightarrow}\ zs\ {\isacharbar}\ y{\isacharhash}ys\ {\isasymRightarrow}\ y{\isacharhash}{\isacharparenleft}ys{\isacharat}zs{\isacharparenright}{\isacharparenright}\ {\isacharequal}\ xs{\isacharat}zs{\isachardoublequote}\isanewline
   254 \isacommand{apply}{\isacharparenleft}split\ list{\isachardot}split{\isacharparenright}%
   254 \isacommand{apply}{\isacharparenleft}split\ list{\isachardot}split{\isacharparenright}%
   255 \begin{isamarkuptxt}%
   255 \begin{isamarkuptxt}%
   256 \begin{isabelle}%
   256 \begin{isabelle}%
   257 \ {\isadigit{1}}{\isachardot}\ {\isacharparenleft}xs\ {\isacharequal}\ {\isacharbrackleft}{\isacharbrackright}\ {\isasymlongrightarrow}\ zs\ {\isacharequal}\ xs\ {\isacharat}\ zs{\isacharparenright}\ {\isasymand}\isanewline
   257 \ {\isadigit{1}}{\isachardot}\ {\isacharparenleft}xs\ {\isacharequal}\ {\isacharbrackleft}{\isacharbrackright}\ {\isasymlongrightarrow}\ zs\ {\isacharequal}\ xs\ {\isacharat}\ zs{\isacharparenright}\ {\isasymand}\isanewline
   258 \ \ \ \ {\isacharparenleft}{\isasymforall}a\ list{\isachardot}\ xs\ {\isacharequal}\ a\ {\isacharhash}\ list\ {\isasymlongrightarrow}\ a\ {\isacharhash}\ list\ {\isacharat}\ zs\ {\isacharequal}\ xs\ {\isacharat}\ zs{\isacharparenright}%
   258 \isaindent{\ {\isadigit{1}}{\isachardot}\ }{\isacharparenleft}{\isasymforall}a\ list{\isachardot}\ xs\ {\isacharequal}\ a\ {\isacharhash}\ list\ {\isasymlongrightarrow}\ a\ {\isacharhash}\ list\ {\isacharat}\ zs\ {\isacharequal}\ xs\ {\isacharat}\ zs{\isacharparenright}%
   259 \end{isabelle}
   259 \end{isabelle}
   260 In contrast to \isa{if}-expressions, the simplifier does not split
   260 In contrast to \isa{if}-expressions, the simplifier does not split
   261 \isa{case}-expressions by default because this can lead to nontermination
   261 \isa{case}-expressions by default because this can lead to nontermination
   262 in case of recursive datatypes. Therefore the simplifier has a modifier
   262 in case of recursive datatypes. Therefore the simplifier has a modifier
   263 \isa{split} for adding further splitting rules explicitly. This means the
   263 \isa{split} for adding further splitting rules explicitly. This means the