--- a/doc-src/IsarRef/syntax.tex Sat Apr 09 15:35:37 2005 +0200
+++ b/doc-src/IsarRef/syntax.tex Sat Apr 09 15:36:02 2005 +0200
@@ -338,14 +338,17 @@
\railnonterm{thmdecl} usually refer to axioms, assumptions or results of goal
statements, while \railnonterm{thmdef} collects lists of existing theorems.
Existing theorems are given by \railnonterm{thmref} and \railnonterm{thmrefs},
-the former requires an actual singleton result. Any of these theorem
-specifications may include lists of attributes both on the left and right hand
-sides; attributes are applied to any immediately preceding fact. If names are
-omitted, the theorems are not stored within the theorem database of the theory
-or proof context; any given attributes are still applied, though.
+the former requires an actual singleton result. An optional index selection
+specifies the individual theorems to be picked out of a given fact list. Any
+kind of theorem specification may include lists of attributes both on the left
+and right hand sides; attributes are applied to any immediately preceding
+fact. If names are omitted, the theorems are not stored within the theorem
+database of the theory or proof context, but any given attributes are applied
+nonetheless.
-\indexouternonterm{thmdecl}\indexouternonterm{axmdecl}
-\indexouternonterm{thmdef}\indexouternonterm{thmrefs}
+\indexouternonterm{axmdecl}\indexouternonterm{thmdecl}
+\indexouternonterm{thmdef}\indexouternonterm{thmref}
+\indexouternonterm{thmrefs}\indexouternonterm{selection}
\begin{rail}
axmdecl: name attributes? ':'
;
@@ -353,13 +356,15 @@
;
thmdef: thmbind '='
;
- thmref: nameref attributes?
+ thmref: nameref selection? attributes?
;
thmrefs: thmref +
;
thmbind: name attributes | name | attributes
;
+ selection: '(' ((nat | nat '-' nat?) + ',') ')'
+ ;
\end{rail}