equal
deleted
inserted
replaced
8 *) |
8 *) |
9 |
9 |
10 signature BNF_GFP = |
10 signature BNF_GFP = |
11 sig |
11 sig |
12 val bnf_gfp: binding list -> typ list list -> BNF_Def.BNF list -> local_theory -> |
12 val bnf_gfp: binding list -> typ list list -> BNF_Def.BNF list -> local_theory -> |
13 (term list * term list * thm list * thm list) * local_theory |
13 (term list * term list * thm list * thm list * thm list) * local_theory |
14 end; |
14 end; |
15 |
15 |
16 structure BNF_GFP : BNF_GFP = |
16 structure BNF_GFP : BNF_GFP = |
17 struct |
17 struct |
18 |
18 |
2987 |> maps (fn (thmN, thmss) => |
2987 |> maps (fn (thmN, thmss) => |
2988 map2 (fn b => fn thms => |
2988 map2 (fn b => fn thms => |
2989 ((Binding.qualify true (Binding.name_of b) (Binding.name thmN), []), [(thms, [])])) |
2989 ((Binding.qualify true (Binding.name_of b) (Binding.name thmN), []), [(thms, [])])) |
2990 bs thmss) |
2990 bs thmss) |
2991 in |
2991 in |
2992 ((flds, unfs, fld_unf_thms, unf_fld_thms), |
2992 ((unfs, flds, unf_fld_thms, fld_unf_thms, fld_inject_thms), |
2993 lthy |> Local_Theory.notes (common_notes @ notes) |> snd) |
2993 lthy |> Local_Theory.notes (common_notes @ notes) |> snd) |
2994 end; |
2994 end; |
2995 |
2995 |
2996 val _ = |
2996 val _ = |
2997 Outer_Syntax.local_theory @{command_spec "codata_raw"} "greatest fixed points for BNF equations" |
2997 Outer_Syntax.local_theory @{command_spec "codata_raw"} "greatest fixed points for BNF equations" |