X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FgTopLevel%2FproofEngine.mli;h=58a9a369521b18342d658c0284c5e7a3e3081877;hb=5325734bc2e4927ed7ec146e35a6f0f2b49f50c1;hp=1b110a66979d8d73104af0fe4cb198dc81e680f0;hpb=76cb30ecd0159512548aee0ba7085ab17c6fd5bd;p=helm.git diff --git a/helm/gTopLevel/proofEngine.mli b/helm/gTopLevel/proofEngine.mli index 1b110a669..58a9a3695 100644 --- a/helm/gTopLevel/proofEngine.mli +++ b/helm/gTopLevel/proofEngine.mli @@ -1,32 +1,64 @@ - -exception NotConvertible +(* 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 proof : ProofEngineTypes.proof ref -val goal : ProofEngineTypes.goal ref +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 -> unit -val reduce : Cic.term -> unit -val simpl : Cic.term -> unit -val fold : Cic.term -> unit -val change : goal_input:Cic.term -> input:Cic.term -> unit +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 -> Cic.term -> Cic.term -val reduce_in_scratch : Cic.term -> Cic.term -> Cic.term -val simpl_in_scratch : Cic.term -> Cic.term -> Cic.term +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 : unit -> unit -val cut : Cic.term -> unit -val letin : 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 @@ -35,4 +67,37 @@ 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 : MQIConn.handle -> 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