src/HOL/Tools/record_package.ML
changeset 18728 6790126ab5f6
parent 18708 4b3dadb4fe33
child 18858 ceb93f3af7f0
equal deleted inserted replaced
18727:caf9bc780c80 18728:6790126ab5f6
  1213   in (Term.add_typ_tfrees (T, env), T) end;
  1213   in (Term.add_typ_tfrees (T, env), T) end;
  1214 
  1214 
  1215 (* attributes *)
  1215 (* attributes *)
  1216 
  1216 
  1217 fun case_names_fields x = RuleCases.case_names ["fields"] x;
  1217 fun case_names_fields x = RuleCases.case_names ["fields"] x;
  1218 fun induct_type_global name = [case_names_fields, Attrib.theory (InductAttrib.induct_type name)];
  1218 fun induct_type_global name = [case_names_fields, InductAttrib.induct_type name];
  1219 fun cases_type_global name = [case_names_fields, Attrib.theory (InductAttrib.cases_type name)];
  1219 fun cases_type_global name = [case_names_fields, InductAttrib.cases_type name];
  1220 
  1220 
  1221 (* tactics *)
  1221 (* tactics *)
  1222 
  1222 
  1223 fun simp_all_tac ss simps = ALLGOALS (Simplifier.asm_full_simp_tac (ss addsimps simps));
  1223 fun simp_all_tac ss simps = ALLGOALS (Simplifier.asm_full_simp_tac (ss addsimps simps));
  1224 
  1224 
  1991     val sel_upd_simps = sel_convs' @ upd_convs';
  1991     val sel_upd_simps = sel_convs' @ upd_convs';
  1992     val iffs = [ext_inject]
  1992     val iffs = [ext_inject]
  1993     val final_thy =
  1993     val final_thy =
  1994       thms_thy
  1994       thms_thy
  1995       |> (snd oo PureThy.add_thmss)
  1995       |> (snd oo PureThy.add_thmss)
  1996           [(("simps", sel_upd_simps), [Attrib.theory Simplifier.simp_add]),
  1996           [(("simps", sel_upd_simps), [Simplifier.simp_add]),
  1997            (("iffs",iffs), [Attrib.theory iff_add])]
  1997            (("iffs",iffs), [iff_add])]
  1998       |> put_record name (make_record_info args parent fields extension induct_scheme')
  1998       |> put_record name (make_record_info args parent fields extension induct_scheme')
  1999       |> put_sel_upd (names @ [full_moreN]) sel_upd_simps
  1999       |> put_sel_upd (names @ [full_moreN]) sel_upd_simps
  2000       |> add_record_equalities extension_id equality'
  2000       |> add_record_equalities extension_id equality'
  2001       |> add_extinjects ext_inject
  2001       |> add_extinjects ext_inject
  2002       |> add_extsplit extension_name ext_split
  2002       |> add_extsplit extension_name ext_split