Definition BDDor_memo_put (cfg : BDDconfig) (node1 node2 node' : ad) :=
  match cfg with
  | (bs, (share, (fl, (cnt, (negm, (orm, um)))))) =>
      (bs,
      (share, (fl, (cnt, (negm, (MapPut2 _ orm node1 node2 node', um))))))
  end.

(* Specifications: *)
Lemma BDDorm_put_nodes_preserved : forall (cfg : BDDconfig) (node1 node2 node' : ad), nodes_preserved cfg (BDDor_memo_put cfg node1 node2 node').
Lemma BDDorm_put_OK : forall (cfg : BDDconfig) (node1 node2 node' : ad), BDDconfig_OK cfg -> config_node_OK cfg node1 -> config_node_OK cfg node2 -> config_node_OK cfg node' -> Nleb (node_height cfg node') (BDDvar_max (node_height cfg node1) (node_height cfg node2)) = true -> bool_fun_eq (bool_fun_of_BDD cfg node') (bool_fun_or (bool_fun_of_BDD cfg node1) (bool_fun_of_BDD cfg node2)) -> BDDconfig_OK (BDDor_memo_put cfg node1 node2 node').
Lemma BDDnegm_put_nodes_preserved : forall (cfg : BDDconfig) (node node' : ad), nodes_preserved cfg (BDDneg_memo_put cfg node node').