]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/matitaTypes.mli
ocaml 3.09 transition
[helm.git] / helm / matita / matitaTypes.mli
index 662dad6ab6e9cbf092453a1c1206fbea432e5f75..e54fe5c7e7fc0ceef806b562f97f53f6f21f7f0d 100644 (file)
@@ -33,9 +33,14 @@ val command_error : string -> 'a
 exception Option_error of string * string
 exception Unbound_identifier of string
 
+type incomplete_proof = {
+  proof: ProofEngineTypes.proof;
+  stack: Continuationals.Stack.t;
+}
+
 type proof_status =
     No_proof
-  | Incomplete_proof of ProofEngineTypes.status
+  | Incomplete_proof of incomplete_proof
   | Proof of ProofEngineTypes.proof
   | Intermediate of Cic.metasenv
 
@@ -47,14 +52,26 @@ type option_value =
 type options = option_value StringMap.t
 val no_options : 'a StringMap.t
 
+type ast_command = (CicNotationPt.term, GrafiteAst.obj) GrafiteAst.command
+type moo = ast_command list * GrafiteAst.metadata list  (** <moo, metadata> *)
+
 type status = {
-  aliases : DisambiguateTypes.environment;
-  moo_content_rev : string list;
-  proof_status : proof_status;
-  options : options;
-  objects : (UriManager.uri * string) list;
+  aliases: DisambiguateTypes.environment;         (** disambiguation aliases *)
+  multi_aliases: DisambiguateTypes.multiple_environment;
+  moo_content_rev: moo;
+  proof_status: proof_status;                             (** logical status *)
+  options: options;
+  objects: (UriManager.uri * string) list;  (** in-scope objects, with paths *)
+  coercions: UriManager.uri list;                      (** defined coercions *)
+  notation_ids: CicNotation.notation_id list;      (** in-scope notation ids *)
 }
 
+val set_metasenv: Cic.metasenv -> status -> status
+
+  (** list is not reversed, head command will be the first emitted *)
+val add_moo_content: ast_command list -> status -> status
+val add_moo_metadata: GrafiteAst.metadata list -> status -> status
+
 val dump_status : status -> unit
 val get_option : status -> StringMap.key -> option_value
 val get_string_option : status -> StringMap.key -> string
@@ -98,3 +115,14 @@ class type mathViewer =
     method show_uri_list :
       ?reuse:bool -> entry:mathViewer_entry -> UriManager.uri list -> unit
   end
+
+val qualify: status -> string -> string
+
+val get_current_proof: status -> ProofEngineTypes.proof
+val get_proof_metasenv: status ->  Cic.metasenv
+val get_proof_context: status -> ProofEngineTypes.goal -> Cic.context 
+val get_proof_conclusion: status -> ProofEngineTypes.goal -> Cic.term
+val get_stack: status -> Continuationals.Stack.t
+
+val set_stack: Continuationals.Stack.t -> status -> status
+