Proof using.
move => step silent.
case => e s.
rewrite /strong_fairness /weak_fairness /inf_enabled /cont_enabled.
move => H_str l neq H_cont.
apply: H_str; first by [].
exact: continuously_inf_often.
Qed.
CoInductive lb_step_execution (step : lb_step_relation) : infseq event -> Prop :=
Cons_lb_step_exec : forall (e e' : event) (tr : list trace) (s : infseq event),
step (evt_a e) (evt_l e) (evt_a e') tr ->
evt_trace e' = evt_trace e ++ tr ->
lb_step_execution step (Cons e' s) ->
lb_step_execution step (Cons e (Cons e' s)).

(* Specifications: *)
Lemma lb_step_execution_invar :
forall step x s, lb_step_execution step (Cons x s) -> lb_step_execution step s.