(** * 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 tau2_cards x : tau2 (cards x) = x.
Hint Rewrite tau1_app tau2_app tau1_cards tau2_cards : list.