(* 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 note = string
type where = (name * name) option
type inferred = Cic.annterm
+type pattern = Cic.annterm
type step = Note of note
| Theorem of name * what * 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
+ | Rewrite of how * what * where * pattern * note
+ | Elim of what * using option * pattern * note
| Apply of what * note
- | Change of inferred * what * where * note
+ | Change of inferred * what * where * pattern * note
| ClearBody of name * note
| Branch of step list list * note