#[local]
Hint Resolve hold_eFF : tauto.

Lemma xcnf_impl :
forall
(k: kind)
(f1 : GFormula k)
(o : option unit)
(f2 : GFormula k)
(IHf1 : forall (pol : bool) (env : Env),
eval_cnf env (xcnf pol f1) ->
hold k (eval_f e_rtyp (eval env) (if pol then f1 else NOT f1)))
(IHf2 : forall (pol : bool) (env : Env),
eval_cnf env (xcnf pol f2) ->
hold k (eval_f e_rtyp (eval env) (if pol then f2 else NOT f2))),
forall (pol : bool) (env : Env),
eval_cnf env (xcnf pol (IMPL f1 o f2)) ->
hold k (eval_f e_rtyp (eval env) (if pol then IMPL f1 o f2 else NOT (IMPL f1 o f2))).