Added the specification command.
authorskalberg
Mon, 21 Jul 2003 10:58:16 +0200
changeset 14119 fb9c392644a1
parent 14118 05416ba8eef2
child 14120 3a73850c6c7d
Added the specification command.
NEWS
doc-src/IsarRef/logics.tex
--- a/NEWS	Mon Jul 21 08:53:56 2003 +0200
+++ b/NEWS	Mon Jul 21 10:58:16 2003 +0200
@@ -110,6 +110,9 @@
 
 *** HOL ***
 
+* 'specification' command added, allowing for definition by
+specification.
+
 * arith(_tac)
 
  - Produces a counter example if it cannot prove a goal.
--- a/doc-src/IsarRef/logics.tex	Mon Jul 21 08:53:56 2003 +0200
+++ b/doc-src/IsarRef/logics.tex	Mon Jul 21 10:58:16 2003 +0200
@@ -533,6 +533,31 @@
   ;
 \end{rail}
 
+\subsection{Definition by specification}\label{sec:hol-specification}
+
+\indexisarcmdof{HOL}{specification}
+\begin{matharray}{rcl}
+  \isarcmd{specification} & : & \isartrans{theory}{proof(prove)} \\
+\end{matharray}
+
+\begin{rail}
+'specification' '(' (decl +) ')' thmdecl? prop
+;
+decl: ((name ':')? term '(overloaded)'?)
+\end{rail}
+
+\begin{descr}
+\item [$\isarkeyword{specification}~decls~\phi$] sets up a
+  goal stating the existence of terms with the property specified to
+  hold for the constants given in $\mathit{decls}$.  After finishing
+  the proof, the theory will be augmented with definitions for the
+  given constants, and a theorem stating the property for these
+  constants is returned.
+\item[$decl$] declares a constant to be defined by the specification
+  given.  The definition for the constant $c$ is bound to the name
+  $c$\_def unless a theorem name is given in the declaration.
+  Overloaded constants should be declared as such.
+\end{descr}
 
 \subsection{(Co)Inductive sets}\label{sec:hol-inductive}