src/Pure/pure_thy.ML
changeset 5933 7b0f502a25b1
parent 5907 4b9f4e310891
child 6027 9dd06eeda95c
equal deleted inserted replaced
5932:737559a43e71 5933:7b0f502a25b1
   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);