X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Fng_tactics%2FnTactics.mli;h=822421a24eebe3716663c45d765712aaccaa2a07;hb=186638106f23401e88e512a4a6dfd07d73d8be04;hp=fbebd4cbbfc9bc8661d6a89d7d5dfcb0407c1197;hpb=5fa31e43ffe25aa7b1539653b137968b5cf9899a;p=helm.git diff --git a/helm/software/components/ng_tactics/nTactics.mli b/helm/software/components/ng_tactics/nTactics.mli index fbebd4cbb..822421a24 100644 --- a/helm/software/components/ng_tactics/nTactics.mli +++ b/helm/software/components/ng_tactics/nTactics.mli @@ -11,42 +11,92 @@ (* $Id: nCic.ml 9058 2008-10-13 17:42:30Z tassi $ *) -exception Error of string lazy_t +val print_tac: bool -> string -> 's NTacStatus.tactic -type lowtac_status = { - pstatus : NCic.obj; - lstatus : LexiconEngine.status -} +val dot_tac: 's NTacStatus.tactic +val branch_tac: ?force:bool -> 's NTacStatus.tactic +val shift_tac: 's NTacStatus.tactic +val pos_tac: int list -> 's NTacStatus.tactic +val case_tac: string -> 's NTacStatus.tactic +val wildcard_tac: 's NTacStatus.tactic +val merge_tac: 's NTacStatus.tactic +val focus_tac: int list -> 's NTacStatus.tactic +val unfocus_tac: 's NTacStatus.tactic +val skip_tac: 's NTacStatus.tactic +val try_tac: 's NTacStatus.tactic -> 's NTacStatus.tactic +val repeat_tac: NTacStatus.tac_status NTacStatus.tactic -> 's NTacStatus.tactic -type lowtactic = lowtac_status -> int -> lowtac_status +val compare_statuses : past:#NTacStatus.lowtac_status -> present:#NTacStatus.lowtac_status -> int list * int list -type tac_status = { - gstatus : Continuationals.Stack.t; - istatus : lowtac_status; -} +val distribute_tac: + NTacStatus.lowtac_status NTacStatus.lowtactic -> 's NTacStatus.tactic +val exec : NTacStatus.tac_status NTacStatus.tactic -> 's NTacStatus.lowtactic +val block_tac: 's NTacStatus.tactic list -> 's NTacStatus.tactic -type tactic = tac_status -> tac_status +val apply_tac: NTacStatus.tactic_term -> 's NTacStatus.tactic +val assumption_tac: 's NTacStatus.tactic +val change_tac: + where:NTacStatus.tactic_pattern -> with_what:NTacStatus.tactic_term -> + 's NTacStatus.tactic +val cut_tac: NTacStatus.tactic_term -> 's NTacStatus.tactic +val elim_tac: + what:NTacStatus.tactic_term -> where:NTacStatus.tactic_pattern -> + 's NTacStatus.tactic +val intro_tac: string -> 's NTacStatus.tactic +val intros_tac: + ?names_ref:string list ref -> string list -> 's NTacStatus.tactic +val cases_tac: + what:NTacStatus.tactic_term -> where:NTacStatus.tactic_pattern -> + 's NTacStatus.tactic +val case1_tac: string -> 's NTacStatus.tactic +val lapply_tac: NTacStatus.tactic_term -> 's NTacStatus.tactic +val rewrite_tac: + dir:[ `LeftToRight | `RightToLeft ] -> + what:NTacStatus.tactic_term -> where:NTacStatus.tactic_pattern -> + 's NTacStatus.tactic +val generalize_tac : where:NTacStatus.tactic_pattern -> 's NTacStatus.tactic +val clear_tac : string list -> 's NTacStatus.tactic +val reduce_tac: + reduction:[ `Normalize of bool | `Whd of bool ] -> + where:NTacStatus.tactic_pattern -> 's NTacStatus.tactic +val letin_tac: + where:NTacStatus.tactic_pattern -> + what: NTacStatus.tactic_term -> + string -> 's NTacStatus.tactic +val assert_tac: + ((string * [`Decl of NTacStatus.tactic_term | `Def of NTacStatus.tactic_term * NTacStatus.tactic_term]) list * NTacStatus.tactic_term) list -> + 's NTacStatus.tactic -type tactic_term = CicNotationPt.term Disambiguate.disambiguator_input -type tactic_pattern = GrafiteAst.npattern Disambiguate.disambiguator_input +val constructor_tac : + ?num:int -> args:NTacStatus.tactic_term list -> 's NTacStatus.tactic -val dot_tac: tactic -val branch_tac: tactic -val shift_tac: tactic -val pos_tac: int list -> tactic -val wildcard_tac: tactic -val merge_tac: tactic -val focus_tac: int list -> tactic -val unfocus_tac: tactic -val skip_tac: tactic +val atomic_tac : + (((int * Continuationals.Stack.switch) list * 'a list * 'b list * + [> `NoTag ]) + list NTacStatus.status -> + (< auto_cache : NCicLibrary.automation_cache; + eq_cache : NCicLibrary.unit_eq_cache; + coerc_db : NCicCoercion.db; dump : NCicLibrary.obj list; + lstatus : LexiconEngine.lexicon_status; obj : NCic.obj; + set_coerc_db : NCicCoercion.db -> 'c; + set_coercion_status : 'd. (#NCicCoercion.g_status as 'd) -> 'c; + set_uhint_db : NCicUnifHint.db -> 'c; + set_unifhint_status : 'e. (#NCicUnifHint.g_status as 'e) -> 'c; + timestamp : NCicLibrary.timestamp; uhint_db : NCicUnifHint.db; .. > + as 'c)) -> + (#NTacStatus.tac_status as 'f) -> 'f -val distribute_tac: lowtactic -> tactic -val block_tac: tactic list -> tactic +type indtyinfo -val apply_tac: tactic_term -> tactic -val change_tac: where:tactic_pattern -> with_what:tactic_term -> tactic -val elim_tac: what:tactic_term -> where:tactic_pattern -> tactic -val intro_tac: string -> tactic -val case1_tac: string -> tactic +val ref_of_indtyinfo : indtyinfo -> NReference.reference -val pp_tac_status: tac_status -> unit +val analyze_indty_tac : + what:NTacStatus.tactic_term -> + indtyinfo option ref -> (#NTacStatus.tac_status as 'a) -> 'a + + +val find_in_context : 'a -> ('a * 'b) list -> int + +val inversion_tac: + what:NTacStatus.tactic_term -> where:NTacStatus.tactic_pattern -> + 's NTacStatus.tactic