diff -r 21b5d0145fe4 -r 886a7c614ced ProgTutorial/Essential.thy --- 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" "\x. Q x \ Q True"}