(** * Definitions *)
Definition symbol := nat.
Definition string := (string nat).
Definition card : Type := (card nat).
Definition stack := stack nat.
Notation "x / y" := (x,y).
Implicit Types a b : symbol.
Implicit Types x y z : string.
Implicit Types d e : card.
Implicit Types A R P : stack.
Coercion sing (n : nat) := [n].
(** ** Post Correspondence Problem *)

Lemma tau1_app A B : tau1 (A ++ B) = tau1 A ++ tau1 B.