proposition: Lemma r_app_rw: forall r1 r2, Equiv (Accept (r1 ;; r2)) (Lang.App (Accept r1) (Accept r2)).
proof: Proof. unfold Equiv; split; intros. - inversion H; subst; clear H. auto using app_in_eq. - apply app_in_inv in H. destruct H as (w1, (w2, (H1, (H2, H3)))). subst. rewrite <- Lang.in_def in *. eauto using accept_app. Qed.
imports: Coq.micromega.Lia Turing.Util Turing.Lang