src/Doc/Implementation/Logic.thy
changeset 70569 095dadc62bb5
parent 70568 6e055d313f73
child 70915 bd4d37edfee4
equal deleted inserted replaced
70568:6e055d313f73 70569:095dadc62bb5
   577   @{index_ML Thm.all: "Proof.context -> cterm -> cterm -> cterm"} \\
   577   @{index_ML Thm.all: "Proof.context -> cterm -> cterm -> cterm"} \\
   578   @{index_ML Drule.mk_implies: "cterm * cterm -> cterm"} \\
   578   @{index_ML Drule.mk_implies: "cterm * cterm -> cterm"} \\
   579   \end{mldecls}
   579   \end{mldecls}
   580   \begin{mldecls}
   580   \begin{mldecls}
   581   @{index_ML_type thm} \\
   581   @{index_ML_type thm} \\
   582   @{index_ML Thm.peek_status: "thm -> {oracle: bool, unfinished: bool, failed: bool}"} \\
       
   583   @{index_ML Thm.transfer: "theory -> thm -> thm"} \\
   582   @{index_ML Thm.transfer: "theory -> thm -> thm"} \\
   584   @{index_ML Thm.assume: "cterm -> thm"} \\
   583   @{index_ML Thm.assume: "cterm -> thm"} \\
   585   @{index_ML Thm.forall_intr: "cterm -> thm -> thm"} \\
   584   @{index_ML Thm.forall_intr: "cterm -> thm -> thm"} \\
   586   @{index_ML Thm.forall_elim: "cterm -> thm -> thm"} \\
   585   @{index_ML Thm.forall_elim: "cterm -> thm -> thm"} \\
   587   @{index_ML Thm.implies_intr: "cterm -> thm -> thm"} \\
   586   @{index_ML Thm.implies_intr: "cterm -> thm -> thm"} \\
   600   @{index_ML Theory.add_deps: "Defs.context -> string ->
   599   @{index_ML Theory.add_deps: "Defs.context -> string ->
   601   Defs.entry -> Defs.entry list -> theory -> theory"} \\
   600   Defs.entry -> Defs.entry list -> theory -> theory"} \\
   602   @{index_ML Thm_Deps.all_oracles: "thm list -> (string * term option) list"} \\
   601   @{index_ML Thm_Deps.all_oracles: "thm list -> (string * term option) list"} \\
   603   \end{mldecls}
   602   \end{mldecls}
   604 
   603 
   605   \<^descr> \<^ML>\<open>Thm.peek_status\<close>~\<open>thm\<close> informs about the current status of the
       
   606   derivation object behind the given theorem. This is a snapshot of a
       
   607   potentially ongoing (parallel) evaluation of proofs. The three Boolean
       
   608   values indicate the following: \<^verbatim>\<open>oracle\<close> if the finished part contains some
       
   609   oracle invocation; \<^verbatim>\<open>unfinished\<close> if some future proofs are still pending;
       
   610   \<^verbatim>\<open>failed\<close> if some future proof has failed, rendering the theorem invalid!
       
   611 
       
   612   \<^descr> \<^ML>\<open>Logic.all\<close>~\<open>a B\<close> produces a Pure quantification \<open>\<And>a. B\<close>, where
   604   \<^descr> \<^ML>\<open>Logic.all\<close>~\<open>a B\<close> produces a Pure quantification \<open>\<And>a. B\<close>, where
   613   occurrences of the atomic term \<open>a\<close> in the body proposition \<open>B\<close> are replaced
   605   occurrences of the atomic term \<open>a\<close> in the body proposition \<open>B\<close> are replaced
   614   by bound variables. (See also \<^ML>\<open>lambda\<close> on terms.)
   606   by bound variables. (See also \<^ML>\<open>lambda\<close> on terms.)
   615 
   607 
   616   \<^descr> \<^ML>\<open>Logic.mk_implies\<close>~\<open>(A, B)\<close> produces a Pure implication \<open>A \<Longrightarrow> B\<close>.
   608   \<^descr> \<^ML>\<open>Logic.mk_implies\<close>~\<open>(A, B)\<close> produces a Pure implication \<open>A \<Longrightarrow> B\<close>.