Proof using.
move => step.
rewrite /extensional /=.
cofix c.
case => e1; case => e1' s1.
case => e2; case => e2' s2 H_eq.
find_apply_lem_hyp exteq_inversion.
break_and.
find_copy_apply_lem_hyp exteq_inversion.
break_and.
repeat find_rewrite.
move => H_exec.
inversion H_exec; subst.
apply (Cons_lb_step_exec _ tr) => //.
by apply: c; eauto.
Qed.
Definition event_step_star (step : step_relation A trace) (init : A) (e : event) :=
refl_trans_1n_trace step init (evt_a e) (evt_trace e).
Definition step_star_lb_step_reachable (lb_step : lb_step_relation) (step : step_relation A trace) (init : A) :=
forall a l a' tr tr',
refl_trans_1n_trace step init a tr' ->
lb_step a l a' tr ->
refl_trans_1n_trace step init a' (tr' ++ tr).

(* Specifications: *)
Lemma step_star_lb_step_execution :
forall lb_step step init,
step_star_lb_step_reachable lb_step step init ->
forall s, event_step_star step init (hd s) ->
lb_step_execution lb_step s ->
always (now (event_step_star step init)) s.