Notation "x == y" := (eq_op x y)
  (at level 70, no associativity) : bool_scope.Notation eqxx := eq_refl.Implicit Types (A : pred T1) (b : bool) (x : T1) (z : T2).

Theorem eq_irrelevance (T : eqType) x y : forall e1 e2 : x = y :> T, e1 = e2.