equal
deleted
inserted
replaced
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 |