]> matita.cs.unibo.it Git - helm.git/commitdiff
added get_proof_conclusione and list_tl_at
authorStefano Zacchiroli <zack@upsilon.cc>
Wed, 27 Jul 2005 08:30:40 +0000 (08:30 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Wed, 27 Jul 2005 08:30:40 +0000 (08:30 +0000)
helm/matita/matitaMisc.ml
helm/matita/matitaMisc.mli

index 3ed1f001c2d17f5c2b185362b71f1fd0f0e443a8..1ebe49e39c2e442a1b6a922373c5efe24ba93c74 100644 (file)
@@ -270,6 +270,13 @@ let get_proof_context status =
       context
   | _ -> []
  
+let get_proof_conclusion status =
+  match status.proof_status with
+  | Incomplete_proof ((_, metasenv, _, _), goal) ->
+      let (_, _, conclusion) = CicUtil.lookup_meta goal metasenv in
+      conclusion
+  | _ -> statement_error "no ongoing proof"
 let get_proof_aliases status = status.aliases
 
 let qualify status name = get_string_option status "baseuri" ^ "/" ^ name
@@ -297,6 +304,15 @@ let rec list_uniq = function
   | h1::h2::tl when h1 = h2 -> list_uniq (h2 :: tl) 
   | h1::tl (* when h1 <> h2 *) -> h1 :: list_uniq tl
 
+let list_tl_at ?(equality=(==)) e l =
+  let rec aux =
+    function
+    | [] -> raise Not_found
+    | hd :: tl as l when equality hd e -> l
+    | hd :: tl -> aux tl
+  in
+  aux l
+
 let debug_wrap name f =
   prerr_endline (sprintf "debug_wrap: ==>> %s" name);
   let res = f () in
index dafd91387a8dee473897e6d0b71d127316635284..c4adbf6e1e8f94fa4c372ad220ae591ec693ec2f 100644 (file)
@@ -59,6 +59,11 @@ val split: ?char:char -> string -> string list
 
 val list_uniq: 'a list -> 'a list (* uniq unix filter on lists *)
 
+  (** @return tl tail of a list starting at a given element
+   * @param eq equality to be used, defaults to physical equality (==)
+   * @raise Not_found *)
+val list_tl_at: ?equality:('a -> 'a -> bool) -> 'a -> 'a list -> 'a list
+
   (** @raise Failure *)
 val unopt: 'a option -> 'a
 
@@ -104,6 +109,7 @@ val qualify: MatitaTypes.status -> string -> string
 val get_proof_status: MatitaTypes.status -> ProofEngineTypes.status
 val get_proof_metasenv: MatitaTypes.status ->  Cic.metasenv
 val get_proof_context: MatitaTypes.status -> Cic.context 
+val get_proof_conclusion: MatitaTypes.status -> Cic.term 
 val get_proof_aliases: MatitaTypes.status -> DisambiguateTypes.environment 
 
   (** given the base name of an image, returns its full path *)