Section BDDquant.
Variable gc : BDDconfig -> list ad -> BDDconfig.
Hypothesis gc_is_OK : gc_OK gc.
Section BDDuniv_results.
Variable cfg : BDDconfig.
Variable ul : list ad.
Variable y : BDDvar.
Variable node : ad.
Hypothesis cfg_OK : BDDconfig_OK cfg.
Hypothesis ul_OK : used_list_OK cfg ul.
Hypothesis used : used_node' cfg ul node.
Definition BDDuniv :=
BDDuniv_1 gc cfg ul node y (S (nat_of_N (node_height cfg node))).
Let lt_1 :
nat_of_N (node_height cfg node) < S (nat_of_N (node_height cfg node)).

(* Specifications: *)
Lemma BDDuniv_config_OK : BDDconfig_OK (fst BDDuniv).
Lemma BDDuniv_node_OK : config_node_OK (fst BDDuniv) (snd BDDuniv).
Lemma BDDuniv_used_nodes_preserved :
used_nodes_preserved cfg (fst BDDuniv) ul.
Lemma BDDuniv_is_univ :
bool_fun_eq (bool_fun_of_BDD (fst BDDuniv) (snd BDDuniv))
(bool_fun_forall y (bool_fun_of_BDD cfg node)).
Lemma BDDuniv_list_OK : used_list_OK (fst BDDuniv) ul.
Lemma BDDuniv_list_OK_cons : used_list_OK (fst BDDuniv) (snd BDDuniv :: ul).
Lemma BDDuniv_var_le :
Nleb (node_height (fst BDDuniv) (snd BDDuniv)) (node_height cfg node) =
true.