(* 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/. *) (* proof engine status *) val get_proof : unit -> ProofEngineTypes.proof option val set_proof : ProofEngineTypes.proof option -> unit val goal : ProofEngineTypes.goal option ref (** return a pair of "xml" (as defined in Xml module) representing the current proof type and body, respectively *) val get_current_status_as_xml : unit -> Xml.token Stream.t * Xml.token Stream.t (* start a new goal undoing part of the proof *) val perforate : Cic.context -> Cic.term -> Cic.term -> unit (* reduction tactics *) val whd : Cic.term list -> unit val reduce : Cic.term list -> unit val simpl : Cic.term list -> unit val fold_whd : Cic.term -> unit val fold_reduce : Cic.term -> unit val fold_simpl : Cic.term -> unit (* scratch area reduction tactics *) val whd_in_scratch : Cic.term list -> Cic.term -> Cic.term val reduce_in_scratch : Cic.term list -> Cic.term -> Cic.term val simpl_in_scratch : Cic.term list -> Cic.term -> Cic.term (* "primitive" tactics *) val apply : Cic.term -> unit val intros : ?mk_fresh_name_callback:ProofEngineTypes.mk_fresh_name_type -> unit -> unit val cut : ?mk_fresh_name_callback:ProofEngineTypes.mk_fresh_name_type -> Cic.term -> unit val letin : ?mk_fresh_name_callback:ProofEngineTypes.mk_fresh_name_type -> Cic.term -> unit val exact : Cic.term -> unit val elim_intros_simpl : Cic.term -> unit val change : goal_input:Cic.term -> input:Cic.term -> unit (* structural tactics *) val clearbody : Cic.hypothesis -> unit val clear : Cic.hypothesis -> unit (* other tactics *) val elim_type : Cic.term -> unit val ring : unit -> unit val fourier : unit -> unit val rewrite_simpl : Cic.term -> unit val rewrite_back_simpl : Cic.term -> unit val replace : goal_input:Cic.term -> input:Cic.term -> unit val auto : dbd:Mysql.dbd -> unit -> unit val reflexivity : unit -> unit val symmetry : unit -> unit val transitivity : Cic.term -> unit val exists : unit -> unit val split : unit -> unit val left : unit -> unit val right : unit -> unit val assumption : unit -> unit val generalize : ?mk_fresh_name_callback:ProofEngineTypes.mk_fresh_name_type -> Cic.term list -> unit val absurd : Cic.term -> unit val contradiction : unit -> unit val decompose : uris_choice_callback: ((UriManager.uri * int * (UriManager.uri * Cic.term) list) list -> (UriManager.uri * int * (UriManager.uri * Cic.term) list) list) -> Cic.term -> unit val injection : Cic.term -> unit val discriminate : Cic.term -> unit val decide_equality : unit -> unit val compare : Cic.term -> unit