src/HOL/Tools/Transfer/transfer_bnf.ML
changeset 58234 265aea1e9985
parent 58230 61e4c96bf2b6
child 58356 2f04f1fd28aa
equal deleted inserted replaced
58233:108f9ab5466d 58234:265aea1e9985
   312     val old_lthy = lthy
   312     val old_lthy = lthy
   313     val old_As = snd (dest_Type (#T fp_sugar))
   313     val old_As = snd (dest_Type (#T fp_sugar))
   314     val liveness =
   314     val liveness =
   315       BNF_FP_Def_Sugar.liveness_of_fp_bnf (length old_As) (hd (#bnfs (#fp_res fp_sugar)));
   315       BNF_FP_Def_Sugar.liveness_of_fp_bnf (length old_As) (hd (#bnfs (#fp_res fp_sugar)));
   316     val (unsorted_As, lthy) = mk_TFrees live lthy
   316     val (unsorted_As, lthy) = mk_TFrees live lthy
   317     val As = map2 (Ctr_Sugar_Util.resort_tfree o snd o Ctr_Sugar_Util.dest_TFree_or_TVar)
   317     val As = map2 (Ctr_Sugar_Util.resort_tfree_or_tvar o snd o Ctr_Sugar_Util.dest_TFree_or_TVar)
   318       (map_filter (uncurry (fn true => SOME | false => K NONE)) (liveness ~~ old_As)) unsorted_As
   318       (map_filter (uncurry (fn true => SOME | false => K NONE)) (liveness ~~ old_As)) unsorted_As
   319     val predTs = map mk_pred1T As
   319     val predTs = map mk_pred1T As
   320     val (preds, lthy) = mk_Frees "P" predTs lthy
   320     val (preds, lthy) = mk_Frees "P" predTs lthy
   321     val args = map mk_eq_onp preds
   321     val args = map mk_eq_onp preds
   322     val cTs = map (SOME o certifyT lthy) (maps (replicate 2) As)
   322     val cTs = map (SOME o certifyT lthy) (maps (replicate 2) As)