src/HOL/Tools/record_package.ML
changeset 9315 f793f05024f6
parent 9230 17ae63f82ad8
child 9626 c4a45149cc46
equal deleted inserted replaced
9314:fd8b0f219879 9315:f793f05024f6
   617     (* 2nd stage: defs_thy *)
   617     (* 2nd stage: defs_thy *)
   618 
   618 
   619     val (defs_thy, (field_defs, dest_defs)) =
   619     val (defs_thy, (field_defs, dest_defs)) =
   620       types_thy
   620       types_thy
   621        |> (Theory.add_consts_i o map (Syntax.no_syn o apfst base)) (field_decls @ dest_decls)
   621        |> (Theory.add_consts_i o map (Syntax.no_syn o apfst base)) (field_decls @ dest_decls)
   622        |> (PureThy.add_defs_i o map (fn x => (x, [Drule.tag_internal]))) field_specs
   622        |> (PureThy.add_defs_i false o map (fn x => (x, [Drule.tag_internal]))) field_specs
   623        |>>> (PureThy.add_defs_i o map (fn x => (x, [Drule.tag_internal]))) dest_specs;
   623        |>>> (PureThy.add_defs_i false o map (fn x => (x, [Drule.tag_internal]))) dest_specs;
   624 
   624 
   625 
   625 
   626     (* 3rd stage: thms_thy *)
   626     (* 3rd stage: thms_thy *)
   627 
   627 
   628     val prove = prove_simp (Theory.sign_of defs_thy) HOL_basic_ss;
   628     val prove = prove_simp (Theory.sign_of defs_thy) HOL_basic_ss;
   787       |> Theory.add_tyabbrs_i recordT_specs     (*not made part of record name space!*)
   787       |> Theory.add_tyabbrs_i recordT_specs     (*not made part of record name space!*)
   788       |> Theory.add_path bname
   788       |> Theory.add_path bname
   789       |> Theory.add_trfuns ([], [], field_tr's, [])
   789       |> Theory.add_trfuns ([], [], field_tr's, [])
   790       |> (Theory.add_consts_i o map Syntax.no_syn)
   790       |> (Theory.add_consts_i o map Syntax.no_syn)
   791         (sel_decls @ update_decls @ make_decls)
   791         (sel_decls @ update_decls @ make_decls)
   792       |> (PureThy.add_defs_i o map (fn x => (x, [Drule.tag_internal]))) sel_specs
   792       |> (PureThy.add_defs_i false o map (fn x => (x, [Drule.tag_internal]))) sel_specs
   793       |>>> (PureThy.add_defs_i o map (fn x => (x, [Drule.tag_internal]))) update_specs
   793       |>>> (PureThy.add_defs_i false o map (fn x => (x, [Drule.tag_internal]))) update_specs
   794       |>>> (PureThy.add_defs_i o map Thm.no_attributes) make_specs;
   794       |>>> (PureThy.add_defs_i false o map Thm.no_attributes) make_specs;
   795 
   795 
   796 
   796 
   797     (* 3rd stage: thms_thy *)
   797     (* 3rd stage: thms_thy *)
   798 
   798 
   799     val parent_simps = flat (map #simps parents);
   799     val parent_simps = flat (map #simps parents);