src/Pure/Tools/named_theorems.ML
changeset 74152 069f6b2c5a07
parent 70182 ca9dfa7ee3bd
child 74561 8e6c973003c8
equal deleted inserted replaced
74151:c3b3517ef4ba 74152:069f6b2c5a07
    32 
    32 
    33 fun new_entry name =
    33 fun new_entry name =
    34   Data.map (fn data =>
    34   Data.map (fn data =>
    35     if Symtab.defined data name
    35     if Symtab.defined data name
    36     then error ("Duplicate declaration of named theorems: " ^ quote name)
    36     then error ("Duplicate declaration of named theorems: " ^ quote name)
    37     else Symtab.update (name, Thm.full_rules) data);
    37     else Symtab.update (name, Thm.item_net) data);
    38 
    38 
    39 fun undeclared name = "Undeclared named theorems " ^ quote name;
    39 fun undeclared name = "Undeclared named theorems " ^ quote name;
    40 
    40 
    41 val defined_entry = Symtab.defined o Data.get;
    41 val defined_entry = Symtab.defined o Data.get;
    42 
    42 
    56 fun content context =
    56 fun content context =
    57   rev o map (Thm.transfer'' context) o Item_Net.content o the_entry context;
    57   rev o map (Thm.transfer'' context) o Item_Net.content o the_entry context;
    58 
    58 
    59 val get = content o Context.Proof;
    59 val get = content o Context.Proof;
    60 
    60 
    61 fun clear name = map_entry name (K Thm.full_rules);
    61 fun clear name = map_entry name (K Thm.item_net);
    62 
    62 
    63 fun add_thm name th = map_entry name (Item_Net.update (Thm.trim_context th));
    63 fun add_thm name th = map_entry name (Item_Net.update (Thm.trim_context th));
    64 fun del_thm name = map_entry name o Item_Net.remove;
    64 fun del_thm name = map_entry name o Item_Net.remove;
    65 
    65 
    66 val add = Thm.declaration_attribute o add_thm;
    66 val add = Thm.declaration_attribute o add_thm;