Notation "m ?= n" := (eq_nat m n) (at level 70): nat_scope.
Inductive eq_nat_spec: nat -> nat -> bool -> Type :=
eq_nat_spect: forall m, eq_nat_spec m m true
| eq_nat_specb: forall m n, m <> n -> eq_nat_spec m n false.

(* Specifications: *)
Lemma eq_natP m n: eq_nat_spec m n (m ?= n).
Notation "x .+2" := (S (S x))  (at level 9): nat_scope.