doc-src/IsarRef/Thy/document/Spec.tex
changeset 31914 0bf275fbe93a
parent 31913 edce86bf8521
child 33516 0855a09bc5cf
equal deleted inserted replaced
31913:edce86bf8521 31914:0bf275fbe93a
   612     ;
   612     ;
   613     'instantiation' (nameref + 'and') '::' arity 'begin'
   613     'instantiation' (nameref + 'and') '::' arity 'begin'
   614     ;
   614     ;
   615     'instance'
   615     'instance'
   616     ;
   616     ;
   617     'instance' nameref '::' arity
   617     'instance' (nameref + 'and') '::' arity
   618     ;
   618     ;
   619     'subclass' target? nameref
   619     'subclass' target? nameref
   620     ;
   620     ;
   621     'instance' nameref ('<' | subseteq) nameref
   621     'instance' nameref ('<' | subseteq) nameref
   622     ;
   622     ;
   651   to sort \isa{s} at the particular type instance \isa{{\isachardoublequote}{\isacharparenleft}{\isasymalpha}\isactrlsub {\isadigit{1}}\ {\isacharcolon}{\isacharcolon}\ s\isactrlsub {\isadigit{1}}{\isacharcomma}\ {\isasymdots}{\isacharcomma}\ {\isasymalpha}\isactrlsub n\ {\isacharcolon}{\isacharcolon}\ s\isactrlsub n{\isacharparenright}\ t{\isachardoublequote}}.  A plain \hyperlink{command.instance}{\mbox{\isa{\isacommand{instance}}}} command in the
   651   to sort \isa{s} at the particular type instance \isa{{\isachardoublequote}{\isacharparenleft}{\isasymalpha}\isactrlsub {\isadigit{1}}\ {\isacharcolon}{\isacharcolon}\ s\isactrlsub {\isadigit{1}}{\isacharcomma}\ {\isasymdots}{\isacharcomma}\ {\isasymalpha}\isactrlsub n\ {\isacharcolon}{\isacharcolon}\ s\isactrlsub n{\isacharparenright}\ t{\isachardoublequote}}.  A plain \hyperlink{command.instance}{\mbox{\isa{\isacommand{instance}}}} command in the
   652   target body poses a goal stating these type arities.  The target is
   652   target body poses a goal stating these type arities.  The target is
   653   concluded by an \indexref{local}{command}{end}\hyperlink{command.local.end}{\mbox{\isa{\isacommand{end}}}} command.
   653   concluded by an \indexref{local}{command}{end}\hyperlink{command.local.end}{\mbox{\isa{\isacommand{end}}}} command.
   654 
   654 
   655   Note that a list of simultaneous type constructors may be given;
   655   Note that a list of simultaneous type constructors may be given;
   656   this corresponds nicely to mutual recursive type definitions, e.g.\
   656   this corresponds nicely to mutually recursive type definitions, e.g.\
   657   in Isabelle/HOL.
   657   in Isabelle/HOL.
   658 
   658 
   659   \item \hyperlink{command.instance}{\mbox{\isa{\isacommand{instance}}}} in an instantiation target body sets
   659   \item \hyperlink{command.instance}{\mbox{\isa{\isacommand{instance}}}} in an instantiation target body sets
   660   up a goal stating the type arities claimed at the opening \hyperlink{command.instantiation}{\mbox{\isa{\isacommand{instantiation}}}}.  The proof would usually proceed by \hyperlink{method.intro-classes}{\mbox{\isa{intro{\isacharunderscore}classes}}}, and then establish the characteristic theorems of
   660   up a goal stating the type arities claimed at the opening \hyperlink{command.instantiation}{\mbox{\isa{\isacommand{instantiation}}}}.  The proof would usually proceed by \hyperlink{method.intro-classes}{\mbox{\isa{intro{\isacharunderscore}classes}}}, and then establish the characteristic theorems of
   661   the type classes involved.  After finishing the proof, the
   661   the type classes involved.  After finishing the proof, the