Proof using.
intros.
find_apply_lem_hyp refl_trans_1n_n1_trace.
eapply refl_trans_n1_trace_ind; eauto.
intros. eapply H0; eauto using refl_trans_n1_1n_trace, RT1n_step.
Qed.

(* Specifications: *)
Theorem true_in_reachable_elim :
forall (step : step_relation) init (P : A -> Prop),
true_in_reachable step init P ->
(P init) /\
(forall a a' out,
step a a' out ->
reachable step init a ->
P a ->
P a').