]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/ng_tactics/nTacStatus.mli
Objects are now used to represent also the tactic status.
[helm.git] / helm / software / components / ng_tactics / nTacStatus.mli
index 307154127269847e22ce56570ae6f7f5199027f3..f32511265b3cd4c5c624e5317646fed2a1da31e4 100644 (file)
 exception Error of string lazy_t
 val fail: string lazy_t -> 'a
 
-type lowtac_status = {
-        pstatus : NCic.obj;
-        estatus : NEstatus.status;
-}
-
-type lowtactic = lowtac_status -> int -> lowtac_status 
-
-type tac_status = {
-        gstatus : Continuationals.Stack.t; 
-        istatus : lowtac_status;
-} 
-
-type tactic = tac_status -> tac_status
+class pstatus :
+ NCic.obj ->
+  object ('self)
+   inherit NEstatus.status
+   method obj: NCic.obj
+   method set_obj: NCic.obj -> 'self
+  end
 
 type tactic_term = CicNotationPt.term Disambiguate.disambiguator_input
 type tactic_pattern = GrafiteAst.npattern Disambiguate.disambiguator_input
@@ -34,52 +28,68 @@ type tactic_pattern = GrafiteAst.npattern Disambiguate.disambiguator_input
 type cic_term 
 val ctx_of : cic_term -> NCic.context
 val term_of_cic_term : 
     lowtac_status -> cic_term -> NCic.context -> lowtac_status * NCic.term
#pstatus as 'status -> cic_term -> NCic.context -> 'status * NCic.term
 
 val mk_cic_term : NCic.context -> NCic.term -> cic_term
 val disambiguate:
 lowtac_status -> tactic_term -> cic_term option -> NCic.context -> 
-    lowtac_status * cic_term (* * cic_term XXX *)
#pstatus as 'status -> tactic_term -> cic_term option -> NCic.context -> 
+  'status * cic_term (* * cic_term XXX *)
 
 val analyse_indty: 
-  lowtac_status -> cic_term -> 
-    lowtac_status * 
-      (NReference.reference * int * NCic.term list * NCic.term list)
+ #pstatus as 'status -> cic_term -> 
+  'status * (NReference.reference * int * NCic.term list * NCic.term list)
 
-val ppterm: lowtac_status -> cic_term -> string
+val ppterm: #pstatus -> cic_term -> string
 val whd: 
     lowtac_status -> ?delta:int -> NCic.context -> cic_term -> 
-        lowtac_status * cic_term 
#pstatus as 'status -> ?delta:int -> NCic.context -> cic_term -> 
+  'status * cic_term 
 val normalize: 
     lowtac_status -> ?delta:int -> NCic.context -> cic_term ->
-        lowtac_status * cic_term 
#pstatus as 'status -> ?delta:int -> NCic.context -> cic_term ->
+  'status * cic_term 
 val typeof: 
     lowtac_status -> NCic.context -> cic_term -> lowtac_status * cic_term
#pstatus as 'status -> NCic.context -> cic_term -> 'status * cic_term
 val unify: 
 lowtac_status -> NCic.context -> cic_term -> cic_term -> lowtac_status
#pstatus as 'status -> NCic.context -> cic_term -> cic_term -> 'status
 val refine: 
 lowtac_status -> NCic.context -> cic_term -> cic_term option -> 
-    lowtac_status * cic_term * cic_term (* status, term, type *)
#pstatus as 'status -> NCic.context -> cic_term -> cic_term option -> 
+  'status * cic_term * cic_term (* status, term, type *)
 val apply_subst:
 lowtac_status -> NCic.context -> cic_term -> lowtac_status * cic_term
#pstatus as 'status -> NCic.context -> cic_term -> 'status * cic_term
 
-val get_goalty: lowtac_status -> int -> cic_term
+val get_goalty: #pstatus -> int -> cic_term
 val mk_meta: 
  lowtac_status -> ?name:string -> NCic.context ->
#pstatus as 'status -> ?name:string -> NCic.context ->
    [ `Decl of cic_term | `Def of cic_term ] ->
-     lowtac_status * cic_term
-val instantiate: lowtac_status -> int -> cic_term -> lowtac_status
+     'status * cic_term
+val instantiate: #pstatus as 'status -> int -> cic_term -> 'status
 
 val select_term:
 lowtac_status -> 
-  found: (lowtac_status -> cic_term -> lowtac_status * cic_term) ->
-  postprocess: (lowtac_status -> cic_term -> lowtac_status * cic_term) ->
#pstatus as 'status -> 
+  found: ('status -> cic_term -> 'status * cic_term) ->
+  postprocess: ('status -> cic_term -> 'status * cic_term) ->
   cic_term -> tactic_term option * NCic.term ->
-    lowtac_status * cic_term
+    'status * cic_term
+
+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_tac_status: #pstatus -> unit
+
+class ['stack] status :
+ NCic.obj -> 'stack ->
+  object ('self)
+   inherit pstatus
+   method stack: 'stack
+   method set_stack: 'stack -> 'self
+  end
+
+class type lowtac_status = [unit] status
+
+type 'status lowtactic = #lowtac_status as 'status -> int -> 'status
 
-val mk_in_scope: lowtac_status -> cic_term -> lowtac_status * cic_term
-val mk_out_scope: int -> lowtac_status -> cic_term -> lowtac_status * cic_term
+class type tac_status = [Continuationals.Stack.t] status
 
-val pp_tac_status: tac_status -> unit
+type 'status tactic = #tac_status as 'status -> 'status
 
 (* end *)