equal
deleted
inserted
replaced
320 In general, the format of invoking recursion induction is |
320 In general, the format of invoking recursion induction is |
321 \begin{quote} |
321 \begin{quote} |
322 \isacommand{apply}\isa{{\isacharparenleft}induct{\isacharunderscore}tac} $x@1 \dots x@n$ \isa{rule{\isacharcolon}} $f$\isa{{\isachardot}induct{\isacharparenright}} |
322 \isacommand{apply}\isa{{\isacharparenleft}induct{\isacharunderscore}tac} $x@1 \dots x@n$ \isa{rule{\isacharcolon}} $f$\isa{{\isachardot}induct{\isacharparenright}} |
323 \end{quote}\index{*induct_tac (method)}% |
323 \end{quote}\index{*induct_tac (method)}% |
324 where $x@1~\dots~x@n$ is a list of free variables in the subgoal and $f$ the |
324 where $x@1~\dots~x@n$ is a list of free variables in the subgoal and $f$ the |
325 name of a function that takes an $n$ arguments. Usually the subgoal will |
325 name of a function that takes $n$ arguments. Usually the subgoal will |
326 contain the term $f x@1 \dots x@n$ but this need not be the case. The |
326 contain the term $f x@1 \dots x@n$ but this need not be the case. The |
327 induction rules do not mention $f$ at all. Here is \isa{sep{\isachardot}induct}: |
327 induction rules do not mention $f$ at all. Here is \isa{sep{\isachardot}induct}: |
328 \begin{isabelle} |
328 \begin{isabelle} |
329 {\isasymlbrakk}~{\isasymAnd}a.~P~a~[];\isanewline |
329 {\isasymlbrakk}~{\isasymAnd}a.~P~a~[];\isanewline |
330 ~~{\isasymAnd}a~x.~P~a~[x];\isanewline |
330 ~~{\isasymAnd}a~x.~P~a~[x];\isanewline |