# HG changeset patch # User Christian Urban # Date 1340273282 -3600 # Node ID 3f85b675601ccb315e9e2214d9fdf9d8ccf9d215 # Parent 8411f242e094d32930153e653819c385247d72f3 tuned diff -r 8411f242e094 -r 3f85b675601c ProgTutorial/Essential.thy --- a/ProgTutorial/Essential.thy Thu Jun 21 08:39:02 2012 +0100 +++ b/ProgTutorial/Essential.thy Thu Jun 21 11:08:02 2012 +0100 @@ -1966,11 +1966,12 @@ text {* - One often wants to know the theorems that are involved in proving - a theorem. They can be obtained by introspecting the theorem. - To introspect a theorem, let us define the following three functions that - analyse the @{ML_type_ind proof_body} data-structure from the structure - @{ML_struct Proofterm}. + Sometimes one wants to know the theorems that are involved in + proving a theorem, especially when the proof is by @{text + auto}. These theorems can be obtained by introspecting the proved theorem. + To introspect a theorem, let us define the following three functions + that analyse the @{ML_type_ind proof_body} data-structure from the + structure @{ML_struct Proofterm}. *} ML %grayML{*fun pthms_of (PBody {thms, ...}) = map #2 thms @@ -2032,8 +2033,8 @@ "[\"HOL.conjunct2\", \"HOL.conjunct1\", \"HOL.conjI\", \"Pure.protectD\", \"Pure.protectI\"]"} - The theorems @{thm [source] protectD} and @{thm [source] - protectI} that are internal theorems are always part of a + The theorems @{thm [source] Pure.protectD} and @{thm [source] + Pure.protectI} that are internal theorems are always part of a proof in Isabelle. Note also that applications of @{text assumption} do not count as a separate theorem, as you can see in the following code. @@ -2077,6 +2078,11 @@ "[\"HOL.spec\", \"HOL.and_def\", \"HOL.mp\", \"HOL.impI\", \"Pure.protectD\", \"Pure.protectI\"]"} + \begin{exercise} + Have a look at the theorems that are used when a lemma is ``proved'' + by \isacommand{sorry}? + \end{exercise} + \begin{readmore} The data-structure @{ML_type proof_body} is implemented in the file @{ML_file "Pure/proofterm.ML"}. The implementation diff -r 8411f242e094 -r 3f85b675601c progtutorial.pdf Binary file progtutorial.pdf has changed