Definition bool_fun_mu_ex (bft bfg : bool_fun) : bool_fun :=
bool_fun_exl (bool_fun_and bft (bool_fun_replacel bfg lx lx')) lx'.
Definition mu_all_eval (t be : bool_expr) : bool_expr :=
univl (Impl t (replacel be lx lx')) lx'.
Definition mu_ex_eval (t be : bool_expr) : bool_expr :=
exl (ANd t (replacel be lx lx')) lx'.
Definition BDDmu_all (gc : BDDconfig -> list ad -> BDDconfig)
(cfg : BDDconfig) (ul : list ad) (nodet nodeg : ad) :=
match BDDreplacel gc cfg ul nodeg lx lx' with
| (cfgr, noder) =>
match BDDimpl gc cfgr (noder :: ul) nodet noder with
| (cfgi, nodei) => BDDunivl gc cfgi (nodei :: ul) nodei lx'
end
end.
Definition BDDmu_ex (gc : BDDconfig -> list ad -> BDDconfig)
(cfg : BDDconfig) (ul : list ad) (nodet nodeg : ad) :=
match BDDreplacel gc cfg ul nodeg lx lx' with
| (cfgr, noder) =>
match BDDand gc cfgr (noder :: ul) nodet noder with
| (cfga, nodea) => BDDexl gc cfga (nodea :: ul) nodea lx'
end
end.

Lemma bool_fun_mu_ex_preserves_eq :
forall bft1 bft2 bfg1 bfg2 : bool_fun,
bool_fun_eq bft1 bft2 ->
bool_fun_eq bfg1 bfg2 ->
bool_fun_eq (bool_fun_mu_ex bft1 bfg1) (bool_fun_mu_ex bft2 bfg2).