equal
deleted
inserted
replaced
53 \<open>\<beta>\<eta>\<close>-conversion) and lifting of \<open>\<And>/\<Longrightarrow>\<close> contexts. |
53 \<open>\<beta>\<eta>\<close>-conversion) and lifting of \<open>\<And>/\<Longrightarrow>\<close> contexts. |
54 \<close> |
54 \<close> |
55 |
55 |
56 text %mlref \<open> |
56 text %mlref \<open> |
57 \begin{mldecls} |
57 \begin{mldecls} |
58 @{index_ML Thm.reflexive: "cterm -> thm"} \\ |
58 @{define_ML Thm.reflexive: "cterm -> thm"} \\ |
59 @{index_ML Thm.symmetric: "thm -> thm"} \\ |
59 @{define_ML Thm.symmetric: "thm -> thm"} \\ |
60 @{index_ML Thm.transitive: "thm -> thm -> thm"} \\ |
60 @{define_ML Thm.transitive: "thm -> thm -> thm"} \\ |
61 @{index_ML Thm.abstract_rule: "string -> cterm -> thm -> thm"} \\ |
61 @{define_ML Thm.abstract_rule: "string -> cterm -> thm -> thm"} \\ |
62 @{index_ML Thm.combination: "thm -> thm -> thm"} \\[0.5ex] |
62 @{define_ML Thm.combination: "thm -> thm -> thm"} \\[0.5ex] |
63 @{index_ML Thm.equal_intr: "thm -> thm -> thm"} \\ |
63 @{define_ML Thm.equal_intr: "thm -> thm -> thm"} \\ |
64 @{index_ML Thm.equal_elim: "thm -> thm -> thm"} \\ |
64 @{define_ML Thm.equal_elim: "thm -> thm -> thm"} \\ |
65 \end{mldecls} |
65 \end{mldecls} |
66 |
66 |
67 See also \<^file>\<open>~~/src/Pure/thm.ML\<close> for further description of these inference |
67 See also \<^file>\<open>~~/src/Pure/thm.ML\<close> for further description of these inference |
68 rules, and a few more for primitive \<open>\<beta>\<close> and \<open>\<eta>\<close> conversions. Note that \<open>\<alpha>\<close> |
68 rules, and a few more for primitive \<open>\<beta>\<close> and \<open>\<eta>\<close> conversions. Note that \<open>\<alpha>\<close> |
69 conversion is implicit due to the representation of terms with de-Bruijn |
69 conversion is implicit due to the representation of terms with de-Bruijn |
80 differently, see @{cite \<open>\S9.3\<close> "isabelle-isar-ref"}. |
80 differently, see @{cite \<open>\S9.3\<close> "isabelle-isar-ref"}. |
81 \<close> |
81 \<close> |
82 |
82 |
83 text %mlref \<open> |
83 text %mlref \<open> |
84 \begin{mldecls} |
84 \begin{mldecls} |
85 @{index_ML_structure Conv} \\ |
85 @{define_ML_structure Conv} \\ |
86 @{index_ML_type conv} \\ |
86 @{define_ML_type conv} \\ |
87 @{index_ML Simplifier.asm_full_rewrite : "Proof.context -> conv"} \\ |
87 @{define_ML Simplifier.asm_full_rewrite : "Proof.context -> conv"} \\ |
88 \end{mldecls} |
88 \end{mldecls} |
89 |
89 |
90 \<^descr> \<^ML_structure>\<open>Conv\<close> is a library of combinators to build conversions, |
90 \<^descr> \<^ML_structure>\<open>Conv\<close> is a library of combinators to build conversions, |
91 over type \<^ML_type>\<open>conv\<close> (see also \<^file>\<open>~~/src/Pure/conv.ML\<close>). This is one |
91 over type \<^ML_type>\<open>conv\<close> (see also \<^file>\<open>~~/src/Pure/conv.ML\<close>). This is one |
92 of the few Isabelle/ML modules that are usually used with \<^verbatim>\<open>open\<close>: finding |
92 of the few Isabelle/ML modules that are usually used with \<^verbatim>\<open>open\<close>: finding |
107 definitions of the form \<open>f x\<^sub>1 \<dots> x\<^sub>n \<equiv> u\<close>, but is slightly more general than |
107 definitions of the form \<open>f x\<^sub>1 \<dots> x\<^sub>n \<equiv> u\<close>, but is slightly more general than |
108 that. \<close> |
108 that. \<close> |
109 |
109 |
110 text %mlref \<open> |
110 text %mlref \<open> |
111 \begin{mldecls} |
111 \begin{mldecls} |
112 @{index_ML rewrite_rule: "Proof.context -> thm list -> thm -> thm"} \\ |
112 @{define_ML rewrite_rule: "Proof.context -> thm list -> thm -> thm"} \\ |
113 @{index_ML rewrite_goals_rule: "Proof.context -> thm list -> thm -> thm"} \\ |
113 @{define_ML rewrite_goals_rule: "Proof.context -> thm list -> thm -> thm"} \\ |
114 @{index_ML rewrite_goal_tac: "Proof.context -> thm list -> int -> tactic"} \\ |
114 @{define_ML rewrite_goal_tac: "Proof.context -> thm list -> int -> tactic"} \\ |
115 @{index_ML rewrite_goals_tac: "Proof.context -> thm list -> tactic"} \\ |
115 @{define_ML rewrite_goals_tac: "Proof.context -> thm list -> tactic"} \\ |
116 @{index_ML fold_goals_tac: "Proof.context -> thm list -> tactic"} \\ |
116 @{define_ML fold_goals_tac: "Proof.context -> thm list -> tactic"} \\ |
117 \end{mldecls} |
117 \end{mldecls} |
118 |
118 |
119 \<^descr> \<^ML>\<open>rewrite_rule\<close>~\<open>ctxt rules thm\<close> rewrites the whole theorem by the |
119 \<^descr> \<^ML>\<open>rewrite_rule\<close>~\<open>ctxt rules thm\<close> rewrites the whole theorem by the |
120 given rules. |
120 given rules. |
121 |
121 |