doc-src/TutorialI/Datatype/document/Fundata.tex
changeset 11309 d666f11ca2d4
parent 10950 aa788fcb75a5
child 11458 09a6c44a48ea
equal deleted inserted replaced
11308:b28bbb153603 11309:d666f11ca2d4
    31 seasoned functional programmer might have written \isa{map{\isacharunderscore}bt\ f\ {\isasymcirc}\ F}
    31 seasoned functional programmer might have written \isa{map{\isacharunderscore}bt\ f\ {\isasymcirc}\ F}
    32 instead of \isa{{\isasymlambda}i{\isachardot}\ map{\isacharunderscore}bt\ f\ {\isacharparenleft}F\ i{\isacharparenright}}, but the former is not accepted by
    32 instead of \isa{{\isasymlambda}i{\isachardot}\ map{\isacharunderscore}bt\ f\ {\isacharparenleft}F\ i{\isacharparenright}}, but the former is not accepted by
    33 Isabelle because the termination proof is not as obvious since
    33 Isabelle because the termination proof is not as obvious since
    34 \isa{map{\isacharunderscore}bt} is only partially applied.
    34 \isa{map{\isacharunderscore}bt} is only partially applied.
    35 
    35 
    36 The following lemma has a canonical proof:%
    36 The following lemma has a simple proof by induction:%
    37 \end{isamarkuptext}%
    37 \end{isamarkuptext}%
    38 \isacommand{lemma}\ {\isachardoublequote}map{\isacharunderscore}bt\ {\isacharparenleft}g\ o\ f{\isacharparenright}\ T\ {\isacharequal}\ map{\isacharunderscore}bt\ g\ {\isacharparenleft}map{\isacharunderscore}bt\ f\ T{\isacharparenright}{\isachardoublequote}\isanewline
    38 \isacommand{lemma}\ {\isachardoublequote}map{\isacharunderscore}bt\ {\isacharparenleft}g\ o\ f{\isacharparenright}\ T\ {\isacharequal}\ map{\isacharunderscore}bt\ g\ {\isacharparenleft}map{\isacharunderscore}bt\ f\ T{\isacharparenright}{\isachardoublequote}\isanewline
    39 \isacommand{apply}{\isacharparenleft}induct{\isacharunderscore}tac\ T{\isacharcomma}\ simp{\isacharunderscore}all{\isacharparenright}\isanewline
    39 \isacommand{apply}{\isacharparenleft}induct{\isacharunderscore}tac\ T{\isacharcomma}\ simp{\isacharunderscore}all{\isacharparenright}\isanewline
    40 \isacommand{done}%
    40 \isacommand{done}%
    41 \begin{isamarkuptxt}%
    41 \begin{isamarkuptxt}%