]> matita.cs.unibo.it Git - helm.git/blob - helm/software/components/ng_tactics/nTactics.mli
Implementation of ndestruct tactic (including destruction of constructor forms
[helm.git] / helm / software / 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 dot_tac: 's NTacStatus.tactic
15 val branch_tac: 's NTacStatus.tactic
16 val shift_tac: 's NTacStatus.tactic
17 val pos_tac: int list -> 's NTacStatus.tactic
18 val case_tac: string -> 's NTacStatus.tactic
19 val wildcard_tac: 's NTacStatus.tactic
20 val merge_tac: 's NTacStatus.tactic
21 val focus_tac: int list -> 's NTacStatus.tactic
22 val unfocus_tac: 's NTacStatus.tactic
23 val skip_tac: 's NTacStatus.tactic
24 val try_tac: 's NTacStatus.tactic -> 's NTacStatus.tactic
25 val repeat_tac: NTacStatus.tac_status NTacStatus.tactic -> 's NTacStatus.tactic
26
27 val distribute_tac:
28  NTacStatus.lowtac_status NTacStatus.lowtactic -> 's NTacStatus.tactic
29 val block_tac: 's NTacStatus.tactic list -> 's NTacStatus.tactic
30
31 val apply_tac: NTacStatus.tactic_term -> 's NTacStatus.tactic
32 val assumption_tac: 's NTacStatus.tactic
33 val change_tac: 
34    where:NTacStatus.tactic_pattern -> with_what:NTacStatus.tactic_term -> 
35      's NTacStatus.tactic
36 val cut_tac: NTacStatus.tactic_term -> 's NTacStatus.tactic
37 val elim_tac: 
38    what:NTacStatus.tactic_term -> where:NTacStatus.tactic_pattern -> 
39      's NTacStatus.tactic
40 val intro_tac: string -> 's NTacStatus.tactic
41 val cases_tac: 
42    what:NTacStatus.tactic_term -> where:NTacStatus.tactic_pattern -> 
43      's NTacStatus.tactic
44 val case1_tac: string -> 's NTacStatus.tactic
45 val lapply_tac: NTacStatus.tactic_term -> 's NTacStatus.tactic
46 val rewrite_tac:
47   dir:[ `LeftToRight | `RightToLeft ] ->
48    what:NTacStatus.tactic_term -> where:NTacStatus.tactic_pattern -> 
49     's NTacStatus.tactic
50 val generalize_tac : where:NTacStatus.tactic_pattern -> 's NTacStatus.tactic
51 val clear_tac : string list -> 's NTacStatus.tactic
52 val reduce_tac: 
53       reduction:[ `Normalize of bool | `Whd of bool ] ->
54       where:NTacStatus.tactic_pattern -> 's NTacStatus.tactic
55 val letin_tac: 
56       where:NTacStatus.tactic_pattern ->
57       what: NTacStatus.tactic_term ->
58       string -> 's NTacStatus.tactic
59 val assert_tac:
60  ((string * [`Decl of NTacStatus.tactic_term | `Def of NTacStatus.tactic_term * NTacStatus.tactic_term]) list * NTacStatus.tactic_term) list ->
61   's NTacStatus.tactic
62
63 val constructor_tac : 
64         ?num:int -> args:NTacStatus.tactic_term list -> 's NTacStatus.tactic
65
66 val atomic_tac :
67     (((int * Continuationals.Stack.switch) list * 'a list * 'b list *
68       [> `NoTag ])
69      list NTacStatus.status ->
70      (< auto_cache : NCicLibrary.automation_cache;
71         coerc_db : NCicCoercion.db; dump : NCicLibrary.obj list;
72         lstatus : LexiconEngine.lexicon_status; obj : NCic.obj;
73         set_coerc_db : NCicCoercion.db -> 'c;
74         set_coercion_status : 'd. (#NCicCoercion.g_status as 'd) -> 'c;
75         set_uhint_db : NCicUnifHint.db -> 'c;
76         set_unifhint_status : 'e. (#NCicUnifHint.g_status as 'e) -> 'c;
77         timestamp : NCicLibrary.timestamp; uhint_db : NCicUnifHint.db; .. >
78       as 'c)) ->
79     (#NTacStatus.tac_status as 'f) -> 'f
80
81 type indtyinfo 
82
83 val ref_of_indtyinfo : indtyinfo -> NReference.reference
84
85 val analyze_indty_tac :
86     what:NTacStatus.tactic_term ->
87     indtyinfo option ref -> (#NTacStatus.tac_status as 'a) -> 'a
88
89
90 val find_in_context : 'a -> ('a * 'b) list -> int