]> matita.cs.unibo.it Git - helm.git/blob - matita/components/ng_tactics/nTactics.mli
Add support for proving cases in a different order
[helm.git] / matita / components / ng_tactics / nTactics.mli
1 (*
2     ||M||  This file is part of HELM, an Hypertextual, Electronic        
3     ||A||  Library of Mathematics, developed at the Computer Science     
4     ||T||  Department, University of Bologna, Italy.                     
5     ||I||                                                                
6     ||T||  HELM is free software; you can redistribute it and/or         
7     ||A||  modify it under the terms of the GNU General Public License   
8     \   /  version 2 or (at your option) any later version.      
9      \ /   This software is distributed as is, NO WARRANTY.     
10       V_______________________________________________________________ *)
11
12 (* $Id: nCic.ml 9058 2008-10-13 17:42:30Z tassi $ *)
13
14 val print_tac: bool -> string -> 's NTacStatus.tactic
15
16 val id_tac: 's NTacStatus.tactic
17 val dot_tac: 's NTacStatus.tactic
18 val branch_tac: ?force:bool -> 's NTacStatus.tactic
19 val shift_tac: 's NTacStatus.tactic
20 val pos_tac: int list -> 's NTacStatus.tactic
21 val case_tac: string -> 's NTacStatus.tactic
22 val wildcard_tac: 's NTacStatus.tactic
23 val merge_tac: 's NTacStatus.tactic
24 val focus_tac: int list -> 's NTacStatus.tactic
25 val unfocus_tac: 's NTacStatus.tactic
26 val skip_tac: 's NTacStatus.tactic
27 val try_tac: NTacStatus.tac_status NTacStatus.tactic -> 's NTacStatus.tactic
28 val repeat_tac: NTacStatus.tac_status NTacStatus.tactic -> 's NTacStatus.tactic
29
30 val compare_statuses : past:#NTacStatus.lowtac_status -> present:#NTacStatus.lowtac_status -> int list * int list
31
32 val distribute_tac:
33  NTacStatus.lowtac_status NTacStatus.lowtactic -> 's NTacStatus.tactic
34 val exec : NTacStatus.tac_status NTacStatus.tactic -> 's NTacStatus.lowtactic
35 val block_tac: 's NTacStatus.tactic list -> 's NTacStatus.tactic
36
37 val apply_tac: NTacStatus.tactic_term -> 's NTacStatus.tactic
38 val assumption_tac: 's NTacStatus.tactic
39 val change_tac: 
40    where:NTacStatus.tactic_pattern -> with_what:NTacStatus.tactic_term -> 
41      's NTacStatus.tactic
42 val cut_tac: NTacStatus.tactic_term -> 's NTacStatus.tactic
43 val elim_tac: 
44    what:NTacStatus.tactic_term -> where:NTacStatus.tactic_pattern -> 
45      's NTacStatus.tactic
46 val intro_tac: string -> 's NTacStatus.tactic
47 val intros_tac: 
48      ?names_ref:string list ref -> string list -> 's NTacStatus.tactic
49 val cases_tac: 
50    what:NTacStatus.tactic_term -> where:NTacStatus.tactic_pattern -> 
51      's NTacStatus.tactic
52 val case1_tac: string -> 's NTacStatus.tactic
53 val lapply_tac: NTacStatus.tactic_term -> 's NTacStatus.tactic
54 val rewrite_tac:
55   dir:[ `LeftToRight | `RightToLeft ] ->
56    what:NTacStatus.tactic_term -> where:NTacStatus.tactic_pattern -> 
57     's NTacStatus.tactic
58 val generalize0_tac : NotationPt.term list -> 's NTacStatus.tactic
59 val generalize_tac : where:NTacStatus.tactic_pattern -> 's NTacStatus.tactic
60 val clear_tac : string list -> 's NTacStatus.tactic
61 val reduce_tac: 
62       reduction:[ `Normalize of bool | `Whd of bool ] ->
63       where:NTacStatus.tactic_pattern -> 's NTacStatus.tactic
64 val letin_tac: 
65       where:NTacStatus.tactic_pattern ->
66       what: NTacStatus.tactic_term ->
67       string -> 's NTacStatus.tactic
68 val assert_tac:
69  ((string * [`Decl of NTacStatus.tactic_term | `Def of NTacStatus.tactic_term * NTacStatus.tactic_term]) list * NTacStatus.tactic_term) list ->
70   's NTacStatus.tactic
71
72 val constructor_tac : 
73  ?num:int -> args:NTacStatus.tactic_term list -> 's NTacStatus.tactic
74
75 val atomic_tac : NTacStatus.tac_status NTacStatus.tactic -> 's NTacStatus.tactic
76  (*(NTacStatus.tac_status -> 'c #NTacStatus.status) ->
77     (#NTacStatus.tac_status as 'f) -> 'f*)
78
79 (* type indtyinfo  *)
80 type indtyinfo = {
81         rightno: int;
82         leftno: int;
83         consno: int;
84         reference: NReference.reference;
85         cl: NCic.constructor list;
86  }
87
88 val ref_of_indtyinfo : indtyinfo -> NReference.reference
89
90 val analyze_indty_tac :
91     what:NTacStatus.tactic_term ->
92     indtyinfo option ref -> (#NTacStatus.tac_status as 'a) -> 'a
93
94
95 val find_in_context : 'a -> ('a * 'b) list -> int
96
97 val inversion_tac: 
98    what:NTacStatus.tactic_term -> where:NTacStatus.tactic_pattern -> 
99      's NTacStatus.tactic
100
101 val exact_tac: NTacStatus.tactic_term -> 's NTacStatus.tactic
102 val first_tac: 's NTacStatus.tactic list -> 's NTacStatus.tactic
103 val sort_of_goal_tac: NCic.term ref -> 's NTacStatus.tactic