doc-src/IsarRef/logics.tex
changeset 14682 a5072752114c
parent 14642 2bfe5de2d1fa
child 17659 b1019337c857
equal deleted inserted replaced
14681:16fcef3a3174 14682:a5072752114c
   733 
   733 
   734 \section{HOLCF}
   734 \section{HOLCF}
   735 
   735 
   736 \subsection{Mixfix syntax for continuous operations}
   736 \subsection{Mixfix syntax for continuous operations}
   737 
   737 
   738 \indexisarcmdof{HOLCF}{consts}\indexisarcmdof{HOLCF}{constdefs}
   738 \indexisarcmdof{HOLCF}{consts}
   739 
   739 
   740 \begin{matharray}{rcl}
   740 \begin{matharray}{rcl}
   741   \isarcmd{consts} & : & \isartrans{theory}{theory} \\
   741   \isarcmd{consts} & : & \isartrans{theory}{theory} \\
   742   \isarcmd{constdefs} & : & \isartrans{theory}{theory} \\
   742 \end{matharray}
   743 \end{matharray}
       
   744 
       
   745 \begin{rail}
       
   746   'constdefs' (name '::' type mixfix? prop +)
       
   747   ;
       
   748 \end{rail}
       
   749 
   743 
   750 HOLCF provides a separate type for continuous functions $\alpha \to
   744 HOLCF provides a separate type for continuous functions $\alpha \to
   751 \beta$, with an explicit application operator $f \cdot x$.  Isabelle mixfix
   745 \beta$, with an explicit application operator $f \cdot x$.  Isabelle mixfix
   752 syntax normally refers directly to the pure meta-level function type $\alpha
   746 syntax normally refers directly to the pure meta-level function type $\alpha
   753 \To \beta$, with application $f\,x$.
   747 \To \beta$, with application $f\,x$.
   754 
   748 
   755 The HOLCF variants of $\CONSTS$ and $\CONSTDEFS$ resemble those of Pure
   749 The HOLCF variant of $\CONSTS$ modifies that of Pure Isabelle (cf.\ 
   756 Isabelle (cf.\ \S\ref{sec:consts}), although automated type-inference is not
   750 \S\ref{sec:consts}) such that declarations involving continuous function types
   757 supported here.  Internally, declarations involving continuous function types
   751 are treated specifically.  Any given syntax template is transformed
   758 are treated specifically, transforming the syntax template accordingly and
   752 internally, generating translation rules for the abstract and concrete
   759 generating syntax translation rules for the abstract and concrete
   753 representation of continuous application.  Note that mixing of HOLCF and Pure
   760 representation of application.  Note that mixing continuous and meta-level
       
   761 application is \emph{not} supported!
   754 application is \emph{not} supported!
   762 
   755 
   763 \subsection{Recursive domains}
   756 \subsection{Recursive domains}
   764 
   757 
   765 \indexisarcmdof{HOLCF}{domain}
   758 \indexisarcmdof{HOLCF}{domain}