equal
deleted
inserted
replaced
54 |
54 |
55 val mk_co_rec: theory -> fp_kind -> typ list -> typ -> term -> term |
55 val mk_co_rec: theory -> fp_kind -> typ list -> typ -> term -> term |
56 |
56 |
57 val mk_conjunctN: int -> int -> thm |
57 val mk_conjunctN: int -> int -> thm |
58 val conj_dests: int -> thm -> thm list |
58 val conj_dests: int -> thm -> thm list |
|
59 |
|
60 val print_def_consts: bool -> (term * (string * thm)) list -> Proof.context -> unit |
59 end; |
61 end; |
60 |
62 |
61 structure BNF_FP_Rec_Sugar_Util : BNF_FP_REC_SUGAR_UTIL = |
63 structure BNF_FP_Rec_Sugar_Util : BNF_FP_REC_SUGAR_UTIL = |
62 struct |
64 struct |
63 |
65 |
172 | mk_conjunctN 2 2 = conjunct2 |
174 | mk_conjunctN 2 2 = conjunct2 |
173 | mk_conjunctN n m = conjunct2 RS (mk_conjunctN (n - 1) (m - 1)); |
175 | mk_conjunctN n m = conjunct2 RS (mk_conjunctN (n - 1) (m - 1)); |
174 |
176 |
175 fun conj_dests n thm = map (fn k => thm RS mk_conjunctN n k) (1 upto n); |
177 fun conj_dests n thm = map (fn k => thm RS mk_conjunctN n k) (1 upto n); |
176 |
178 |
|
179 fun print_def_consts int defs ctxt = |
|
180 Proof_Display.print_consts int (Position.thread_data ()) ctxt (K false) |
|
181 (map_filter (try (dest_Free o fst)) defs); |
|
182 |
177 end; |
183 end; |