unfold not in |- *. simple induction a. simpl in |- *. intros. absurd (x = y). auto.
exact H0. auto.
Qed.

Lemma F_If :
forall (T T' : Set) (a : bool) (x y : T) (F : T -> T'),
F (If T a x y) = If T' a (F x) (F y).