(* Copyright (C) 2002, HELM Team. * * This file is part of HELM, an Hypertextual, Electronic * Library of Mathematics, developed at the Computer Science * Department, University of Bologna, Italy. * * HELM is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * HELM is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with HELM; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, * MA 02111-1307, USA. * * For details, see the HELM World-Wide-Web page, * http://cs.unibo.it/helm/. *) val id_tac : ProofEngineTypes.tactic val fail_tac: ProofEngineTypes.tactic module type Status = sig type input_status type output_status type tactic val id_tac : tactic val mk_tactic : (input_status -> output_status) -> tactic val apply_tactic : tactic -> input_status -> output_status val goals : output_status -> ProofEngineTypes.goal list val set_goals: output_status -> ProofEngineTypes.goal list -> output_status val focus : output_status -> ProofEngineTypes.goal -> input_status end module type T = sig type tactic val first: tactics: (string * tactic) list -> tactic val thens: start: tactic -> continuations: tactic list -> tactic val then_: start: tactic -> continuation: tactic -> tactic (** "folding" of then_ *) val seq: tactics: tactic list -> tactic val repeat_tactic: tactic: tactic -> tactic val do_tactic: n: int -> tactic: tactic -> tactic val try_tactic: tactic: tactic -> tactic val solve_tactics: tactics: (string * tactic) list -> tactic end module Make (S:Status) : T with type tactic = S.tactic include T with type tactic = ProofEngineTypes.tactic