doc-src/IsarImplementation/Thy/Integration.thy
changeset 37864 814b1bca7f35
parent 37306 2bde06a2a706
child 37982 111ce9651564
equal deleted inserted replaced
37863:7f113caabcf4 37864:814b1bca7f35
   358   is achieved eventually.
   358   is achieved eventually.
   359 *}
   359 *}
   360 
   360 
   361 text %mlref {*
   361 text %mlref {*
   362   \begin{mldecls}
   362   \begin{mldecls}
   363   @{index_ML theory: "string -> theory"} \\
       
   364   @{index_ML use_thy: "string -> unit"} \\
   363   @{index_ML use_thy: "string -> unit"} \\
   365   @{index_ML use_thys: "string list -> unit"} \\
   364   @{index_ML use_thys: "string list -> unit"} \\
       
   365   @{index_ML Thy_Info.get_theory: "string -> theory"} \\
   366   @{index_ML Thy_Info.touch_thy: "string -> unit"} \\
   366   @{index_ML Thy_Info.touch_thy: "string -> unit"} \\
   367   @{index_ML Thy_Info.remove_thy: "string -> unit"} \\[1ex]
   367   @{index_ML Thy_Info.remove_thy: "string -> unit"} \\[1ex]
   368   @{index_ML Thy_Info.begin_theory}@{verbatim ": ... -> bool -> theory"} \\
   368   @{index_ML Thy_Info.begin_theory}@{verbatim ": ... -> bool -> theory"} \\
   369   @{index_ML Thy_Info.end_theory: "theory -> unit"} \\
   369   @{index_ML Thy_Info.end_theory: "theory -> unit"} \\
   370   @{index_ML Thy_Info.register_theory: "theory -> unit"} \\[1ex]
   370   @{index_ML Thy_Info.register_theory: "theory -> unit"} \\[1ex]
   372   @{index_ML Thy_Info.add_hook: "(Thy_Info.action -> string -> unit) -> unit"} \\
   372   @{index_ML Thy_Info.add_hook: "(Thy_Info.action -> string -> unit) -> unit"} \\
   373   \end{mldecls}
   373   \end{mldecls}
   374 
   374 
   375   \begin{description}
   375   \begin{description}
   376 
   376 
   377   \item @{ML theory}~@{text A} retrieves the theory value presently
       
   378   associated with name @{text A}.  Note that the result might be
       
   379   outdated.
       
   380 
       
   381   \item @{ML use_thy}~@{text A} ensures that theory @{text A} is fully
   377   \item @{ML use_thy}~@{text A} ensures that theory @{text A} is fully
   382   up-to-date wrt.\ the external file store, reloading outdated
   378   up-to-date wrt.\ the external file store, reloading outdated
   383   ancestors as required.  In batch mode, the simultaneous @{ML
   379   ancestors as required.  In batch mode, the simultaneous @{ML
   384   use_thys} should be used exclusively.
   380   use_thys} should be used exclusively.
   385 
   381 
   388   import header of a theory, without performing the merge of the
   384   import header of a theory, without performing the merge of the
   389   result.  By loading a whole sub-graph of theories like that, the
   385   result.  By loading a whole sub-graph of theories like that, the
   390   intrinsic parallelism can be exploited by the system, to speedup
   386   intrinsic parallelism can be exploited by the system, to speedup
   391   loading.
   387   loading.
   392 
   388 
       
   389   \item @{ML Thy_Info.get_theory}~@{text A} retrieves the theory value
       
   390   presently associated with name @{text A}.  Note that the result
       
   391   might be outdated.
       
   392 
   393   \item @{ML Thy_Info.touch_thy}~@{text A} performs and @{text outdate} action
   393   \item @{ML Thy_Info.touch_thy}~@{text A} performs and @{text outdate} action
   394   on theory @{text A} and all descendants.
   394   on theory @{text A} and all descendants.
   395 
   395 
   396   \item @{ML Thy_Info.remove_thy}~@{text A} deletes theory @{text A} and all
   396   \item @{ML Thy_Info.remove_thy}~@{text A} deletes theory @{text A} and all
   397   descendants from the theory database.
   397   descendants from the theory database.