Record Setoid : Type := 
  {Carrier :> Type; Equal : relation Carrier; Prf_equiv :> equivalence Equal}.Record Setoid : Type := 
  {Carrier :> Type; Equal : relation Carrier; Prf_equiv :> equivalence Equal}.Record Setoid : Type := 
  {Carrier :> Type; Equal : relation Carrier; Prf_equiv :> equivalence Equal}.Record Setoid : Type := 
  {Carrier :> Type; Equal : relation Carrier; Prf_equiv :> equivalence Equal}.

(* Specifications: *)
Lemma Refl : forall (E : Setoid) (x : E), Equal x x.
Lemma Sym : forall (E : Setoid) (x y : E), Equal x y -> Equal y x.
Lemma Trans : forall (E : Setoid) (x y z : E), Equal x y -> Equal y z -> Equal x z.