]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/ng_tactics/nTacStatus.mli
update in ground_2
[helm.git] / helm / software / components / ng_tactics / nTacStatus.mli
index fdad9f861e2c104f1736dec5cdbe46bed9dafe67..416306c021f3021638d437361ddb4c81db1fd19b 100644 (file)
 exception Error of string lazy_t * exn option
 val fail: ?exn:exn -> string lazy_t -> 'a
 
+class type g_pstatus =
+ object
+  inherit NEstatus.g_status
+  method obj: NCic.obj
+ end
+
 class pstatus :
  NCic.obj ->
   object ('self)
    inherit NEstatus.status
    method obj: NCic.obj
    method set_obj: NCic.obj -> 'self
+   method set_pstatus: #g_pstatus -> 'self
   end
 
 type tactic_term = CicNotationPt.term Disambiguate.disambiguator_input
@@ -40,6 +47,7 @@ val analyse_indty:
   'status * (NReference.reference * int * NCic.term list * NCic.term list)
 
 val ppterm: #pstatus -> cic_term -> string
+val ppcontext: #pstatus -> NCic.context -> string
 val whd: 
  #pstatus as 'status -> ?delta:int -> NCic.context -> cic_term -> 
   'status * cic_term 
@@ -55,16 +63,23 @@ val refine:
   'status * cic_term * cic_term (* status, term, type *)
 val apply_subst:
  #pstatus as 'status -> NCic.context -> cic_term -> 'status * cic_term
-val fix_sorts: cic_term -> cic_term
+val apply_subst_context :
+  #pstatus -> fix_projections:bool -> NCic.context -> NCic.context
+val fix_sorts: #pstatus as 'status -> cic_term -> 'status * cic_term
 val saturate :
  #pstatus as 'status -> ?delta:int -> cic_term -> 'status * cic_term * cic_term list
+val metas_of_term : #pstatus as 'status -> cic_term -> int list
 
 val get_goalty: #pstatus -> int -> cic_term
+val get_subst: #pstatus -> NCic.substitution
 val mk_meta: 
  #pstatus as 'status -> ?attrs:NCic.meta_attrs -> NCic.context ->
-   [ `Decl of cic_term | `Def of cic_term ] ->
+   [ `Decl of cic_term | `Def of cic_term ] -> NCicUntrusted.meta_kind ->
      'status * cic_term
-val instantiate: #pstatus as 'status -> int -> cic_term -> 'status
+
+(* default value for refine: true; you can use false if the term has already been refined with
+   the expected type for the meta (e.g. after a reduction tactic) *)
+val instantiate: #pstatus as 'status -> ?refine:bool -> int -> cic_term -> 'status
 val instantiate_with_ast: #pstatus as 'status -> int -> tactic_term -> 'status
 
 val select_term:
@@ -78,7 +93,11 @@ val mk_in_scope: #pstatus as 'status -> cic_term -> 'status * cic_term
 val mk_out_scope:
  int -> (#pstatus as 'status) -> cic_term -> 'status * cic_term
 
-val pp_status: #pstatus -> unit
+class type ['stack] g_status =
+ object
+  inherit g_pstatus
+  method stack: 'stack
+ end
 
 class ['stack] status :
  NCic.obj -> 'stack ->
@@ -86,6 +105,7 @@ class ['stack] status :
    inherit pstatus
    method stack: 'stack
    method set_stack: 'stack -> 'self
+   method set_status: 'stack #g_status -> 'self
   end
 
 class type lowtac_status = [unit] status
@@ -94,6 +114,8 @@ type 'status lowtactic = #lowtac_status as 'status -> int -> 'status
 
 class type tac_status = [Continuationals.Stack.t] status
 
+val pp_tac_status: #tac_status -> unit
+
 type 'status tactic = #tac_status as 'status -> 'status
 
 (* indexing facilities over cic_term based on inverse De Bruijn indexes *)