src/Doc/Implementation/Logic.thy
changeset 59621 291934bac95e
parent 58728 42398b610f86
child 59902 6afbe5a99139
equal deleted inserted replaced
59620:92d7d8e4f1bf 59621:291934bac95e
   637   @{index_ML Logic.mk_implies: "term * term -> term"} \\
   637   @{index_ML Logic.mk_implies: "term * term -> term"} \\
   638   \end{mldecls}
   638   \end{mldecls}
   639   \begin{mldecls}
   639   \begin{mldecls}
   640   @{index_ML_type ctyp} \\
   640   @{index_ML_type ctyp} \\
   641   @{index_ML_type cterm} \\
   641   @{index_ML_type cterm} \\
   642   @{index_ML Thm.ctyp_of: "theory -> typ -> ctyp"} \\
   642   @{index_ML Thm.ctyp_of: "Proof.context -> typ -> ctyp"} \\
   643   @{index_ML Thm.cterm_of: "theory -> term -> cterm"} \\
   643   @{index_ML Thm.cterm_of: "Proof.context -> term -> cterm"} \\
   644   @{index_ML Thm.apply: "cterm -> cterm -> cterm"} \\
   644   @{index_ML Thm.apply: "cterm -> cterm -> cterm"} \\
   645   @{index_ML Thm.lambda: "cterm -> cterm -> cterm"} \\
   645   @{index_ML Thm.lambda: "cterm -> cterm -> cterm"} \\
   646   @{index_ML Thm.all: "cterm -> cterm -> cterm"} \\
   646   @{index_ML Thm.all: "cterm -> cterm -> cterm"} \\
   647   @{index_ML Drule.mk_implies: "cterm * cterm -> cterm"} \\
   647   @{index_ML Drule.mk_implies: "cterm * cterm -> cterm"} \\
   648   \end{mldecls}
   648   \end{mldecls}
   697   same inference kernel that is mainly responsible for @{ML_type thm}.
   697   same inference kernel that is mainly responsible for @{ML_type thm}.
   698   Thus syntactic operations on @{ML_type ctyp} and @{ML_type cterm}
   698   Thus syntactic operations on @{ML_type ctyp} and @{ML_type cterm}
   699   are located in the @{ML_structure Thm} module, even though theorems are
   699   are located in the @{ML_structure Thm} module, even though theorems are
   700   not yet involved at that stage.
   700   not yet involved at that stage.
   701 
   701 
   702   \item @{ML Thm.ctyp_of}~@{text "thy \<tau>"} and @{ML
   702   \item @{ML Thm.ctyp_of}~@{text "ctxt \<tau>"} and @{ML
   703   Thm.cterm_of}~@{text "thy t"} explicitly checks types and terms,
   703   Thm.cterm_of}~@{text "ctxt t"} explicitly check types and terms,
   704   respectively.  This also involves some basic normalizations, such
   704   respectively.  This also involves some basic normalizations, such
   705   expansion of type and term abbreviations from the theory context.
   705   expansion of type and term abbreviations from the underlying
       
   706   theory context.
   706   Full re-certification is relatively slow and should be avoided in
   707   Full re-certification is relatively slow and should be avoided in
   707   tight reasoning loops.
   708   tight reasoning loops.
   708 
   709 
   709   \item @{ML Thm.apply}, @{ML Thm.lambda}, @{ML Thm.all}, @{ML
   710   \item @{ML Thm.apply}, @{ML Thm.lambda}, @{ML Thm.all}, @{ML
   710   Drule.mk_implies} etc.\ compose certified terms (or propositions)
   711   Drule.mk_implies} etc.\ compose certified terms (or propositions)