(*******************)
(* Setoid renaming *)
(*******************)

(* Setoid library takes up some important arrow notations *)
(* used by ssreflect and elsewhere; so we must rename *)
Ltac add_morphism_tactic := SetoidTactics.add_morphism_tactic.Notation " R ===> R' " := (@Morphisms.respectful _ _ R R')
  (right associativity, at level 55) : signature_scope.(***********)
(* Prelude *)
(***********)

(* often used notation definitions and lemmas that are *)
(* not included in the other libraries *)

Definition inj_pair2 := @inj_pair2.

(* Specifications: *)
Lemma inj_sval A P : injective (@sval A P).
Lemma svalE A (P : A -> Prop) x H : sval (exist P x H) = x.
Lemma sym A (x y : A) : x = y <-> y = x.
Lemma hasPx : forall s, has_spec s (has p s).