src/HOL/Tools/Old_Datatype/old_primrec.ML
changeset 59498 50b60f501b05
parent 58839 ccda99401bc8
child 59859 f9d1442c70f3
equal deleted inserted replaced
59497:0c5cd369a643 59498:50b60f501b05
   246         val frees = fold (Variable.add_free_names ctxt) eqs [];
   246         val frees = fold (Variable.add_free_names ctxt) eqs [];
   247         val rewrites = rec_rewrites' @ map (snd o snd) defs;
   247         val rewrites = rec_rewrites' @ map (snd o snd) defs;
   248       in
   248       in
   249         map (fn eq => Goal.prove ctxt frees [] eq
   249         map (fn eq => Goal.prove ctxt frees [] eq
   250           (fn {context = ctxt', ...} =>
   250           (fn {context = ctxt', ...} =>
   251             EVERY [rewrite_goals_tac ctxt' rewrites, resolve_tac [refl] 1])) eqs
   251             EVERY [rewrite_goals_tac ctxt' rewrites, resolve_tac ctxt' [refl] 1])) eqs
   252       end;
   252       end;
   253   in ((prefix, (fs, defs)), prove) end
   253   in ((prefix, (fs, defs)), prove) end
   254   handle PrimrecError (msg, some_eqn) =>
   254   handle PrimrecError (msg, some_eqn) =>
   255     error ("Primrec definition error:\n" ^ msg ^
   255     error ("Primrec definition error:\n" ^ msg ^
   256       (case some_eqn of
   256       (case some_eqn of