src/HOL/BNF/Tools/bnf_fp_def_sugar.ML
changeset 54285 578371ba74cc
parent 54265 3e1d230f1c00
child 54493 5b34a5b93ec2
equal deleted inserted replaced
54284:0b53378080d9 54285:578371ba74cc
   177 fun strong_co_induct_of [_, s] = s;
   177 fun strong_co_induct_of [_, s] = s;
   178 
   178 
   179 (* TODO: register "sum" and "prod" as datatypes to enable N2M reduction for them *)
   179 (* TODO: register "sum" and "prod" as datatypes to enable N2M reduction for them *)
   180 
   180 
   181 fun register_fp_sugar key fp_sugar =
   181 fun register_fp_sugar key fp_sugar =
   182   Local_Theory.declaration {syntax = false, pervasive = false}
   182   Local_Theory.declaration {syntax = false, pervasive = true}
   183     (fn phi => Data.map (Symtab.default (key, morph_fp_sugar phi fp_sugar)));
   183     (fn phi => Data.map (Symtab.default (key, morph_fp_sugar phi fp_sugar)));
   184 
   184 
   185 fun register_fp_sugars fp pre_bnfs nested_bnfs nesting_bnfs (fp_res as {Ts, ...}) ctr_defss
   185 fun register_fp_sugars fp pre_bnfs nested_bnfs nesting_bnfs (fp_res as {Ts, ...}) ctr_defss
   186     ctr_sugars co_iterss mapss co_inducts co_iter_thmsss disc_co_itersss sel_co_iterssss lthy =
   186     ctr_sugars co_iterss mapss co_inducts co_iter_thmsss disc_co_itersss sel_co_iterssss lthy =
   187   (0, lthy)
   187   (0, lthy)