fact: Fixpoint fv_bexp (b: bexp) : IdentSet.t := match b with | TRUE => IdentSet.empty | FALSE => IdentSet.empty | EQUAL a1 a2 => IdentSet.union (fv_aexp a1) (fv_aexp a2) | LESSEQUAL a1 a2 => IdentSet.union (fv_aexp a1) (fv_aexp a2) | NOT b1 => fv_bexp b1 | AND b1 b2 => IdentSet.union (fv_bexp b1) (fv_bexp b2) end.
imports: Coq(ZArith Psatz Bool String Program.Equality FSets Wellfounded) CDF(Sequences IMP Simulation)