ProgTutorial/Essential.thy
changeset 465 886a7c614ced
parent 458 242e81f4d461
child 469 7a558c5119b2
--- a/ProgTutorial/Essential.thy	Tue May 17 19:46:53 2011 +0200
+++ b/ProgTutorial/Essential.thy	Tue Jun 14 22:09:40 2011 +0100
@@ -1124,13 +1124,14 @@
   as an introduction rule. Applying it directly can lead to unexpected
   behaviour since the unification has more than one solution. One way round
   this problem is to instantiate the schematic variables @{text "?P"} and
-  @{text "?x"}.  instantiation function for theorems is @{ML_ind instantiate
-  in Drule} from the structure @{ML_struct Drule}. One problem, however, is
+  @{text "?x"}.  instantiation function for theorems is 
+  @{ML_ind instantiate_normalize in Drule} from the structure 
+  @{ML_struct Drule}. One problem, however, is
   that this function expects the instantiations as lists of @{ML_type ctyp}
   and @{ML_type cterm} pairs:
 
   \begin{isabelle}
-  @{ML instantiate in Drule}@{text ":"}
+  @{ML instantiate_normalize in Drule}@{text ":"}
   @{ML_type "(ctyp * ctyp) list * (cterm * cterm) list -> thm -> thm"}
   \end{isabelle}
 
@@ -1183,7 +1184,7 @@
   val trm = @{term \"Trueprop (Q True)\"}
   val inst = matcher_inst @{theory} pat trm 1
 in
-  Drule.instantiate inst @{thm spec}
+  Drule.instantiate_normalize inst @{thm spec}
 end"
   "\<forall>x. Q x \<Longrightarrow> Q True"}