1141 subsubsection {* The looper *} |
1141 subsubsection {* The looper *} |
1142 |
1142 |
1143 text {* |
1143 text {* |
1144 \begin{mldecls} |
1144 \begin{mldecls} |
1145 @{index_ML_op setloop: "Proof.context * |
1145 @{index_ML_op setloop: "Proof.context * |
1146 (int -> tactic) -> Proof.context"} \\ |
|
1147 @{index_ML_op setloop': "Proof.context * |
|
1148 (Proof.context -> int -> tactic) -> Proof.context"} \\ |
1146 (Proof.context -> int -> tactic) -> Proof.context"} \\ |
1149 @{index_ML_op addloop: "Proof.context * |
1147 @{index_ML_op addloop: "Proof.context * |
1150 (string * (int -> tactic)) -> Proof.context"} \\ |
|
1151 @{index_ML_op addloop': "Proof.context * |
|
1152 (string * (Proof.context -> int -> tactic)) |
1148 (string * (Proof.context -> int -> tactic)) |
1153 -> Proof.context"} \\ |
1149 -> Proof.context"} \\ |
1154 @{index_ML_op delloop: "Proof.context * string -> Proof.context"} \\ |
1150 @{index_ML_op delloop: "Proof.context * string -> Proof.context"} \\ |
1155 @{index_ML Splitter.add_split: "thm -> Proof.context -> Proof.context"} \\ |
1151 @{index_ML Splitter.add_split: "thm -> Proof.context -> Proof.context"} \\ |
1156 @{index_ML Splitter.del_split: "thm -> Proof.context -> Proof.context"} \\ |
1152 @{index_ML Splitter.del_split: "thm -> Proof.context -> Proof.context"} \\ |
1167 the assumptions. More adventurous loopers could start an induction. |
1163 the assumptions. More adventurous loopers could start an induction. |
1168 |
1164 |
1169 \begin{description} |
1165 \begin{description} |
1170 |
1166 |
1171 \item @{text "ctxt setloop tac"} installs @{text "tac"} as the only |
1167 \item @{text "ctxt setloop tac"} installs @{text "tac"} as the only |
1172 looper tactic of @{text "ctxt"}. The variant @{text "setloop'"} |
1168 looper tactic of @{text "ctxt"}. |
1173 allows the tactic to depend on the running Simplifier context. |
|
1174 |
1169 |
1175 \item @{text "ctxt addloop (name, tac)"} adds @{text "tac"} as an |
1170 \item @{text "ctxt addloop (name, tac)"} adds @{text "tac"} as an |
1176 additional looper tactic with name @{text "name"}, which is |
1171 additional looper tactic with name @{text "name"}, which is |
1177 significant for managing the collection of loopers. The tactic will |
1172 significant for managing the collection of loopers. The tactic will |
1178 be tried after the looper tactics that had already been present in |
1173 be tried after the looper tactics that had already been present in |
1179 @{text "ctxt"}. The variant @{text "addloop'"} allows the tactic to |
1174 @{text "ctxt"}. |
1180 depend on the running Simplifier context. |
|
1181 |
1175 |
1182 \item @{text "ctxt delloop name"} deletes the looper tactic that was |
1176 \item @{text "ctxt delloop name"} deletes the looper tactic that was |
1183 associated with @{text "name"} from @{text "ctxt"}. |
1177 associated with @{text "name"} from @{text "ctxt"}. |
1184 |
1178 |
1185 \item @{ML Splitter.add_split}~@{text "thm ctxt"} adds split tactics |
1179 \item @{ML Splitter.add_split}~@{text "thm ctxt"} adds split tactics |