src/Pure/pure_thy.ML
changeset 12695 37cb8f7308f6
parent 12311 ce5f9e61c037
child 12711 6a9412dd7d24
equal deleted inserted replaced
12694:9950c1ce9d24 12695:37cb8f7308f6
    28   val get_thm_closure: theory -> xstring -> thm
    28   val get_thm_closure: theory -> xstring -> thm
    29   val get_thms_closure: theory -> xstring -> thm list
    29   val get_thms_closure: theory -> xstring -> thm list
    30   val single_thm: string -> thm list -> thm
    30   val single_thm: string -> thm list -> thm
    31   val cond_extern_thm_sg: Sign.sg -> string -> xstring
    31   val cond_extern_thm_sg: Sign.sg -> string -> xstring
    32   val thms_containing: theory -> string list -> (string * thm) list
    32   val thms_containing: theory -> string list -> (string * thm) list
       
    33   val hide_thms: bool -> string list -> theory -> theory
    33   val store_thm: (bstring * thm) * theory attribute list -> theory -> theory * thm
    34   val store_thm: (bstring * thm) * theory attribute list -> theory -> theory * thm
    34   val smart_store_thms: (bstring * thm list) -> thm list
    35   val smart_store_thms: (bstring * thm list) -> thm list
    35   val smart_store_thms_open: (bstring * thm list) -> thm list
    36   val smart_store_thms_open: (bstring * thm list) -> thm list
    36   val forall_elim_var: int -> thm -> thm
    37   val forall_elim_var: int -> thm -> thm
    37   val forall_elim_vars: int -> thm -> thm
    38   val forall_elim_vars: int -> thm -> thm
   218   |> map (apsnd (Thm.transfer thy));
   219   |> map (apsnd (Thm.transfer thy));
   219 
   220 
   220 
   221 
   221 
   222 
   222 (** store theorems **)                    (*DESTRUCTIVE*)
   223 (** store theorems **)                    (*DESTRUCTIVE*)
       
   224 
       
   225 (* hiding -- affects current theory node only! *)
       
   226 
       
   227 fun hide_thms b names thy =
       
   228   let
       
   229     val r as ref {space, thms_tab, const_idx} = get_theorems thy;
       
   230     val space' = NameSpace.hide b (space, names);
       
   231   in r := {space = space', thms_tab = thms_tab, const_idx = const_idx}; thy end;
       
   232 
   223 
   233 
   224 (* naming *)
   234 (* naming *)
   225 
   235 
   226 fun gen_names j len name =
   236 fun gen_names j len name =
   227   map (fn i => name ^ "_" ^ string_of_int i) (j+1 upto j+len);
   237   map (fn i => name ^ "_" ^ string_of_int i) (j+1 upto j+len);