(** ** String Rewriting *)
Inductive rew (R : SRS) : string -> string -> Prop :=
rewB x y u v : u / v el R -> rew R (x ++ u ++ y) (x ++ v ++ y).
Inductive rewt (R : SRS) : string -> string -> Prop :=
rewR z : rewt R z z
| rewS x y z :  rew R x y -> rewt R y z -> rewt R x z.

(* Specifications: *)
Lemma rewt_induct :
forall (R : SRS) z (P : string -> Prop),
(P z) ->
(forall x y : string, rew R x y -> rewt R y z -> P y -> P x) -> forall s, rewt R s z -> P s.