Nominal/nominal_dt_rawfuns.ML
changeset 2385 fe25a3ffeb14
parent 2384 841b7e34e70a
child 2388 ebf253d80670
equal deleted inserted replaced
2384:841b7e34e70a 2385:fe25a3ffeb14
   211   map2 (mk_fv_bn_eq lthy bn_trm fv_map fv_bn_map) (bn_argss ~~ nth_constrs_info) nth_bclausess
   211   map2 (mk_fv_bn_eq lthy bn_trm fv_map fv_bn_map) (bn_argss ~~ nth_constrs_info) nth_bclausess
   212 end
   212 end
   213 
   213 
   214 fun define_raw_fvs descr sorts bn_info bclausesss constr_thms lthy =
   214 fun define_raw_fvs descr sorts bn_info bclausesss constr_thms lthy =
   215 let
   215 let
   216   val _ = tracing ("bclausesss\n" ^ cat_lines (map (cat_lines o map PolyML.makestring) bclausesss))
       
   217 
       
   218   val fv_names = prefix_dt_names descr sorts "fv_"
   216   val fv_names = prefix_dt_names descr sorts "fv_"
   219   val fv_arg_tys = all_dtyps descr sorts
   217   val fv_arg_tys = all_dtyps descr sorts
   220   val fv_tys = map (fn ty => ty --> @{typ "atom set"}) fv_arg_tys;
   218   val fv_tys = map (fn ty => ty --> @{typ "atom set"}) fv_arg_tys;
   221   val fv_frees = map Free (fv_names ~~ fv_tys);
   219   val fv_frees = map Free (fv_names ~~ fv_tys);
   222   val fv_map = fv_arg_tys ~~ fv_frees
   220   val fv_map = fv_arg_tys ~~ fv_frees