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).