(** * SRH to SR *)
Section SRH_SR.
Variables (R : SRS) (x0 : string) (a0 : symbol).
Notation Sigma :=  (a0 :: x0 ++ sym R).
Definition P :=
R ++ map (fun a => [a; a0] / [a0]) Sigma ++ map (fun a => [a0; a] / [a0]) Sigma.

(* Specifications: *)
Lemma sym_P :
sym P <<= Sigma.
Lemma rewt_a0_L x :
x <<= Sigma -> rewt P (a0 :: x) [a0].
Lemma rewt_a0_R x :
x <<= Sigma -> rewt P (x ++ [a0]) [a0].
Lemma x_rewt_a0 x :
a0 el x -> x <<= Sigma -> rewt P x [a0].
Lemma SR_SRH x :
x <<= Sigma ->
rewt P x [a0] -> exists y, rewt R x y /\ a0 el y.
Lemma equi :
SRH (R, x0, a0) <-> SR (P, x0, [a0]).