278 \indexisarmeth{unfold}\indexisarmeth{fold}\indexisarmeth{insert} |
278 \indexisarmeth{unfold}\indexisarmeth{fold}\indexisarmeth{insert} |
279 \indexisarmeth{erule}\indexisarmeth{drule}\indexisarmeth{frule} |
279 \indexisarmeth{erule}\indexisarmeth{drule}\indexisarmeth{frule} |
280 \indexisarmeth{fail}\indexisarmeth{succeed} |
280 \indexisarmeth{fail}\indexisarmeth{succeed} |
281 \begin{matharray}{rcl} |
281 \begin{matharray}{rcl} |
282 unfold & : & \isarmeth \\ |
282 unfold & : & \isarmeth \\ |
283 fold & : & \isarmeth \\[0.5ex] |
283 fold & : & \isarmeth \\ |
284 insert^* & : & \isarmeth \\[0.5ex] |
284 insert & : & \isarmeth \\[0.5ex] |
285 erule^* & : & \isarmeth \\ |
285 erule^* & : & \isarmeth \\ |
286 drule^* & : & \isarmeth \\ |
286 drule^* & : & \isarmeth \\ |
287 frule^* & : & \isarmeth \\[0.5ex] |
287 frule^* & : & \isarmeth \\[0.5ex] |
288 succeed & : & \isarmeth \\ |
288 succeed & : & \isarmeth \\ |
289 fail & : & \isarmeth \\ |
289 fail & : & \isarmeth \\ |
290 \end{matharray} |
290 \end{matharray} |
291 |
291 |
292 \begin{rail} |
292 \begin{rail} |
293 ('fold' | 'unfold' | 'insert' | 'erule' | 'drule' | 'frule') thmrefs |
293 ('fold' | 'unfold' | 'insert') thmrefs |
|
294 ; |
|
295 ('erule' | 'drule' | 'frule') ('('nat')')? thmrefs |
294 ; |
296 ; |
295 \end{rail} |
297 \end{rail} |
296 |
298 |
297 \begin{descr} |
299 \begin{descr} |
298 \item [$unfold~\vec a$ and $fold~\vec a$] expand and fold back again the given |
300 \item [$unfold~\vec a$ and $fold~\vec a$] expand and fold back again the given |
299 meta-level definitions throughout all goals; any facts provided are inserted |
301 meta-level definitions throughout all goals; any facts provided are inserted |
300 into the goal and subject to rewriting as well. |
302 into the goal and subject to rewriting as well. |
|
303 \item [$insert~\vec a$] inserts theorems as facts into all goals of the proof |
|
304 state. Note that current facts indicated for forward chaining are ignored. |
301 \item [$erule~\vec a$, $drule~\vec a$, and $frule~\vec a$] are similar to the |
305 \item [$erule~\vec a$, $drule~\vec a$, and $frule~\vec a$] are similar to the |
302 basic $rule$ method (see \S\ref{sec:pure-meth-att}), but apply rules by |
306 basic $rule$ method (see \S\ref{sec:pure-meth-att}), but apply rules by |
303 elim-resolution, destruct-resolution, and forward-resolution, respectively |
307 elim-resolution, destruct-resolution, and forward-resolution, respectively |
304 \cite{isabelle-ref}. These are improper method, mainly for experimentation |
308 \cite{isabelle-ref}. The optional natural number argument (default $0$) |
305 and emulating tactic scripts. |
309 specifies additional assumption steps to be performed. |
306 |
310 |
307 Different modes of basic rule application are usually expressed in Isar at |
311 Note that these methods are improper ones, mainly serving for |
308 the proof language level, rather than via implicit proof state |
312 experimentation and tactic script emulation. Different modes of basic rule |
309 manipulations. For example, a proper single-step elimination would be done |
313 application are usually expressed in Isar at the proof language level, |
310 using the basic $rule$ method, with forward chaining of current facts. |
314 rather than via implicit proof state manipulations. For example, a proper |
311 \item [$insert~\vec a$] inserts theorems as facts into all goals of the proof |
315 single-step elimination would be done using the basic $rule$ method, with |
312 state. Note that current facts indicated for forward chaining are ignored. |
316 forward chaining of current facts. |
313 \item [$succeed$] yields a single (unchanged) result; it is the identity of |
317 \item [$succeed$] yields a single (unchanged) result; it is the identity of |
314 the ``\texttt{,}'' method combinator (cf.\ \S\ref{sec:syn-meth}). |
318 the ``\texttt{,}'' method combinator (cf.\ \S\ref{sec:syn-meth}). |
315 \item [$fail$] yields an empty result sequence; it is the identity of the |
319 \item [$fail$] yields an empty result sequence; it is the identity of the |
316 ``\texttt{|}'' method combinator (cf.\ \S\ref{sec:syn-meth}). |
320 ``\texttt{|}'' method combinator (cf.\ \S\ref{sec:syn-meth}). |
317 \end{descr} |
321 \end{descr} |