author | haftmann |
Thu, 19 Jun 2025 17:15:40 +0200 | |
changeset 82734 | 89347c0cc6a3 |
parent 77905 | acee6c7fafff |
permissions | -rw-r--r-- |
24047 | 1 |
(* Title: Pure/Tools/named_thms.ML |
2 |
Author: Makarius |
|
3 |
||
77905
acee6c7fafff
proper Thm.trim_context / Thm.transfer (see also 0d401f874942);
wenzelm
parents:
74561
diff
changeset
|
4 |
Named collections of theorems in canonical (reverse) order: OLD VERSION. |
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 |
|
77905
acee6c7fafff
proper Thm.trim_context / Thm.transfer (see also 0d401f874942);
wenzelm
parents:
74561
diff
changeset
|
30 |
fun content context = map (Thm.transfer'' context) (Item_Net.content (Data.get context)); |
33453 | 31 |
val get = content o Context.Proof; |
24047 | 32 |
|
77905
acee6c7fafff
proper Thm.trim_context / Thm.transfer (see also 0d401f874942);
wenzelm
parents:
74561
diff
changeset
|
33 |
val add_thm = Data.map o Item_Net.update o Thm.trim_context; |
33453 | 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; |