Definition BDDimpl :=
  match BDDneg cfg ul node1 with
  | (cfg1, node1') => BDDor cfg1 (node1' :: ul) node1' node2
  end.

(* Specifications: *)
Lemma BDDimpl_config_OK : BDDconfig_OK (fst BDDimpl).
Lemma BDDimpl_node_OK : config_node_OK (fst BDDimpl) (snd BDDimpl).
Lemma BDDimpl_used_nodes_preserved : used_nodes_preserved cfg (fst BDDimpl) ul.
Lemma BDDimpl_is_impl : bool_fun_eq (bool_fun_of_BDD (fst BDDimpl) (snd BDDimpl)) (bool_fun_impl (bool_fun_of_BDD cfg node1) (bool_fun_of_BDD cfg node2)).
Lemma BDDimpl_list_OK : used_list_OK (fst BDDimpl) ul.
Lemma BDDimpl_list_OK_cons : used_list_OK (fst BDDimpl) (snd BDDimpl :: ul).