aboutsummaryrefslogtreecommitdiff
path: root/html/Kit/dtd/pgip.dtd
blob: 2861fff21cca931e9f6275df2261351ba8039623 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
<?xml version="1.0" encoding="UTF-8"?>

<!-- DTD for PGIP, the Proof General Interface Protocol		   -->
<!-- Author:  David Aspinall, LFCS, University of Edinburgh        -->
<!-- Version: pgip.dtd,v 1.6 2001/09/10 19:00:42 da Exp     -->

<!-- Status:  Incomplete.					   -->
<!-- For commentary, see the Proof General Kit white paper,        -->
<!-- available from http://www.proofgeneral.org/kit		   -->


<!ELEMENT pgip (%provermsg; | %kitmsg;)*>
<!ATTLIST pgip
	    version CDATA 
	    class   CDATA #IMPLIED
	    origin  CDATA 
	    id	    CDATA>


<!-- STATUS/ERROR MESSAGES -->
<!-- ===================== -->

<!ELEMENT information (#PCDATA)>
<!ATTLIST information
	   kind		CDATA #IMPLIED
	   location	CDATA #IMPLIED>

<!-- kind=message,urgentmessage,display -->

<!ELEMENT error (#PCDATA)>
<!ATTLIST error
	   kind		CDATA #IMPLIED
	   location	CDATA #IMPLIED>

<!-- kind=warning,fatal,interrupt -->

<!ENTITY % proverstatus "information | error">



<!-- CONFIGURATION MESSAGES -->
<!-- ====================== -->

<!ENTITY % kitconfig  "usespgml | haspref | prefval | idtable | 
			addid | delid | menuadd | menudel | guiconfig">

<!-- This is how it should be: 
  <!ENTITY % pgml SYSTEM "pgml.dtd">  
  -->

<!-- Types for config settings -->
 
<!ELEMENT pgipbool EMPTY> 
<!ELEMENT pgipint (#PCDATA)>
<!ELEMENT pgipstring (#PCDATA)>
<!ELEMENT pgipchoice (pgipchoiceitem+)>
<!ELEMENT pgipchoiceitem (#PCDATA)>
<!ATTLIST pgipchoiceitem
		tag CDATA #IMPLIED>

<!ENTITY % pgiptype "pgipbool | pgipint | pgipstring | pgipchoice"> 


<!ELEMENT usespgml EMPTY>
<!ATTLIST usespgml 
	   version CDATA #IMPLIED>

<!ELEMENT haspref pgiptype>
<!ATTLIST haspref 
	   default  CDATA #IMPLIED
	   class    CDATA #IMPLIED>

<!ELEMENT prefval (#PCDATA)>
<!ATTLIST prefval
	   name     CDATA #IMPLIED>

<!ELEMENT idtable (#PCDATA)>
<!ATTLIST idtable
	   class    CDATA #IMPLIED>

<!ELEMENT addid (#PCDATA)>
<!ATTLIST addid
	   class    CDATA #IMPLIED>

<!ELEMENT delid (#PCDATA)>
<!ATTLIST delid
	   class    CDATA #IMPLIED>

<!ELEMENT menuadd (#PCDATA)>
<!ATTLIST menuadd
	   path	    CDATA #IMPLIED
	   name	    CDATA #IMPLIED>	   	

<!ELEMENT menudel (#PCDATA)>
<!ATTLIST menudel
	   path	    CDATA #IMPLIED
	   name	    CDATA #IMPLIED>	   	
	   

<!-- gui configuration -->	   

<!-- the PCDATA is the icon, base64-encoded --> 
<!ELEMENT objtype (#PCDATA)>
<!ATTLIST objtype 
           name CDATA #REQUIRED>

<!ELEMENT opn (opsrc, optrg, opcmd)>
<!ATTLIST opn
           name CDATA #REQUIRED>

<!-- source types as space-separated list; target type is a single type -->
<!ELEMENT opsrc (#PCDATA)>
<!ELEMENT optrg (#PCDATA)>
<!-- the prover command, with a printf "%1"-style substitution of arguments -->
<!ELEMENT opcmd (#PCDATA)>

<!-- proof operations (no target sort) -->
<!ELEMENT proofopn (opsrc, opcmd)>
<!ATTLIST opn
           name CDATA #REQUIRED>

<!-- interactive operations-- require some input -->
<!ELEMENT iopn (inputform, opsrc, optrg, opcmd)>
<!ATTLIST iopn
           name CDATA #REQUIRED>

<!-- an input form is a list of fields -->
<!ELEMENT inputform (field)+>
<!-- and a field has a type (int, string, bool, choice(c1...cn)) -->
<!-- and a name; under that name, it will be substituted into the command -->
<!-- Ex. field name=number  opcmd="rtac %1 %number" -->
<!-- the PCDATA is the prompt for the input field -->
<!ELEMENT field (pgiptype)>
<!ATTLIST field
           type CDATA #REQUIRED
           name CDATA #REQUIRED>
           

<!ELEMENT guiconfig (objtype*, opn*, iopn*, proofopn*) >


	   
<!ENTITY % proverconfig  "askpgml | askprefs | resetprefs | 
			  setpref | getpref">

<!ELEMENT askpgml EMPTY>

<!ELEMENT askprefs EMPTY>
<!ATTLIST askprefs
	   class   CDATA #IMPLIED>

<!ELEMENT resetprefs EMPTY>
<!ATTLIST resetprefs
	   class   CDATA #IMPLIED>

<!ELEMENT setpref EMPTY>
<!ATTLIST setpref
	   class   CDATA #IMPLIED>

<!ELEMENT getpref EMPTY>
<!ATTLIST getpref
	   class   CDATA #IMPLIED>



<!-- COMMANDS -->
<!-- ======== -->

<!ELEMENT provercmd (#PCDATA)>

<!ELEMENT goalcmd (#PCDATA)>

<!ELEMENT undocmd EMPTY>

<!ELEMENT abortcmd EMPTY>

<!ELEMENT closecmd (#PCDATA)
	   goalid CDATA #REQUIRED> 

<!ELEMENT postponecmd (#PCDATA)
           goalid CDATA #REQUIRED
	   thmname CDATA #REQUIRED> 

<!ELEMENT savecmd EMPTY>
<!ATTLIST savecmd 
           thmname CDATA #REQUIRED>

<!ELEMENT forgetcmd EMPTY>
<!ATTLIST forgetcmd 
           thmname CDATA #REQUIRED>

<!ELEMENT restorecmd EMPTY>
<!ATTLIST restorecmd 
           goalid CDATA #REQUIRED>

<!ELEMENT loadfilecmd (#PCDATA)>

<!ELEMENT retractfilecmd (#PCDATA)>

<!ENTITY % command "provercmd | goalcmd | undocmd | savecmd | forgetcmd |
		     closecmd | quitcmd | postponecmd | restorecmd |
		     loadfilecmd | retractfilecmd">

<!-- savecmd      Finishes a proof and saves a new theorem 
     closecmd     Temporarily closes a proof and saves state with given id 
     postponecmd  As closecmd, but saves a new theorem and 
		   generates a proof obligation 
 -->




<!-- Roots of PGIP messages -->

<!-- Messages sent to PG Kit components -->

<!ENTITY % kitmsg     "%kitconfig | %proverstatus">

<!-- Messages sent to proof assistant (class "pa") -->

<!ENTITY % provermsg	"proverconfig">




<!ELEMENT br EMPTY>