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