Isar: where attribute supports instantiation of type vars.
authorballarin
Wed, 10 Dec 2003 14:27:50 +0100
changeset 14285 92ed032e83a1
parent 14284 f1abe67c448a
child 14286 0ae66ffb9784
Isar: where attribute supports instantiation of type vars.
NEWS
doc-src/IsarRef/pure.tex
--- a/NEWS	Sun Dec 07 16:30:06 2003 +0100
+++ b/NEWS	Wed Dec 10 14:27:50 2003 +0100
@@ -42,9 +42,10 @@
     This is consistent with the instantiation attribute "where".
 
 * Attributes "where" and "of":
-  Now take type variables of instantiated theorem into account when reading
-  the instantiation string.  This fixes a bug that caused instantiated
-  theorems to have too special types in some circumstances.
+  - Now take type variables of instantiated theorem into account when reading
+    the instantiation string.  This fixes a bug that caused instantiated
+    theorems to have too special types in some circumstances.
+  - "where" permits explicit instantiations of type variables.
 
 * Calculation commands "moreover" and "also":
   Do not reset facts ("this") any more.
--- a/doc-src/IsarRef/pure.tex	Sun Dec 07 16:30:06 2003 +0100
+++ b/doc-src/IsarRef/pure.tex	Wed Dec 10 14:27:50 2003 +0100
@@ -1055,17 +1055,21 @@
   \cite[\S5]{isabelle-ref}, but note the reversed order.  Positions may be
   effectively skipped by including ``$\_$'' (underscore) as argument.
   
-\item [$of~\vec t$] performs positional instantiation.  The terms $\vec t$ are
-  substituted for any schematic variables occurring in a theorem from left to
-  right; ``\texttt{_}'' (underscore) indicates to skip a position.  Arguments
-  following a ``$concl\colon$'' specification refer to positions of the
-  conclusion of a rule.
+\item [$of~\vec t$] performs positional instantiation of term
+  variables.  The terms $\vec t$ are substituted for any schematic
+  variables occurring in a theorem from left to right; ``\texttt{_}''
+  (underscore) indicates to skip a position.  Arguments following a
+  ``$concl\colon$'' specification refer to positions of the conclusion
+  of a rule.
   
-\item [$where~\vec x = \vec t$] performs named instantiation of schematic
-  variables occurring in a theorem.  Schematic variables
-  have to be specified on the left-hand side (e.g.\ $?x1\!.\!3$).  The
-  question mark may be omitted if the variable name is neither a
-  keyword nor contains a dot.
+\item [$where~\vec x = \vec t$] performs named instantiation of
+  schematic type and term variables occurring in a theorem.  Schematic
+  variables have to be specified on the left-hand side (e.g.\
+  $?x1\!.\!3$).  The question mark may be omitted if the variable name
+  is neither a keyword nor contains a dot.  Types are instantiated
+  before terms, and instantiations have to be written in that order.
+  Because type instantiations are inferred from term instantiations,
+  explicit type instantiations are seldom necessary.
 
 \end{descr}