module FFTNF:sig..end
Compact tentative specification of FFTNF(_<_):
Consider a graph whose nodes are literals of a formula and two nodes are connected by an edge iff the literals share a variable. Direct the edges so that there is no edge a->b for b_<_a. The formula is in FFTNF(_<_) iff it is in TNF and the number of quantifiers a literal is in scope of never decreases along an edge, for some such directing of edges.
FIXME: the above specification is not correct (too weak).
val parsimony_threshold_1 : int Pervasives.refval parsimony_threshold_2 : int Pervasives.refval p_pn_nnf : ?do_pnf:bool -> Formula.formula -> Formula.formulaval ff_tnf : ?force_parsimony:int ->
(Formula.formula -> Formula.formula -> bool) ->
Formula.formula -> Formula.formulaval promote_rels : Aux.Strings.t -> Formula.formula -> Formula.formula -> boolval ffsep : Aux.Strings.t ->
Aux.Strings.t ->
Formula.formula ->
(Formula.fo_var list * Formula.formula list * Formula.formula) list