X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Fng_tactics%2FnTacStatus.mli;h=6e4cc79ddb90405c20b5473f35f4d7a8f2f887f5;hb=36fae35c9cbbf8df389a3f34cd1ee6921b6029fd;hp=c04df8d37b076750fa5a269cfc2fb467141b4ed7;hpb=4080c4f65aa9f69af505530dfbbe94ffede8052e;p=helm.git diff --git a/helm/software/components/ng_tactics/nTacStatus.mli b/helm/software/components/ng_tactics/nTacStatus.mli index c04df8d37..6e4cc79dd 100644 --- a/helm/software/components/ng_tactics/nTacStatus.mli +++ b/helm/software/components/ng_tactics/nTacStatus.mli @@ -11,22 +11,23 @@ (* $Id: nCic.ml 9058 2008-10-13 17:42:30Z tassi $ *) -exception Error of string lazy_t -val fail: string lazy_t -> 'a - -type lowtac_status = { - pstatus : NCic.obj; - lstatus : LexiconEngine.status -} - -type lowtactic = lowtac_status -> int -> lowtac_status - -type tac_status = { - gstatus : Continuationals.Stack.t; - istatus : lowtac_status; -} - -type tactic = tac_status -> tac_status +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 type tactic_pattern = GrafiteAst.npattern Disambiguate.disambiguator_input @@ -34,52 +35,96 @@ 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 -> NCic.context -> tactic_term -> cic_term option -> + '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 ppcontext: #pstatus -> NCic.context -> 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 - -val get_goalty: lowtac_status -> int -> cic_term + #pstatus as 'status -> NCic.context -> cic_term -> 'status * cic_term +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: - lowtac_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 + #pstatus as 'status -> ?attrs:NCic.meta_attrs -> NCic.context -> + [ `Decl of cic_term | `Def of cic_term ] -> NCicUntrusted.meta_kind -> + 'status * cic_term +val instantiate: #pstatus as 'status -> int -> cic_term -> 'status +val instantiate_with_ast: #pstatus as 'status -> int -> tactic_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_status: #pstatus -> unit + +class type ['stack] g_status = + object + inherit g_pstatus + method stack: 'stack + end + +class ['stack] status : + NCic.obj -> 'stack -> + object ('self) + inherit pstatus + method stack: 'stack + method set_stack: 'stack -> 'self + method set_status: 'stack #g_status -> 'self + end + +class type lowtac_status = [unit] status + +type 'status lowtactic = #lowtac_status as 'status -> int -> 'status + +class type tac_status = [Continuationals.Stack.t] status + +type 'status tactic = #tac_status as 'status -> 'status + +(* indexing facilities over cic_term based on inverse De Bruijn indexes *) + +module NCicInverseRelIndexable : Discrimination_tree.Indexable +with type input = cic_term and type constant_name = NUri.uri + +module Ncic_termSet : Set.S with type elt = cic_term -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 +module InvRelDiscriminationTree : Discrimination_tree.DiscriminationTree +with type constant_name = NCicInverseRelIndexable.constant_name +and type input = NCicInverseRelIndexable.input +and type data = Ncic_termSet.elt and type dataset = Ncic_termSet.t -val pp_tac_status: tac_status -> unit +val debug : bool ref (* end *)