module Make:
type
seq_t
type
proof_t
type
defs_t
type
rule_t
type
select_f = int -> proof_t -> int list
type
infrule_app = (seq_t * Tagpairs.t * Tagpairs.t) list * string
type
abdinfrule_f = seq_t -> defs_t -> defs_t list
type
abdbackrule_f = seq_t ->
seq_t -> defs_t -> defs_t list
type
abdgenrule_f = seq_t ->
defs_t -> (infrule_app * defs_t) list
type
t = int ->
proof_t ->
defs_t ->
((int list * proof_t) * defs_t) Blist.t
val mk_abdinfrule : abdinfrule_f -> t
val mk_abdbackrule : select_f -> abdbackrule_f -> t
val mk_abdgenrule : abdgenrule_f -> t
val fail : t
val lift : rule_t -> t
val compose : t -> t -> t
val choice : t list -> t
val attempt : t -> t
val first : t list -> t