]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/ng_tactics/nTactics.mli
Added an implicit parameter to branch_tac to allow branching on a
[helm.git] / helm / software / components / ng_tactics / nTactics.mli
index 0605b993ff125785f7b121a4f3ce2b89cfa4ff5a..74bbcbcb4214a3565506a04d1dc81695bf746970 100644 (file)
 
 (* $Id: nCic.ml 9058 2008-10-13 17:42:30Z tassi $ *)
 
-val dot_tac: NTacStatus.tactic
-val branch_tac: NTacStatus.tactic
-val shift_tac: NTacStatus.tactic
-val pos_tac: int list -> NTacStatus.tactic
-val wildcard_tac: NTacStatus.tactic
-val merge_tac: NTacStatus.tactic
-val focus_tac: int list -> NTacStatus.tactic
-val unfocus_tac: NTacStatus.tactic
-val skip_tac: NTacStatus.tactic
-
-val distribute_tac: NTacStatus.lowtactic -> NTacStatus.tactic
-val block_tac: NTacStatus.tactic list -> NTacStatus.tactic
-
-val apply_tac: NTacStatus.tactic_term -> NTacStatus.tactic
+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
+
+val compare_statuses : past:#NTacStatus.lowtac_status -> present:#NTacStatus.lowtac_status -> int list * int list
+
+val distribute_tac:
+ NTacStatus.lowtac_status NTacStatus.lowtactic -> 's NTacStatus.tactic
+val exec : ((int * Continuationals.Stack.switch) list * 'a list * 'b list *
+      [> `NoTag ])
+     list NTacStatus.status NTacStatus.tactic -> 
+  (#NTacStatus.lowtac_status as 's) -> Continuationals.goal -> 's
+val block_tac: 's NTacStatus.tactic list -> 's NTacStatus.tactic
+
+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 -> 
-     NTacStatus.tactic
+     's NTacStatus.tactic
+val cut_tac: NTacStatus.tactic_term -> 's NTacStatus.tactic
 val elim_tac: 
    what:NTacStatus.tactic_term -> where:NTacStatus.tactic_pattern -> 
-     NTacStatus.tactic
-val intro_tac: string -> NTacStatus.tactic
+     's NTacStatus.tactic
+val intro_tac: string -> 's NTacStatus.tactic
 val cases_tac: 
    what:NTacStatus.tactic_term -> where:NTacStatus.tactic_pattern -> 
-     NTacStatus.tactic
-val case1_tac: string -> NTacStatus.tactic
+     '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 -> 
-    NTacStatus.tactic
-val generalize_tac : where:NTacStatus.tactic_pattern -> NTacStatus.tactic
-val eval_tac: 
-      reduction:[ `Whd of bool ] ->
-      where:NTacStatus.tactic_pattern -> NTacStatus.tactic
+    '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 -> NTacStatus.tactic
+      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
+
+val constructor_tac : 
+        ?num:int -> args:NTacStatus.tactic_term list -> 's NTacStatus.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
+
+type indtyinfo 
+
+val ref_of_indtyinfo : indtyinfo -> NReference.reference
+
+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