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) |