src/HOL/Tools/BNF/bnf_gfp.ML
changeset 55803 74d3fe9031d8
parent 55770 f2cf7f92c9ac
child 55851 3d40cf74726c
equal deleted inserted replaced
55802:f7ceebe2f1b5 55803:74d3fe9031d8
     9 
     9 
    10 signature BNF_GFP =
    10 signature BNF_GFP =
    11 sig
    11 sig
    12   val construct_gfp: mixfix list -> binding list -> binding list -> binding list list ->
    12   val construct_gfp: mixfix list -> binding list -> binding list -> binding list list ->
    13     binding list -> (string * sort) list -> typ list * typ list list -> BNF_Def.bnf list ->
    13     binding list -> (string * sort) list -> typ list * typ list list -> BNF_Def.bnf list ->
    14     local_theory -> BNF_FP_Util.fp_result * local_theory
    14     BNF_Comp.absT_info list -> local_theory -> BNF_FP_Util.fp_result * local_theory
    15 end;
    15 end;
    16 
    16 
    17 structure BNF_GFP : BNF_GFP =
    17 structure BNF_GFP : BNF_GFP =
    18 struct
    18 struct
    19 
    19 
    53 fun tree_to_coind_wits _ (Wit_Leaf _) = []
    53 fun tree_to_coind_wits _ (Wit_Leaf _) = []
    54   | tree_to_coind_wits lwitss (Wit_Node ((i, nwit, I), subtrees)) =
    54   | tree_to_coind_wits lwitss (Wit_Node ((i, nwit, I), subtrees)) =
    55      ((i, I), nth (nth lwitss i) nwit) :: maps (tree_to_coind_wits lwitss) subtrees;
    55      ((i, I), nth (nth lwitss i) nwit) :: maps (tree_to_coind_wits lwitss) subtrees;
    56 
    56 
    57 (*all BNFs have the same lives*)
    57 (*all BNFs have the same lives*)
    58 fun construct_gfp mixfixes map_bs rel_bs set_bss0 bs resBs (resDs, Dss) bnfs lthy =
    58 fun construct_gfp mixfixes map_bs rel_bs set_bss0 bs resBs (resDs, Dss) bnfs _ lthy =
    59   let
    59   let
    60     val time = time lthy;
    60     val time = time lthy;
    61     val timer = time (Timer.startRealTimer ());
    61     val timer = time (Timer.startRealTimer ());
    62 
    62 
    63     val live = live_of_bnf (hd bnfs);
    63     val live = live_of_bnf (hd bnfs);