Definition BDDmake :=
if Neqb l r
then (cfg, l)
else
match MapGet3 _ (fst (snd cfg)) l r x with
| Some y => (cfg, y)
| None => BDDalloc gc cfg x l r ul
end.

Lemma BDDmake_bool_fun :
bool_fun_eq (bool_fun_of_BDD (fst BDDmake) (snd BDDmake))
(bool_fun_if x (bool_fun_of_BDD cfg r) (bool_fun_of_BDD cfg l)).