doc-src/TutorialI/Inductive/Even.tex
changeset 10654 458068404143
parent 10520 bb9dfcc87951
child 10762 cd1a2bee5549
equal deleted inserted replaced
10653:55f33da63366 10654:458068404143
   177 \begin{isabelle}
   177 \begin{isabelle}
   178 \ 1.\ n\ \isasymin \ even\isanewline
   178 \ 1.\ n\ \isasymin \ even\isanewline
   179 \ 2.\ \isasymAnd na.\ \isasymlbrakk na\ \isasymin \ even;\ n\ \isasymin \ even\isasymrbrakk \ \isasymLongrightarrow \ n\ \isasymin \ even%
   179 \ 2.\ \isasymAnd na.\ \isasymlbrakk na\ \isasymin \ even;\ n\ \isasymin \ even\isasymrbrakk \ \isasymLongrightarrow \ n\ \isasymin \ even%
   180 \end{isabelle}
   180 \end{isabelle}
   181 The first one is hopeless.  In general, rule inductions involving
   181 The first one is hopeless.  In general, rule inductions involving
   182 non-trivial terms will probably go wrong.  The solution is easy provided
   182 non-trivial terms will probably go wrong. How to deal with such situations
   183 we have the necessary inverses, here subtraction:
   183 in general is described in {\S}\ref{sec:ind-var-in-prems} below.
       
   184 In the current case the solution is easy because
       
   185 we have the necessary inverse, subtraction:
   184 \begin{isabelle}
   186 \begin{isabelle}
   185 \isacommand{lemma}\ even_imp_even_minus_2:\ "n\ \isasymin \ even\ \isasymLongrightarrow \ n-\#2\ \isasymin \ even"\isanewline
   187 \isacommand{lemma}\ even_imp_even_minus_2:\ "n\ \isasymin \ even\ \isasymLongrightarrow \ n-\#2\ \isasymin \ even"\isanewline
   186 \isacommand{apply}\ (erule\ even.induct)\isanewline
   188 \isacommand{apply}\ (erule\ even.induct)\isanewline
   187 \ \isacommand{apply}\ auto\isanewline
   189 \ \isacommand{apply}\ auto\isanewline
   188 \isacommand{done}
   190 \isacommand{done}