--- a/doc-src/IsarRef/isar-ref.tex Sun May 21 14:32:47 2000 +0200
+++ b/doc-src/IsarRef/isar-ref.tex Sun May 21 14:33:46 2000 +0200
@@ -9,7 +9,7 @@
\makeindex
-\railterm{percent,ppercent,underscore,lbrace,rbrace,llbrace,rrbrace}
+\railterm{percent,ppercent,underscore}
\railterm{ident,longident,symident,var,textvar,typefree,typevar,nat,string,verbatim,keyword}
\railterm{name,nameref,text,type,term,prop,atom}
--- a/doc-src/IsarRef/pure.tex Sun May 21 14:32:47 2000 +0200
+++ b/doc-src/IsarRef/pure.tex Sun May 21 14:33:46 2000 +0200
@@ -911,7 +911,7 @@
\subsection{Block structure}
-\indexisarcmd{next}\indexisarcmd{\{\{}\indexisarcmd{\}\}}
+\indexisarcmd{next}\indexisarcmd{\{}\indexisarcmd{\}}
\begin{matharray}{rcl}
\NEXT & : & \isartrans{proof(state)}{proof(state)} \\
\BG & : & \isartrans{proof(state)}{proof(state)} \\
@@ -933,9 +933,8 @@
\begin{descr}
\item [$\NEXT$] switches to a fresh block within a sub-proof, resetting the
local context to the initial one.
-\item [$\isarkeyword{\{\{}$ and $\isarkeyword{\}\}}$] explicitly open and
- close blocks. Any current facts pass through ``$\isarkeyword{\{\{}$''
- unchanged, while ``$\isarkeyword{\}\}}$'' causes any result to be
+\item [$\BG$ and $\EN$] explicitly open and close blocks. Any current facts
+ pass through ``$\BG$'' unchanged, while ``$\EN$'' causes any result to be
\emph{exported} into the enclosing context. Thus fixed variables are
generalized, assumptions discharged, and local definitions unfolded (cf.\
\S\ref{sec:proof-context}). There is no difference of $\ASSUMENAME$ and
--- a/doc-src/IsarRef/syntax.tex Sun May 21 14:32:47 2000 +0200
+++ b/doc-src/IsarRef/syntax.tex Sun May 21 14:33:46 2000 +0200
@@ -139,15 +139,17 @@
\subsection{Type classes, sorts and arities}
-The syntax of sorts and arities is given directly at the outer level. Note
-that this is in contrast to types and terms (see \ref{sec:types-terms}).
+Classes are specified by plain names. Sorts have a very simple inner syntax,
+which is either a single class name $c$ or a list $\{c@1, \dots, c@n\}$
+referring to the intersection of these classes. The syntax of type arities is
+given directly at the outer level.
\indexouternonterm{sort}\indexouternonterm{arity}\indexouternonterm{simplearity}
\indexouternonterm{classdecl}
\begin{rail}
classdecl: name ('<' (nameref + ','))?
;
- sort: nameref | lbrace (nameref * ',') rbrace
+ sort: nameref
;
arity: ('(' (sort + ',') ')')? sort
;
@@ -252,7 +254,7 @@
\begin{rail}
atom: nameref | typefree | typevar | var | nat | keyword
;
- arg: atom | '(' args ')' | '[' args ']' | lbrace args rbrace
+ arg: atom | '(' args ')' | '[' args ']'
;
args: arg *
;
--- a/src/Pure/Isar/args.ML Sun May 21 14:32:47 2000 +0200
+++ b/src/Pure/Isar/args.ML Sun May 21 14:33:46 2000 +0200
@@ -181,7 +181,6 @@
((Scan.repeat1
(Scan.repeat1 (atom_arg blk) ||
paren_args "(" ")" args ||
- paren_args "{" "}" args ||
paren_args "[" "]" args)) >> flat) x;
--- a/src/Pure/Isar/isar_syn.ML Sun May 21 14:32:47 2000 +0200
+++ b/src/Pure/Isar/isar_syn.ML Sun May 21 14:33:46 2000 +0200
@@ -348,11 +348,11 @@
(* proof structure *)
val beginP =
- OuterSyntax.command "{{" "begin explicit proof block" K.prf_block
+ OuterSyntax.command "{" "begin explicit proof block" K.prf_block
(Scan.succeed (Toplevel.print o Toplevel.proof IsarThy.begin_block));
val endP =
- OuterSyntax.command "}}" "end explicit proof block" K.prf_block
+ OuterSyntax.command "}" "end explicit proof block" K.prf_block
(Scan.succeed (Toplevel.print o Toplevel.proof IsarThy.end_block));
val nextP =
@@ -630,7 +630,7 @@
val keywords =
["!", "!!", "%", "%%", "(", ")", "+", ",", "--", ":", "::", ";", "<",
"<=", "=", "==", "=>", "?", "[", "]", "and", "binder", "concl",
- "files", "in", "infixl", "infixr", "is", "output", "{", "|", "}"];
+ "files", "in", "infixl", "infixr", "is", "output", "|"];
val parsers = [
(*theory structure*)
--- a/src/Pure/Thy/latex.ML Sun May 21 14:32:47 2000 +0200
+++ b/src/Pure/Thy/latex.ML Sun May 21 14:33:46 2000 +0200
@@ -76,8 +76,8 @@
let val s = T.val_of tok in
if invisible_token tok then ""
else if T.is_kind T.Command tok then
- if s = "{{" then "{\\isabeginblock}"
- else if s = "}}" then "{\\isaendblock}"
+ if s = "{" then "{\\isabeginblock}"
+ else if s = "}" then "{\\isaendblock}"
else "\\isacommand{" ^ output_syms s ^ "}"
else if T.is_kind T.Keyword tok andalso Syntax.is_identifier s then
"\\isakeyword{" ^ output_syms s ^ "}"