src/Doc/IsarRef/Generic.thy
changeset 52037 837211662fb8
parent 51717 9e7d1c139569
child 52060 179236c82c2a
equal deleted inserted replaced
52036:1aa2e40df9ff 52037:837211662fb8
  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