End BDDmu_ex_results.
End Nsec.
Section Be_ok.
Variable vf : ad -> bool.
Inductive be_ok : bool_expr -> Prop :=
| zero_ok : be_ok Zero
| one_ok : be_ok One
| var_ok : forall x : BDDvar, vf x = true -> be_ok (Var x)
| neg_ok : forall be : bool_expr, be_ok be -> be_ok (Neg be)
| or_ok :
forall be1 be2 : bool_expr,
be_ok be1 -> be_ok be2 -> be_ok (Or be1 be2)
| and_ok :
forall be1 be2 : bool_expr,
be_ok be1 -> be_ok be2 -> be_ok (ANd be1 be2)
| impl_ok :
forall be1 be2 : bool_expr,
be_ok be1 -> be_ok be2 -> be_ok (Impl be1 be2)
| iff_ok :
forall be1 be2 : bool_expr,
be_ok be1 -> be_ok be2 -> be_ok (Iff be1 be2).

Lemma impl_ok_inv :
forall be1 be2 : bool_expr, be_ok (Impl be1 be2) -> be_ok be1 /\ be_ok be2.