src/HOL/Nominal/nominal_primrec.ML
changeset 33171 292970b42770
parent 33056 791a4655cae3
child 33317 b4534348b8fd
equal deleted inserted replaced
33170:dd6d8d1f70d2 33171:292970b42770
   278     val names2 = map fst eqns;
   278     val names2 = map fst eqns;
   279     val _ = if eq_set (op =) (names1, names2) then ()
   279     val _ = if eq_set (op =) (names1, names2) then ()
   280       else primrec_err ("functions " ^ commas_quote names2 ^
   280       else primrec_err ("functions " ^ commas_quote names2 ^
   281         "\nare not mutually recursive");
   281         "\nare not mutually recursive");
   282     val (defs_thms, lthy') = lthy |>
   282     val (defs_thms, lthy') = lthy |>
   283       set_group ? LocalTheory.set_group (serial_string ()) |>
   283       set_group ? LocalTheory.set_group (serial ()) |>
   284       fold_map (apfst (snd o snd) oo
   284       fold_map (apfst (snd o snd) oo
   285         LocalTheory.define Thm.definitionK o fst) defs';
   285         LocalTheory.define Thm.definitionK o fst) defs';
   286     val qualify = Binding.qualify false
   286     val qualify = Binding.qualify false
   287       (space_implode "_" (map (Long_Name.base_name o #1) defs));
   287       (space_implode "_" (map (Long_Name.base_name o #1) defs));
   288     val names_atts' = map (apfst qualify) names_atts;
   288     val names_atts' = map (apfst qualify) names_atts;