End BDDneg_results.
Section BDDor_results.
Variable cfg : BDDconfig.
Variable ul : list ad.
Variable node1 node2 : ad.
Hypothesis cfg_OK : BDDconfig_OK cfg.
Hypothesis ul_OK : used_list_OK cfg ul.
Hypothesis used1 : used_node' cfg ul node1.
Hypothesis used2 : used_node' cfg ul node2.
Definition BDDor :=
BDDor_1 gc cfg ul node1 node2
(S
(max (nat_of_N (node_height cfg node1))
(nat_of_N (node_height cfg node2)))).
Let lt_1 :
max (nat_of_N (node_height cfg node1)) (nat_of_N (node_height cfg node2)) <
S
(max (nat_of_N (node_height cfg node1))
(nat_of_N (node_height cfg node2))).

(* Specifications: *)
Lemma BDDor_config_OK : BDDconfig_OK (fst BDDor).
Lemma BDDor_node_OK : config_node_OK (fst BDDor) (snd BDDor).
Lemma BDDor_used_nodes_preserved : used_nodes_preserved cfg (fst BDDor) ul.
Lemma BDDor_is_or :
bool_fun_eq (bool_fun_of_BDD (fst BDDor) (snd BDDor))
(bool_fun_or (bool_fun_of_BDD cfg node1) (bool_fun_of_BDD cfg node2)).
Lemma BDDor_list_OK : used_list_OK (fst BDDor) ul.
Lemma BDDor_list_OK_cons : used_list_OK (fst BDDor) (snd BDDor :: ul).
Lemma BDDor_var_le :
Nleb (node_height (fst BDDor) (snd BDDor))
(BDDvar_max (node_height cfg node1) (node_height cfg node2)) = true.