Proof using.
unfold weak_fairness. unfold cont_enabled, inf_occurred, continuously, inf_often.
intros step e silent s fair a neq eval.
assert (eval_es: eventually (always (now (enabled step a))) (Cons e s)).
apply E_next. assumption.
apply fair in eval_es.
apply always_invar in eval_es.
assumption.
assumption.
Qed.

(* Specifications: *)
Lemma weak_fairness_extensional :
forall step silent, extensional (weak_fairness step silent).