CoInductive possible_traceinf: world -> traceinf -> Prop :=
| possible_traceinf_cons: forall w1 ev w2 T,
possible_event w1 ev w2 ->
possible_traceinf w2 T ->
possible_traceinf w1 (Econsinf ev T).

Lemma possible_traceinf_app_inv:
forall t2 t1 w0,
possible_traceinf w0 (t1 *** t2) ->
exists w1, possible_trace w0 t1 w1 /\ possible_traceinf w1 t2.