]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/matitaTypes.ml
snapshot
[helm.git] / helm / matita / matitaTypes.ml
index bfdb99904a05a7ba88c4d5dbef44e9fb49eeb151..4e81148c34f817e492b12f6c7d472e1c9f131b53 100644 (file)
@@ -29,10 +29,15 @@ let not_implemented feature = raise (Not_implemented feature)
   (** exceptions whose content should be presented to the user *)
 exception Failure of string
 let error s = raise (Failure s)
-let warning s = prerr_endline ("MATITA WARNING: " ^ s)
+let warning s = prerr_endline ("MATITA WARNING:\t" ^ s)
+let debug_print s =
+  if BuildTimeConf.debug then prerr_endline ("MATITA DEBUG:\t" ^ s)
 
 exception No_proof  (** no current proof is available *)
 
+let untitled_con_uri = UriManager.uri_of_string "cic:/untitled.con"
+let untitled_def_uri = UriManager.uri_of_string "cic:/untitled.def"
+
 class type observer =
   (* "observer" pattern *)
   object
@@ -88,12 +93,43 @@ class type disambiguator =
           (DisambiguateTypes.environment * Cic.metasenv * Cic.term)
   end
 
+class type proofStatus =
+  object
+    inherit subject
+
+      (** {3 properties} *)
+
+    method proof: ProofEngineTypes.proof
+    method setProof: ProofEngineTypes.proof -> unit
+
+    method goal: ProofEngineTypes.goal option
+    method setGoal: ProofEngineTypes.goal option -> unit
+
+      (** @raise MatitaTypes.No_proof *)
+    method status: ProofEngineTypes.status (* proof, goal *)
+    method setStatus: ProofEngineTypes.status -> unit
+
+      (** {3 actions} *)
+
+    (** return a pair of "xml" (as defined in Xml module) representing the *
+     * current proof type and body, respectively *)
+    method toXml: Xml.token Stream.t * Xml.token Stream.t
+    method toString: string
+  end
+
+class type proof =
+  object
+      (** {3 status} *)
+    method status: proofStatus
+    method setStatus: proofStatus -> unit
+  end
+
 (** {2 shorthands} *)
 
 type namer = ProofEngineTypes.mk_fresh_name_type
 
 type choose_uris_callback =
-  selection_mode:Gtk.Tags.selection_mode ->
+  selection_mode:[`MULTIPLE|`SINGLE] ->
   ?title:string -> ?msg:string -> ?nonvars_button:bool ->
   string list ->
     string list