Fixpoint univl (be : bool_expr) (la : list ad) {struct la} : bool_expr :=
  match la with
  | nil => be
  | a :: la' => forall_ a (univl be la')
  end.Fixpoint exl (be : bool_expr) (la : list ad) {struct la} : bool_expr :=
  match la with
  | nil => be
  | a :: la' => be_ex a (exl be la')
  end.

Lemma univl_OK : forall (la : list ad) (be : bool_expr), bool_fun_eq (bool_fun_of_bool_expr (univl be la)) (bool_fun_univl (bool_fun_of_bool_expr be) la).