Definition BDDuniv_memo_put (cfg : BDDconfig) (x : BDDvar)
(node node' : ad) :=
match cfg with
| (bs, (share, (fl, (cnt, (negm, (orm, um)))))) =>
(bs, (share, (fl, (cnt, (negm, (orm, MapPut2 ad um node x node'))))))
end.

Lemma BDDum_put_OK :
forall (cfg : BDDconfig) (x : BDDvar) (node node' : ad),
BDDconfig_OK cfg ->
config_node_OK cfg node ->
config_node_OK cfg node' ->
Nleb (node_height cfg node') (node_height cfg node) = true ->
bool_fun_eq (bool_fun_of_BDD cfg node')
(bool_fun_forall x (bool_fun_of_BDD cfg node)) ->
BDDconfig_OK (BDDuniv_memo_put cfg x node node').