(* * PCP to CFPP *)
Hint Rewrite concat_app map_app map_map : list.
Hint Rewrite <- map_rev : list.
Definition gamma (A : stack nat) := map (fun '(x,y) => (x, rev y)) A.

Lemma sigma_snoc A (x y u v: list sig) (s s': sig) :
sigma s A = x ++ [s] ++ y -> ~ s el x -> ~ s el y ->
sigma s' (A ++ [(u, v)]) = x ++ u ++ s' ++ v ++ y.