Fixpoint bool_fun_univl (bf : bool_fun) (la : list ad) {struct la} :
bool_fun :=
match la with
| nil => bf
| a :: la' => bool_fun_forall a (bool_fun_univl bf la')
end.
Fixpoint bool_fun_exl (bf : bool_fun) (la : list ad) {struct la} :
bool_fun :=
match la with
| nil => bf
| a :: la' => bool_fun_ex a (bool_fun_exl bf la')
end.

Lemma bool_fun_subst1_eq_subst :
forall (x : BDDvar) bfx (bf : bool_fun),
bool_fun_independent bfx x ->
bool_fun_eq (bool_fun_subst1 x bfx bf) (bool_fun_subst x bfx bf).