]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/components/ng_tactics/nTactics.mli
Add support for proving cases in a different order
[helm.git] / matita / components / ng_tactics / nTactics.mli
index 822421a24eebe3716663c45d765712aaccaa2a07..6fb14f7b82b2e3c61c91e14ee99712a3473a8e7b 100644 (file)
@@ -13,6 +13,7 @@
 
 val print_tac: bool -> string -> 's NTacStatus.tactic
 
+val id_tac: 's NTacStatus.tactic
 val dot_tac: 's NTacStatus.tactic
 val branch_tac: ?force:bool -> 's NTacStatus.tactic
 val shift_tac: 's NTacStatus.tactic
@@ -23,7 +24,7 @@ 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 try_tac: NTacStatus.tac_status 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
@@ -54,6 +55,7 @@ val rewrite_tac:
   dir:[ `LeftToRight | `RightToLeft ] ->
    what:NTacStatus.tactic_term -> where:NTacStatus.tactic_pattern -> 
     's NTacStatus.tactic
+val generalize0_tac : NotationPt.term list -> 's NTacStatus.tactic
 val generalize_tac : where:NTacStatus.tactic_pattern -> 's NTacStatus.tactic
 val clear_tac : string list -> 's NTacStatus.tactic
 val reduce_tac: 
@@ -68,25 +70,20 @@ val assert_tac:
   's NTacStatus.tactic
 
 val constructor_tac : 
       ?num:int -> args:NTacStatus.tactic_term list -> 's NTacStatus.tactic
+ ?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
+val atomic_tac : NTacStatus.tac_status NTacStatus.tactic -> 's NTacStatus.tactic
+ (*(NTacStatus.tac_status -> 'c #NTacStatus.status) ->
+    (#NTacStatus.tac_status as 'f) -> 'f*)
 
-type indtyinfo 
+(* type indtyinfo  *)
+type indtyinfo = {
+        rightno: int;
+        leftno: int;
+        consno: int;
+        reference: NReference.reference;
+        cl: NCic.constructor list;
+ }
 
 val ref_of_indtyinfo : indtyinfo -> NReference.reference
 
@@ -100,3 +97,7 @@ val find_in_context : 'a -> ('a * 'b) list -> int
 val inversion_tac: 
    what:NTacStatus.tactic_term -> where:NTacStatus.tactic_pattern -> 
      's NTacStatus.tactic
+
+val exact_tac: NTacStatus.tactic_term -> 's NTacStatus.tactic
+val first_tac: 's NTacStatus.tactic list -> 's NTacStatus.tactic
+val sort_of_goal_tac: NCic.term ref -> 's NTacStatus.tactic