Definition L (G : cfg) x := rewt G [startsym G] x /\ terminal G x.
Definition sym_G (G : cfg) :=
startsym G :: flat_map (fun '(a, x) => a :: x) (rules G).

(* Specifications: *)
Lemma sym_G_rewt x G y :
x <<= sym_G G -> rewt G x y -> y <<= sym_G G.