100 @{cite "nipkow-prehofer"}. |
100 @{cite "nipkow-prehofer"}. |
101 \<close> |
101 \<close> |
102 |
102 |
103 text %mlref \<open> |
103 text %mlref \<open> |
104 \begin{mldecls} |
104 \begin{mldecls} |
105 @{index_ML_type class: string} \\ |
105 @{index_ML_type class = string} \\ |
106 @{index_ML_type sort: "class list"} \\ |
106 @{index_ML_type sort = "class list"} \\ |
107 @{index_ML_type arity: "string * sort list * sort"} \\ |
107 @{index_ML_type arity = "string * sort list * sort"} \\ |
108 @{index_ML_type typ} \\ |
108 @{index_ML_type typ} \\ |
109 @{index_ML Term.map_atyps: "(typ -> typ) -> typ -> typ"} \\ |
109 @{index_ML Term.map_atyps: "(typ -> typ) -> typ -> typ"} \\ |
110 @{index_ML Term.fold_atyps: "(typ -> 'a -> 'a) -> typ -> 'a -> 'a"} \\ |
110 @{index_ML Term.fold_atyps: "(typ -> 'a -> 'a) -> typ -> 'a -> 'a"} \\ |
111 \end{mldecls} |
111 \end{mldecls} |
112 \begin{mldecls} |
112 \begin{mldecls} |
312 \<close> |
312 \<close> |
313 |
313 |
314 text %mlref \<open> |
314 text %mlref \<open> |
315 \begin{mldecls} |
315 \begin{mldecls} |
316 @{index_ML_type term} \\ |
316 @{index_ML_type term} \\ |
317 @{index_ML_op "aconv": "term * term -> bool"} \\ |
317 @{index_ML_infix "aconv": "term * term -> bool"} \\ |
318 @{index_ML Term.map_types: "(typ -> typ) -> term -> term"} \\ |
318 @{index_ML Term.map_types: "(typ -> typ) -> term -> term"} \\ |
319 @{index_ML Term.fold_types: "(typ -> 'a -> 'a) -> term -> 'a -> 'a"} \\ |
319 @{index_ML Term.fold_types: "(typ -> 'a -> 'a) -> term -> 'a -> 'a"} \\ |
320 @{index_ML Term.map_aterms: "(term -> term) -> term -> term"} \\ |
320 @{index_ML Term.map_aterms: "(term -> term) -> term -> term"} \\ |
321 @{index_ML Term.fold_aterms: "(term -> 'a -> 'a) -> term -> 'a -> 'a"} \\ |
321 @{index_ML Term.fold_aterms: "(term -> 'a -> 'a) -> term -> 'a -> 'a"} \\ |
322 \end{mldecls} |
322 \end{mldecls} |
334 \end{mldecls} |
334 \end{mldecls} |
335 |
335 |
336 \<^descr> Type \<^ML_type>\<open>term\<close> represents de-Bruijn terms, with comments in |
336 \<^descr> Type \<^ML_type>\<open>term\<close> represents de-Bruijn terms, with comments in |
337 abstractions, and explicitly named free variables and constants; this is a |
337 abstractions, and explicitly named free variables and constants; this is a |
338 datatype with constructors @{index_ML Bound}, @{index_ML Free}, @{index_ML |
338 datatype with constructors @{index_ML Bound}, @{index_ML Free}, @{index_ML |
339 Var}, @{index_ML Const}, @{index_ML Abs}, @{index_ML_op "$"}. |
339 Var}, @{index_ML Const}, @{index_ML Abs}, @{index_ML_infix "$"}. |
340 |
340 |
341 \<^descr> \<open>t\<close>~\<^ML_text>\<open>aconv\<close>~\<open>u\<close> checks \<open>\<alpha>\<close>-equivalence of two terms. This is the |
341 \<^descr> \<open>t\<close>~\<^ML_text>\<open>aconv\<close>~\<open>u\<close> checks \<open>\<alpha>\<close>-equivalence of two terms. This is the |
342 basic equality relation on type \<^ML_type>\<open>term\<close>; raw datatype equality |
342 basic equality relation on type \<^ML_type>\<open>term\<close>; raw datatype equality |
343 should only be used for operations related to parsing or printing! |
343 should only be used for operations related to parsing or printing! |
344 |
344 |
1020 %FIXME @{inference_def elim_resolution}, @{inference_def dest_resolution} |
1020 %FIXME @{inference_def elim_resolution}, @{inference_def dest_resolution} |
1021 \<close> |
1021 \<close> |
1022 |
1022 |
1023 text %mlref \<open> |
1023 text %mlref \<open> |
1024 \begin{mldecls} |
1024 \begin{mldecls} |
1025 @{index_ML_op "RSN": "thm * (int * thm) -> thm"} \\ |
1025 @{index_ML_infix "RSN": "thm * (int * thm) -> thm"} \\ |
1026 @{index_ML_op "RS": "thm * thm -> thm"} \\ |
1026 @{index_ML_infix "RS": "thm * thm -> thm"} \\ |
1027 |
1027 |
1028 @{index_ML_op "RLN": "thm list * (int * thm list) -> thm list"} \\ |
1028 @{index_ML_infix "RLN": "thm list * (int * thm list) -> thm list"} \\ |
1029 @{index_ML_op "RL": "thm list * thm list -> thm list"} \\ |
1029 @{index_ML_infix "RL": "thm list * thm list -> thm list"} \\ |
1030 |
1030 |
1031 @{index_ML_op "MRS": "thm list * thm -> thm"} \\ |
1031 @{index_ML_infix "MRS": "thm list * thm -> thm"} \\ |
1032 @{index_ML_op "OF": "thm * thm list -> thm"} \\ |
1032 @{index_ML_infix "OF": "thm * thm list -> thm"} \\ |
1033 \end{mldecls} |
1033 \end{mldecls} |
1034 |
1034 |
1035 \<^descr> \<open>rule\<^sub>1 RSN (i, rule\<^sub>2)\<close> resolves the conclusion of \<open>rule\<^sub>1\<close> with the |
1035 \<^descr> \<open>rule\<^sub>1 RSN (i, rule\<^sub>2)\<close> resolves the conclusion of \<open>rule\<^sub>1\<close> with the |
1036 \<open>i\<close>-th premise of \<open>rule\<^sub>2\<close>, according to the @{inference resolution} |
1036 \<open>i\<close>-th premise of \<open>rule\<^sub>2\<close>, according to the @{inference resolution} |
1037 principle explained above. Unless there is precisely one resolvent it raises |
1037 principle explained above. Unless there is precisely one resolvent it raises |
1195 @{index_ML Proof_Syntax.read_proof: "theory -> bool -> bool -> string -> proof"} \\ |
1195 @{index_ML Proof_Syntax.read_proof: "theory -> bool -> bool -> string -> proof"} \\ |
1196 @{index_ML Proof_Syntax.pretty_proof: "Proof.context -> proof -> Pretty.T"} \\ |
1196 @{index_ML Proof_Syntax.pretty_proof: "Proof.context -> proof -> Pretty.T"} \\ |
1197 \end{mldecls} |
1197 \end{mldecls} |
1198 |
1198 |
1199 \<^descr> Type \<^ML_type>\<open>proof\<close> represents proof terms; this is a datatype with |
1199 \<^descr> Type \<^ML_type>\<open>proof\<close> represents proof terms; this is a datatype with |
1200 constructors @{index_ML Abst}, @{index_ML AbsP}, @{index_ML_op "%"}, |
1200 constructors @{index_ML Abst}, @{index_ML AbsP}, @{index_ML_infix "%"}, |
1201 @{index_ML_op "%%"}, @{index_ML PBound}, @{index_ML MinProof}, @{index_ML |
1201 @{index_ML_infix "%%"}, @{index_ML PBound}, @{index_ML MinProof}, @{index_ML |
1202 Hyp}, @{index_ML PAxm}, @{index_ML Oracle}, @{index_ML PThm} as explained |
1202 Hyp}, @{index_ML PAxm}, @{index_ML Oracle}, @{index_ML PThm} as explained |
1203 above. %FIXME PClass (!?) |
1203 above. %FIXME PClass (!?) |
1204 |
1204 |
1205 \<^descr> Type \<^ML_type>\<open>proof_body\<close> represents the nested proof information of a |
1205 \<^descr> Type \<^ML_type>\<open>proof_body\<close> represents the nested proof information of a |
1206 named theorem, consisting of a digest of oracles and named theorem over some |
1206 named theorem, consisting of a digest of oracles and named theorem over some |