diff -r 23f5cd23c1e1 -r 4cf8e86a2d29 src/HOL/Tools/datatype_realizer.ML --- a/src/HOL/Tools/datatype_realizer.ML Wed Aug 02 18:33:46 2006 +0200 +++ b/src/HOL/Tools/datatype_realizer.ML Wed Aug 02 22:26:37 2006 +0200 @@ -136,9 +136,8 @@ ((space_implode "_" (ind_name :: vs @ ["correctness"]), thm), []) ||> Theory.restore_naming thy; - val ivs = Drule.vars_of_terms - [Logic.varify (DatatypeProp.make_ind [descr] sorts)]; - val rvs = Drule.vars_of_terms [prop_of thm']; + val ivs = rev (Term.add_vars (Logic.varify (DatatypeProp.make_ind [descr] sorts)) []); + val rvs = rev (Drule.fold_terms Term.add_vars thm' []); val ivs1 = map Var (filter_out (fn (_, T) => tname_of (body_type T) mem ["set", "bool"]) ivs); val ivs2 = map (fn (ixn, _) => Var (ixn, valOf (AList.lookup (op =) rvs ixn))) ivs;