Section EVAL.
Variable ea : TA -> Prop.
Fixpoint eval_f (f:GFormula) {struct f}: Prop :=
match f with
| TT  => True
| FF  => False
| A a _ =>  ea a
| X  p => ex p
| Cj e1 e2 => (eval_f e1) /\ (eval_f e2)
| D e1 e2  => (eval_f e1) \/ (eval_f e2)
| N e     => ~ (eval_f e)
| I f1 _ f2 => (eval_f f1) -> (eval_f f2)
end.
End EVAL.

Lemma eval_f_morph :
forall  (ev ev' : TA -> Prop) (f : GFormula),
(forall a, ev a <-> ev' a) -> (eval_f ev f <-> eval_f ev' f).