Satml_types.FLAT_FORMULAA proxy definition, encoding an equivalence p <=> l_1 /\ ... /\ l_n or p <=> l_1 \/ ... \/ l_n where p is a proxy and l_1, ..., l_n are literals.
See get_proxy_of and expand_proxy_defn.
val empty_proxies : proxiesval print : Stdlib.Format.formatter -> t -> unitval vrai : tval faux : tval empty_hcons_env : unit -> hcons_envval nb_made_vars : hcons_env -> intval atom_hcons_env : hcons_env -> Atom.hcons_envget_proxy_of ff proxies returns the proxy registered for ff in proxies, if it exists.
Note: If ff is a unit formula (i.e. a literal), get_proxy_of returns None.
The proxy of a flat formula ff is an atom p with the (implicit) equivalent p <=> ff. Proxies are used to perform lazy CNF conversion of formulas in the CDCL-Tableaux solver.
val expand_proxy_defn :
Atom.atom list list ->
proxy_defn ->
Atom.atom list listExpand a proxy definition into clausal normal form.
The definition p <=> l_1 \/ ... \/ l_n is expanded into:
(~p \/ l_1 \/ ... \/ l_n) /\ (p \/ ~l_1) /\ ... /\ (p \/ ~l_n)
and the definition p <=> l_1 /\ ... /\ l_n is expanded into:
(p \/ ~l_1 \/ ... \/ ~l_n) /\ (~p \/ l_1) /\ ... /\ (~p \/ l_n)