src/HOL/Tools/BNF/bnf_fp_util.ML
changeset 55869 54ddb003e128
parent 55868 37b99986d435
child 55899 8c0a13e84963
equal deleted inserted replaced
55868:37b99986d435 55869:54ddb003e128
    28      xtor_co_fold_o_map_thms: thm list,
    28      xtor_co_fold_o_map_thms: thm list,
    29      xtor_co_rec_o_map_thms: thm list,
    29      xtor_co_rec_o_map_thms: thm list,
    30      rel_xtor_co_induct_thm: thm}
    30      rel_xtor_co_induct_thm: thm}
    31 
    31 
    32   val morph_fp_result: morphism -> fp_result -> fp_result
    32   val morph_fp_result: morphism -> fp_result -> fp_result
    33   val un_fold_of: 'a list -> 'a
       
    34   val co_rec_of: 'a list -> 'a
       
    35 
    33 
    36   val time: Proof.context -> Timer.real_timer -> string -> Timer.real_timer
    34   val time: Proof.context -> Timer.real_timer -> string -> Timer.real_timer
    37 
    35 
    38   val fixpoint: ('a * 'a -> bool) -> ('a list -> 'a list) -> 'a list -> 'a list
    36   val fixpoint: ('a * 'a -> bool) -> ('a list -> 'a list) -> 'a list -> 'a list
    39 
    37 
   234    xtor_co_rec_thms = map (Morphism.thm phi) xtor_co_rec_thms,
   232    xtor_co_rec_thms = map (Morphism.thm phi) xtor_co_rec_thms,
   235    xtor_co_fold_o_map_thms = map (Morphism.thm phi) xtor_co_fold_o_map_thms,
   233    xtor_co_fold_o_map_thms = map (Morphism.thm phi) xtor_co_fold_o_map_thms,
   236    xtor_co_rec_o_map_thms = map (Morphism.thm phi) xtor_co_rec_o_map_thms,
   234    xtor_co_rec_o_map_thms = map (Morphism.thm phi) xtor_co_rec_o_map_thms,
   237    rel_xtor_co_induct_thm = Morphism.thm phi rel_xtor_co_induct_thm};
   235    rel_xtor_co_induct_thm = Morphism.thm phi rel_xtor_co_induct_thm};
   238 
   236 
   239 fun un_fold_of [f, _] = f;
       
   240 
       
   241 fun co_rec_of [r] = r
       
   242   | co_rec_of [_, r] = r;
       
   243 
       
   244 fun time ctxt timer msg = (if Config.get ctxt bnf_timing
   237 fun time ctxt timer msg = (if Config.get ctxt bnf_timing
   245   then warning (msg ^ ": " ^ string_of_int (Time.toMilliseconds (Timer.checkRealTimer timer)) ^
   238   then warning (msg ^ ": " ^ string_of_int (Time.toMilliseconds (Timer.checkRealTimer timer)) ^
   246     "ms")
   239     "ms")
   247   else (); Timer.startRealTimer ());
   240   else (); Timer.startRealTimer ());
   248 
   241