1541 ||> Sign.add_consts_i |
1541 ||> Sign.add_consts_i |
1542 (map Syntax.no_syn ((apfst base ext_decl)::dest_decls@upd_decls)) |
1542 (map Syntax.no_syn ((apfst base ext_decl)::dest_decls@upd_decls)) |
1543 ||>> PureThy.add_defs false (map Thm.no_attributes (ext_spec::dest_specs)) |
1543 ||>> PureThy.add_defs false (map Thm.no_attributes (ext_spec::dest_specs)) |
1544 ||>> PureThy.add_defs false (map Thm.no_attributes upd_specs) |
1544 ||>> PureThy.add_defs false (map Thm.no_attributes upd_specs) |
1545 |-> (fn args as ((_, dest_defs), upd_defs) => |
1545 |-> (fn args as ((_, dest_defs), upd_defs) => |
1546 fold Code.add_default_func dest_defs |
1546 fold Code.add_default_eqn dest_defs |
1547 #> fold Code.add_default_func upd_defs |
1547 #> fold Code.add_default_eqn upd_defs |
1548 #> pair args); |
1548 #> pair args); |
1549 val ((([abs_inject, abs_inverse, abs_induct], ext_def :: dest_defs), upd_defs), defs_thy) = |
1549 val ((([abs_inject, abs_inverse, abs_induct], ext_def :: dest_defs), upd_defs), defs_thy) = |
1550 timeit_msg "record extension type/selector/update defs:" mk_defs; |
1550 timeit_msg "record extension type/selector/update defs:" mk_defs; |
1551 |
1551 |
1552 (* prepare propositions *) |
1552 (* prepare propositions *) |
1947 |> ((PureThy.add_defs false o map Thm.no_attributes) sel_specs) |
1947 |> ((PureThy.add_defs false o map Thm.no_attributes) sel_specs) |
1948 ||>> ((PureThy.add_defs false o map Thm.no_attributes) upd_specs) |
1948 ||>> ((PureThy.add_defs false o map Thm.no_attributes) upd_specs) |
1949 ||>> ((PureThy.add_defs false o map Thm.no_attributes) |
1949 ||>> ((PureThy.add_defs false o map Thm.no_attributes) |
1950 [make_spec, fields_spec, extend_spec, truncate_spec]) |
1950 [make_spec, fields_spec, extend_spec, truncate_spec]) |
1951 |-> (fn defs as ((sel_defs, upd_defs), derived_defs) => |
1951 |-> (fn defs as ((sel_defs, upd_defs), derived_defs) => |
1952 fold Code.add_default_func sel_defs |
1952 fold Code.add_default_eqn sel_defs |
1953 #> fold Code.add_default_func upd_defs |
1953 #> fold Code.add_default_eqn upd_defs |
1954 #> fold Code.add_default_func derived_defs |
1954 #> fold Code.add_default_eqn derived_defs |
1955 #> pair defs) |
1955 #> pair defs) |
1956 val (((sel_defs, upd_defs), derived_defs), defs_thy) = |
1956 val (((sel_defs, upd_defs), derived_defs), defs_thy) = |
1957 timeit_msg "record trfuns/tyabbrs/selectors/updates/make/fields/extend/truncate defs:" |
1957 timeit_msg "record trfuns/tyabbrs/selectors/updates/make/fields/extend/truncate defs:" |
1958 mk_defs; |
1958 mk_defs; |
1959 |
1959 |