(* 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 external_input_status +| type input_status type output_status |+ type external_output_status +| |+ val internalize: external_input_status -> input_status val externalize: output_status -> external_output_status +| type tactic val mk_tactic : (input_status -> output_status) -> tactic val apply_tactic : tactic -> input_status -> output_status val id_tac : tactic val goals : output_status -> ProofEngineTypes.goal list val get_stack : input_status -> stack val set_stack : stack -> output_status -> output_status val inject : input_status -> output_status val focus : goal -> output_status -> 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 val seq: tactics: tactic list -> tactic (** "folding" of then_ *) 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 (* module C: sig *) val tactic: tactic -> tactic (** apply tactic to all goal in env *) val skip: tactic val dot: tactic val semicolon: tactic val branch: tactic val shift: tactic val pos: int -> tactic val merge: tactic val focus: int list -> tactic val unfocus: tactic (* end *) end module Make (S: Continuationals.Status) : T with type tactic = S.tactic include T with type tactic = ProofEngineTypes.tactic (* TODO temporary *) val goals_diff: before:ProofEngineTypes.goal list -> after:ProofEngineTypes.goal list -> opened:ProofEngineTypes.goal list -> ProofEngineTypes.goal list * ProofEngineTypes.goal list