]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/acic_procedural/proceduralTypes.mli
- Coq/preamble: missing alias added
[helm.git] / helm / software / components / acic_procedural / proceduralTypes.mli
index 980bc1bc1c71796fe462829b96caa0414968775d..aa6ad3aa58ffa9fbe4ee3e57ccc01b2d3efbe07b 100644 (file)
 
 (* functions to be moved ****************************************************)
 
-val list_map2_filter: ('a -> 'b -> 'c option) -> 'a list -> 'b list -> 'c list
+val list_rev_map2: ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
 
-val list_split: int -> 'a list -> 'a list * 'a list
+val list_map2_filter: ('a -> 'b -> 'c option) -> 'a list -> 'b list -> 'c list
 
 val mk_arel: int -> string -> Cic.annterm
 
-val is_atomic:Cic.annterm -> bool 
-
 (****************************************************************************)
 
-type name     = string
+type flavour  = Cic.object_flavour
+type name     = string option
+type hyp      = string
 type what     = Cic.annterm
 type how      = bool
 type using    = Cic.annterm
 type count    = int
 type note     = string
-type where    = (name * name) option
+type where    = (hyp * name) option
 type inferred = Cic.annterm
+type pattern  = Cic.annterm
+type body     = Cic.annterm option
+type types    = Cic.anninductiveType list
+type lpsno    = int
 
 type step = Note of note 
-          | Theorem of name * what * note
+          | Inductive of types * lpsno * note
+          | Statement of flavour * name * what * body * note
           | Qed of note
          | Id of note
          | Intros of count option * name list * note
-          | Cut of name * what * note
-          | LetIn of name * what * note
-         | Rewrite of how * what * where * note
-         | Elim of what * using option * note
+         | Cut of name * what * note
+         | LetIn of name * what * note
+         | Rewrite of how * what * where * pattern * note
+         | Elim of what * using option * pattern * note
+         | Cases of what * pattern * note
          | Apply of what * note
-         | Change of inferred * what * where * note
-         | ClearBody of name * note
+         | Change of inferred * what * where * pattern * note 
+         | Clear of hyp list * note
+         | ClearBody of hyp * note
          | Branch of step list list * note
 
 val render_steps: 
-   (what, inferred, [> `Whd] as 'b, what CicNotationPt.obj, name) GrafiteAst.statement list -> 
+   (what, inferred, [> `Whd] as 'b, what CicNotationPt.obj, hyp) GrafiteAst.statement list -> 
    step list -> 
-   (what, inferred, 'b, what CicNotationPt.obj, name) GrafiteAst.statement list
+   (what, inferred, 'b, what CicNotationPt.obj, hyp) GrafiteAst.statement list
 
 val count_steps:
    int -> step list -> int
+
+val count_nodes:
+   int -> step list -> int