agriesma@304
|
1 |
\documentclass[11pt,a4paper]{article}
|
agriesma@304
|
2 |
\usepackage{latexsym}
|
agriesma@304
|
3 |
\def\isac{${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}\:$}
|
agriesma@304
|
4 |
\title{\isac Interfaces\\
|
agriesma@304
|
5 |
Frontend --- Kernel --- Frontend}
|
agriesma@304
|
6 |
\author{Walther Neuper}
|
agriesma@304
|
7 |
|
agriesma@304
|
8 |
\begin{document}
|
agriesma@304
|
9 |
\maketitle
|
agriesma@304
|
10 |
|
agriesma@304
|
11 |
\def\pow{\;\;\widehat{ }\;\;\widehat{ }\;\;\widehat{ }}
|
agriesma@304
|
12 |
|
agriesma@304
|
13 |
In the Backus-Naur-Form used below the symbols of the meta language
|
agriesma@304
|
14 |
are $\; ::= \;\; | \;\; ( \;\; ) \;\; ^* \;\; ^+ \;\;\epsilon\;\;$ as usual, whereas
|
agriesma@304
|
15 |
italic parenthesis {\it (} {\it )}, braces {\it\{} {\it\}} and
|
agriesma@304
|
16 |
brackets {\it[} {\it]} belong to the object language. Terminal symbols
|
agriesma@304
|
17 |
start with an upper-case letter (reminding of SML datatype
|
agriesma@304
|
18 |
constructors), non-terminals start with a lower-case letter. The
|
agriesma@304
|
19 |
nonterminals {\it int} and {\it string} are as defined in SML (in
|
agriesma@304
|
20 |
particular: negative numbers are $\tilde{ }\,1,\cdots$ and not $-1,\cdots$, strings are quoted by ''$\;$''), {\it digit} has the obvious
|
agriesma@304
|
21 |
meaning, and {\it MAT} is being defined elsewhere. Inserted comments {\it (* \dots *)} do not belong to the object-language.
|
agriesma@304
|
22 |
|
agriesma@304
|
23 |
|
agriesma@304
|
24 |
|
agriesma@304
|
25 |
\begin{tabbing}
|
agriesma@304
|
26 |
123\={\it pro}\={\it ofID} \=cmd \=123\=123\=123\=123451234512345\=\kill
|
agriesma@304
|
27 |
{\it FE-KE ::= }\\
|
agriesma@304
|
28 |
\>\>$\:\;${\it StdinSML 0 0 0 0 New\_User ; cr}\\
|
agriesma@304
|
29 |
\>\>$|\;${\it StdinSML userID 0 0 0 End\_User ; cr}\\
|
agriesma@304
|
30 |
\>\>$|\;${\it StdinSML userID proofID acellID cellID dataFK ; cr}\\
|
agriesma@304
|
31 |
|
agriesma@304
|
32 |
\>{\it userID} \>\>::= {\it int}\\
|
agriesma@304
|
33 |
\>{\it proofID}\>\>::= {\it int}\\
|
agriesma@304
|
34 |
\>{\it acellID}\>\>::= {\it cellID}\\
|
agriesma@304
|
35 |
\>{\it cellID} \>\>::= {\it int}\\
|
agriesma@304
|
36 |
\>{\it cr} \>\>::= {\it carriage-return}\\
|
agriesma@304
|
37 |
\\
|
agriesma@304
|
38 |
\>{\it dataFK}\>\>::= {\it New\_Proof} $\:|\:$ {\it End\_Proof}\\
|
agriesma@304
|
39 |
\>\>\>$\:|\:$ {\it Command user\_cmd}\\
|
agriesma@304
|
40 |
\>\>\>$\:|\:$ {\it RuleFK rule}\\
|
agriesma@304
|
41 |
\>\>\>$\:|\:$ {\it FormFK MAT}\\
|
agriesma@304
|
42 |
\>\>\>$\:|\:$ {\it PpcFK ( mat\_ppc} )\`\\
|
agriesma@304
|
43 |
\\
|
agriesma@304
|
44 |
\>\>{\it user\_cmd} ::=
|
agriesma@304
|
45 |
{\it Accept} $\:|\:$ {\it NotAccept} $\:|\:$ {\it Example}\\
|
agriesma@304
|
46 |
\>\>\>\>$\:|\:$ {\it YourTurn} $\:|\:$ {\it Rules} $\:|\:$ {\it DontKnow}\\
|
agriesma@304
|
47 |
\>\>\>\>$\:|\:$ {\it Undo} $\:|\:$ {\it Auto} $\:|\:$ {\it Details}\`\\
|
agriesma@304
|
48 |
\>\>\>\>$\:|\:$ {\it ActivePlus} $\:|\:$ {\it ActiveMinus}\`\\
|
agriesma@304
|
49 |
\>\>\>\>$\:|\:$ {\it StepwidthPlus} $\:|\:$ {\it StepwidthMinus}\`\\
|
agriesma@304
|
50 |
\\
|
agriesma@304
|
51 |
\>\>{\it rule} ::= {\it Init\_Proof\_Hid ( dialogmode , mat\_list , spec )}\\
|
agriesma@304
|
52 |
\>\>\>$|\:$ {\it Init\_Proof }\>\>\>\>\>$|\:$ {\it
|
agriesma@304
|
53 |
Specify\_Domain domID} \\
|
agriesma@304
|
54 |
\>\>\>$|\:$ {\it Specify\_Problem pblID}\>\>\>\>\>$|\:$ {\it
|
agriesma@304
|
55 |
Specify\_Method metID} \\
|
agriesma@304
|
56 |
|
agriesma@304
|
57 |
\>\>\>$|\:$ {\it Add\_Given MAT}\>\>\>\>\>$|\:$ {\it Del\_Given MAT}\\
|
agriesma@304
|
58 |
\>\>\>$|\:$ {\it Add\_Find MAT}\>\>\>\>\>$|\:$ {\it Del\_Find MAT}\\
|
agriesma@304
|
59 |
\>\>\>$|\:$ {\it Add\_Relation MAT}\>\>\>\>\>$|\:$ {\it Del\_Relation MAT}\\
|
agriesma@304
|
60 |
|
agriesma@304
|
61 |
\>\>\>$|\:$ {\it Refine pblID}\>\>\>\>\>$|\:$ {\it Apply\_Method metID}\\
|
agriesma@304
|
62 |
\>\>\>$|\:$ {\it Check\_Postcond pblID}\>\>\>\>\>$|\:$ {\it Free\_Solve}\\
|
agriesma@304
|
63 |
\\
|
agriesma@304
|
64 |
\>\>\>$|\:$ {\it Rewrite\_Inst subs thm}
|
agriesma@304
|
65 |
\>\>\>\>\>$|\:$ {\it Rewrite thm}\\
|
agriesma@304
|
66 |
\>\>\>$|\:$ {\it Rewrite\_Set\_Inst ( subs , rls )}
|
agriesma@304
|
67 |
\>\>\>\>\>$|\:$ {\it Rewrite\_Set rls}\`\\
|
agriesma@304
|
68 |
\>\>\>$|\:$ {\it End\_Ruleset}\>\>\>\>\>$|\:$ {\it Calculate op}\\
|
agriesma@304
|
69 |
\>\>\>$|\:$ {\it Rewrite\_Asm thm}\`\\
|
agriesma@304
|
70 |
\\
|
agriesma@304
|
71 |
\>\>\>$|\:$ {\it Substitute subs}\>\>\>\>\>$|\:$ {\it Apply\_Assumption preds}\\
|
agriesma@304
|
72 |
\>\>\>$|\:$ {\it Take term} \>\>\>\>\>$|\:$ {\it Take\_Inst term}\\
|
agriesma@304
|
73 |
\>\>\>$|\:$ {\it Group ( con , int\_list )}\\
|
agriesma@304
|
74 |
\>\>\>$|\:$ {\it Subproblem ( spec , mat\_list )}
|
agriesma@304
|
75 |
\>\>\>\>\>$|\:$ {\it CAScmd term}\\
|
agriesma@304
|
76 |
\\
|
agriesma@304
|
77 |
\>\>\>$|\:$ {\it Split\_And} \>\>\>\>\>$|\:$ {\it Conclude\_And} \\
|
agriesma@304
|
78 |
\>\>\>$|\:$ {\it Split\_Or} \>\>\>\>\>$|\:$ {\it Conclude\_Or} \\
|
agriesma@304
|
79 |
\>\>\>$|\:$ {\it Begin\_Trans}\>\>\>\>\>$|\:$ {\it End\_Trans} \\
|
agriesma@304
|
80 |
\>\>\>$|\:$ {\it Begin\_Sequ} \>\>\>\> \\
|
agriesma@304
|
81 |
\>\>\>$|\:$ {\it Intersect} \>\>\>\>\>$|\:$ {\it End\_Intersect} \\
|
agriesma@304
|
82 |
\>\>\>$|\:$ {\it Check\_elementwise pred}
|
agriesma@304
|
83 |
\>\>\>\>\>$|\:$ {\it Collect\_Trues}\`\\
|
agriesma@304
|
84 |
\>\>\>$|\:$ {\it Mstep string}\\
|
agriesma@304
|
85 |
\\
|
agriesma@304
|
86 |
{\it mat\_ppc}::=
|
agriesma@304
|
87 |
\>\>\>{\it ( ( Problem pblID )}$\:|\:${\it ( Method metID ))}\`\\
|
agriesma@304
|
88 |
\>\>\>{\it Given mat\_list}\\
|
agriesma@304
|
89 |
\>\>\>{\it Where mat\_list}\\
|
agriesma@304
|
90 |
\>\>\>{\it Find mat\_list}\\
|
agriesma@304
|
91 |
\>\>\>{\it With mat\_list}\\
|
agriesma@304
|
92 |
\>\>\>{\it Relate mat\_list}\\
|
agriesma@304
|
93 |
\\
|
agriesma@304
|
94 |
{\it dialogmode} \>\>\>::= {\it string}\\
|
agriesma@304
|
95 |
{\it domID} \>\>\>::= {\it string}\\
|
agriesma@304
|
96 |
{\it pblID} \>\>\>::= {\it string\_list}\\
|
agriesma@304
|
97 |
{\it metID} \>\>\>::= {\it ( domID , string )}\\
|
agriesma@304
|
98 |
{\it spec} \>\>\>::= {\it ( domID , pblID , metID )}\\
|
agriesma@304
|
99 |
\\
|
agriesma@304
|
100 |
{\it thm} \>\>::= {\it ( thmID , MAT )}\>\>\>\>\>\>{\it (* theorem *)}\\
|
agriesma@304
|
101 |
{\it thmID}\>\>::= {\it string}\\
|
agriesma@304
|
102 |
{\it term} \>\>::= {\it MAT}\\
|
agriesma@304
|
103 |
{\it pred} \>\>::= {\it MAT}\>\>\>\>\>\> {\it (* predicate *)}\`\\
|
agriesma@304
|
104 |
{\it preds}\>\>::= {\it mat\_list}\>\>\>\>\>\>{\it (* predicates *)}\\
|
agriesma@304
|
105 |
{\it rls} \>\>::= {\it string} \>\>\>\>\>\>{\it (* set of rewrite-rules *)}\\
|
agriesma@304
|
106 |
{\it con} \>\>::= {\it \&} $\:|\:$ {\it /}
|
agriesma@304
|
107 |
\>\>\>\>\>\>{\it (* }$\land,\lor${\it *)}\\
|
agriesma@304
|
108 |
{\it op} \>\>::= {\it''plus''} $\:|\:$ {\it''minus''} $\:|\:$ {\it''times''}\`\\
|
agriesma@304
|
109 |
\>\>\hspace*{0.5em}$\:|\:$ {\it''cancel''} $\:|\:$ {\it''pow''} $\:|\:$ {\it''sqrt''}\`\\
|
agriesma@304
|
110 |
|
agriesma@304
|
111 |
{\it subs} \>\>::= {\it mat\_list}\>\>\>\>\>\>{\it (* substitutions as equalities *)}\\
|
agriesma@304
|
112 |
|
agriesma@304
|
113 |
\\
|
agriesma@304
|
114 |
{\it int\_list} ::= \>\>\>\>{\it [} $\epsilon \:|\: ($ {\it int} $($
|
agriesma@304
|
115 |
{\it , int} $)^*)$ {\it ]}\\
|
agriesma@304
|
116 |
{\it string\_list} ::= \>\>\>\>{\it [} $\epsilon \:|\: ($ {\it string} $($
|
agriesma@304
|
117 |
{\it , string} $)^*)$ {\it ]}\\
|
agriesma@304
|
118 |
{\it mat\_list} ::= \>\>\>\>{\it [} $\epsilon \:|\: ($ {\it MAT} $($
|
agriesma@304
|
119 |
{\it , MAT} $)^*)$ {\it ]}
|
agriesma@304
|
120 |
\end{tabbing}
|
agriesma@304
|
121 |
|
agriesma@304
|
122 |
\newpage
|
akremp@765
|
123 |
\section{Interface Kernel --- Frontend}
|
agriesma@304
|
124 |
%------------------------------------------------
|
agriesma@304
|
125 |
\begin{tabbing}
|
agriesma@304
|
126 |
123\={\it pro}\={\it ofID} \=cmd \=123\=123\=123\=12345123451234512345\=\kill {\it KE-FE ::= }\\
|
agriesma@304
|
127 |
\>\>$\:\;${\it( userID , 0 , 0 , [$\,$] , New\_User )}\`(1)\\
|
agriesma@304
|
128 |
\>\>$|\;${\it( userID , proofID , cellID , cellID\_list , dataKF\_list}\`(2)\\
|
agriesma@304
|
129 |
\>{\it dataKF\_list} ::= {\it [ dataKF} $($
|
agriesma@304
|
130 |
{\it , dataKF} $)^*$ {\it ]}\`(3)\\
|
agriesma@304
|
131 |
\\
|
agriesma@304
|
132 |
\>{\it dataKF} ::= {\it New\_Proof} $\:|\:$ {\it End\_Proof}\`(4)\\
|
agriesma@304
|
133 |
\>\>\>$\:|\:$ {\it Request string} $\:|\:$ {\it Message
|
agriesma@304
|
134 |
string} $\:|\:$ {\it Error string}\`(5)\\
|
agriesma@304
|
135 |
\>\>\>$\:|\:$ {\it System string} $\:|\:$ {\it Indicate ind\_list}\`(6)\\
|
agriesma@304
|
136 |
\>\>\>$\:|\:$ {\it Select [ rule} $($ {\it , rule} $)^*$ {\it ]}\`(7)\\
|
agriesma@304
|
137 |
\>\>\>$\:|\:$ {\it Active int} $\:|\:$ {\it Speed int} $\:|\:$ {\it Domain domID}\`(8)\\
|
agriesma@304
|
138 |
\\
|
agriesma@304
|
139 |
\>\>\>$\:|\:$ {\it RuleKF ( edit , rule )}\`(9)\\
|
agriesma@304
|
140 |
\\
|
agriesma@304
|
141 |
\>\>\>$\:|\:$ {\it FormKF ( cellID , edit , indent , nest, MAT )}\`(10)\\
|
agriesma@304
|
142 |
\>\>\>$\:|\:$ {\it PpcKF ( cellID , edit , indent , nest, tag\_ppc )}\`(11)\\
|
agriesma@304
|
143 |
\\
|
agriesma@304
|
144 |
\>\>{\it ind\_list}\>\> ::= {\it [ ind} $($ {\it , ind} $)^*$ {\it ]}\`(12)\\
|
agriesma@304
|
145 |
\>\>\>{\it ind} \> ::= {\it ( ''guide'',} $($ {\it Safe} $\:|\:$ {\it Unsafe} $\:|\:$ {\it Helpless} $)$ {\it)}\`(13)\\
|
agriesma@304
|
146 |
\>\>\>\>$\:|\:$ {\it ( ''proof'',} $($ {\it Incomplete} $\:|\:$ {\it Complete} $\:|\:$ {\it Inconsistent} $)$ {\it)}\`(14)\\
|
agriesma@304
|
147 |
\>\>{\it edit}\>\> ::= {\it Write}$\:|\:${\it Protect}\`(15)\\
|
agriesma@304
|
148 |
\>\>{\it indent}\>\> ::= {\it int}\`(16)\\
|
agriesma@304
|
149 |
\>\>{\it nest}\>\> ::= {\it Open}$\:|\:${\it Closed}$\:|\:${\it Nundef}\`(17)\\
|
agriesma@304
|
150 |
\>\>{\it tag\_ppc}\>\> ::= {\it (}\`(18)\\
|
agriesma@304
|
151 |
\>\>\>\>\>( {\it Problem pblID}$\:|\:${\it Method metID} ) {\it,}\`(19)\\
|
agriesma@304
|
152 |
\>\>\>\>\>\{ {\it Given tag\_list ,}\`(20)\\
|
agriesma@304
|
153 |
\>\>\>\>\>$\;$ {\it Where tag\_list ,}\`(21)\\
|
agriesma@304
|
154 |
\>\>\>\>\>$\;$ {\it Find tag\_list ,}\`(22)\\
|
agriesma@304
|
155 |
\>\>\>\>\>$\;$ {\it With tag\_list ,}\`(23)\\
|
agriesma@304
|
156 |
\>\>\>\>\>$\;$ {\it Relate tag\_list} \} {\it)}\`(24)\\
|
agriesma@304
|
157 |
\>\>\>{\it tag\_list}\>\> ::= {\it [ tag MAT} $($ {\it , tag MAT} $)^*$ {\it ]}\`(25)\\
|
agriesma@304
|
158 |
\>\>\>\>{\it tag}\>\> ::= {\it Correct} $\:|\:$ {\it Superfl} $\:|\:$ {\it Incompl}\`(26)\\
|
agriesma@304
|
159 |
\>\>\>\>\>\>$\:|\:$ {\it False} $\:|\:$ {\it Syntax} $\:|\:$ {\it Type}\`(27)
|
agriesma@304
|
160 |
\end{tabbing}
|
agriesma@304
|
161 |
|
agriesma@304
|
162 |
\end{document}
|