equal
deleted
inserted
replaced
51 |
51 |
52 \medskip The following low-level variants admit general reasoning |
52 \medskip The following low-level variants admit general reasoning |
53 with protected propositions: |
53 with protected propositions: |
54 |
54 |
55 \[ |
55 \[ |
56 \infer[@{text "(protect)"}]{@{text "#C"}}{@{text "C"}} \qquad |
56 \infer[@{text "(protect n)"}]{@{text "A\<^sub>1 \<Longrightarrow> \<dots> \<Longrightarrow> A\<^sub>n \<Longrightarrow> #C"}}{@{text "A\<^sub>1 \<Longrightarrow> \<dots> \<Longrightarrow> A\<^sub>n \<Longrightarrow> C"}} |
57 \infer[@{text "(conclude)"}]{@{text "A\<^sub>1 \<Longrightarrow> \<dots> \<Longrightarrow> A\<^sub>n \<Longrightarrow> C"}}{@{text "A\<^sub>1 \<Longrightarrow> \<dots> \<Longrightarrow> A\<^sub>n \<Longrightarrow> #C"}} |
57 \] |
|
58 \[ |
|
59 \infer[@{text "(conclude)"}]{@{text "A \<Longrightarrow> \<dots> \<Longrightarrow> C"}}{@{text "A \<Longrightarrow> \<dots> \<Longrightarrow> #C"}} |
58 \] |
60 \] |
59 *} |
61 *} |
60 |
62 |
61 text %mlref {* |
63 text %mlref {* |
62 \begin{mldecls} |
64 \begin{mldecls} |
63 @{index_ML Goal.init: "cterm -> thm"} \\ |
65 @{index_ML Goal.init: "cterm -> thm"} \\ |
64 @{index_ML Goal.finish: "Proof.context -> thm -> thm"} \\ |
66 @{index_ML Goal.finish: "Proof.context -> thm -> thm"} \\ |
65 @{index_ML Goal.protect: "thm -> thm"} \\ |
67 @{index_ML Goal.protect: "int -> thm -> thm"} \\ |
66 @{index_ML Goal.conclude: "thm -> thm"} \\ |
68 @{index_ML Goal.conclude: "thm -> thm"} \\ |
67 \end{mldecls} |
69 \end{mldecls} |
68 |
70 |
69 \begin{description} |
71 \begin{description} |
70 |
72 |
74 \item @{ML "Goal.finish"}~@{text "ctxt thm"} checks whether theorem |
76 \item @{ML "Goal.finish"}~@{text "ctxt thm"} checks whether theorem |
75 @{text "thm"} is a solved goal (no subgoals), and concludes the |
77 @{text "thm"} is a solved goal (no subgoals), and concludes the |
76 result by removing the goal protection. The context is only |
78 result by removing the goal protection. The context is only |
77 required for printing error messages. |
79 required for printing error messages. |
78 |
80 |
79 \item @{ML "Goal.protect"}~@{text "thm"} protects the full statement |
81 \item @{ML "Goal.protect"}~@{text "n thm"} protects the statement |
80 of theorem @{text "thm"}. |
82 of theorem @{text "thm"}. The parameter @{text n} indicates the |
|
83 number of premises to be retained. |
81 |
84 |
82 \item @{ML "Goal.conclude"}~@{text "thm"} removes the goal |
85 \item @{ML "Goal.conclude"}~@{text "thm"} removes the goal |
83 protection, even if there are pending subgoals. |
86 protection, even if there are pending subgoals. |
84 |
87 |
85 \end{description} |
88 \end{description} |