Inductive id : Type :=
  | Id : string -> id.Inductive id : Type :=
  | Id : string -> id.Instance eq_dec_id (x y : id) : Dec (x = y).Definition beq_id x y :=
  match x,y with
    | Id n1, Id n2 => if string_dec n1 n2 then true else false
  end.

(* Specifications: *)
Theorem beq_id_refl : forall id, true = beq_id id id.
Theorem beq_id_true_iff : forall x y : id, beq_id x y = true <-> x = y.
Theorem beq_id_false_iff : forall x y : id, beq_id x y = false <-> x <> y.
Theorem false_beq_id : forall x y : id, x <> y -> beq_id x y = false.