Section PCP_CFPI.
Variable P : stack nat.
Definition Sigma := sym P.
Notation "#" := (fresh Sigma).
Definition gamma1 (A : stack nat) :=
map (fun '(x, y) => (x, (x ++ [#] ++ y ++ [#]))) A.
Definition gamma2 (A : stack nat) :=
map (fun '(x, y) => (y, (x ++ [#] ++ y ++ [#]))) A.
Fixpoint gamma (A : stack nat) :=
match A with
| [] => []
| (x, y) :: A => gamma A ++ x ++ [#] ++ y ++ [#]
end.

Lemma gamma_inj A1 A2 :
~ # el sym A1 -> ~ # el sym A2 ->
gamma A1 = gamma A2 -> A1 = A2.