doc/java-sml.tex
author wneuper
Sat, 12 Mar 2005 06:14:55 +0100
changeset 2162 161819a0cbbc
parent 765 746fb004cfd9
permissions -rwxr-xr-x
all-050311a-beforeStart: of impl. userSettings
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}