| author | wenzelm |
| Fri, 13 Jan 2023 17:14:59 +0100 | |
| changeset 76965 | 922df6aa1607 |
| parent 74561 | 8e6c973003c8 |
| child 77905 | acee6c7fafff |
| permissions | -rw-r--r-- |
| 24047 | 1 |
(* Title: Pure/Tools/named_thms.ML |
2 |
Author: Makarius |
|
3 |
||
| 33453 | 4 |
Named collections of theorems in canonical order. |
| 24047 | 5 |
*) |
6 |
||
7 |
signature NAMED_THMS = |
|
8 |
sig |
|
|
36296
5cc547abd995
Item_Net/Named_Thms: export efficient member operation;
wenzelm
parents:
33519
diff
changeset
|
9 |
val member: Proof.context -> thm -> bool |
| 24047 | 10 |
val get: Proof.context -> thm list |
| 26363 | 11 |
val add_thm: thm -> Context.generic -> Context.generic |
12 |
val del_thm: thm -> Context.generic -> Context.generic |
|
| 24047 | 13 |
val add: attribute |
14 |
val del: attribute |
|
15 |
val setup: theory -> theory |
|
16 |
end; |
|
17 |
||
| 45294 | 18 |
functor Named_Thms(val name: binding val description: string): NAMED_THMS = |
| 24047 | 19 |
struct |
20 |
||
| 33519 | 21 |
structure Data = Generic_Data |
| 24047 | 22 |
( |
| 33453 | 23 |
type T = thm Item_Net.T; |
| 74152 | 24 |
val empty = Thm.item_net; |
| 33519 | 25 |
val merge = Item_Net.merge; |
| 24047 | 26 |
); |
27 |
||
|
36296
5cc547abd995
Item_Net/Named_Thms: export efficient member operation;
wenzelm
parents:
33519
diff
changeset
|
28 |
val member = Item_Net.member o Data.get o Context.Proof; |
|
5cc547abd995
Item_Net/Named_Thms: export efficient member operation;
wenzelm
parents:
33519
diff
changeset
|
29 |
|
| 33453 | 30 |
val content = Item_Net.content o Data.get; |
31 |
val get = content o Context.Proof; |
|
| 24047 | 32 |
|
| 33453 | 33 |
val add_thm = Data.map o Item_Net.update; |
34 |
val del_thm = Data.map o Item_Net.remove; |
|
| 26363 | 35 |
|
36 |
val add = Thm.declaration_attribute add_thm; |
|
37 |
val del = Thm.declaration_attribute del_thm; |
|
| 24047 | 38 |
|
39 |
val setup = |
|
| 45294 | 40 |
Attrib.setup name (Attrib.add_del add del) ("declaration of " ^ description) #>
|
41 |
Global_Theory.add_thms_dynamic (name, content); |
|
| 24047 | 42 |
|
43 |
end; |