Proof using.
apply true_in_reachable_reqs.
- unfold revertNetwork. simpl.
unfold reachable. exists []. constructor.
- intros.
find_apply_lem_hyp reachable_revert_step; auto.
intuition.
+ unfold reachable in *.
break_exists.
eexists.
apply refl_trans_n1_1n_trace.
econstructor; eauto using refl_trans_1n_n1_trace.
+ find_rewrite. auto.
Qed.

(* Specifications: *)
Theorem true_in_reachable_transform :
forall P,
true_in_reachable step_async step_async_init P ->
true_in_reachable step_dup step_async_init (fun net => P (revertNetwork net)).