src/Doc/IsarImplementation/Tactic.thy
changeset 52456 960202346d0c
parent 50074 0b02aaf7c7c5
child 52463 c45a6939217f
equal deleted inserted replaced
52455:9a8f4fdac3cf 52456:960202346d0c
    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}