Require Setoid.
Require ZArith.
Inductive Erasable(A : Set) : Prop :=
erasable: A -> Erasable A.
Arguments erasable [A] _.
Hint Constructors Erasable.
Scheme Erasable_elim := Induction for Erasable Sort Prop.
Notation "## T" := (Erasable T) (at level 1, format "## T") : Erasable_scope.
Notation "# x" := (erasable x) (at level 1, format "# x") : Erasable_scope.
Open Scope Erasable_scope.

Axiom Erasable_inj : forall {A : Set}{a b : A}, #a=#b -> a=b.