202 |
202 |
203 (** store theorems **) (*DESTRUCTIVE*) |
203 (** store theorems **) (*DESTRUCTIVE*) |
204 |
204 |
205 (* naming *) |
205 (* naming *) |
206 |
206 |
207 val default_name = fn "" => "it" | name => name; |
207 val defaultN = "it"; |
|
208 val default_name = fn "" => defaultN | name => name; |
208 |
209 |
209 fun gen_names len name = |
210 fun gen_names len name = |
210 map (fn i => name ^ "_" ^ string_of_int i) (1 upto len); |
211 map (fn i => name ^ "_" ^ string_of_int i) (1 upto len); |
211 |
212 |
212 fun name_single name x = [(default_name name, x)]; |
213 fun name_single name x = [(default_name name, x)]; |
213 fun name_multi name xs = gen_names (length xs) (default_name name) ~~ xs; |
214 fun name_multi name xs = gen_names (length xs) (default_name name) ~~ xs; |
214 |
215 |
215 |
216 |
216 (* enter_tthmx *) |
217 (* enter_tthmx *) |
217 |
218 |
|
219 fun cond_warning name msg = if Sign.base_name name = defaultN then () else warning msg; |
|
220 |
218 fun warn_overwrite name = |
221 fun warn_overwrite name = |
219 warning ("Replaced old copy of theorems " ^ quote name); |
222 cond_warning name ("Replaced old copy of theorems " ^ quote name); |
220 |
223 |
221 fun warn_same name = |
224 fun warn_same name = |
222 warning ("Theorem database already contains a copy of " ^ quote name); |
225 cond_warning name ("Theorem database already contains a copy of " ^ quote name); |
223 |
226 |
224 fun enter_tthmx sg app_name (bname, tthmx) = |
227 fun enter_tthmx sg app_name (bname, tthmx) = |
225 let |
228 let |
226 val name = Sign.full_name sg bname; |
229 val name = Sign.full_name sg bname; |
227 fun name_tthm (nm, (thm, tgs)) = (Thm.name_thm (nm, thm), tgs); |
230 fun name_tthm (nm, (thm, tgs)) = (Thm.name_thm (nm, thm), tgs); |