(** ** Post Grammars *)
Fixpoint sigma (a : symbol) A :=
match A with
nil => [a]
| x/y :: A => x ++ (sigma a A) ++ y
end.
(** ** Alphabets *)
Fixpoint sym (R : SRS) :=
match R with
[] => []
| x / y :: R => x ++ y ++ sym R
end.

(* Specifications: *)
Lemma sym_app P R :
sym (P ++ R) = sym P ++ sym R.
Lemma sym_map X (f : X -> card) l Sigma :
(forall x : X, x el l -> sym [f x] <<= Sigma) -> sym (map f l) <<= Sigma.
Lemma sym_word_l R u v  :
u / v el R -> u <<= sym R.
Lemma sym_word_R R u v  :
u / v el R -> v <<= sym R.