Section sub_setoid.
Variable U : Setoid.
Definition Reg_law (A : U -> Prop) := forall x y : U, x =_S y -> A x -> A y.
Structure > Setoid_pred : Type :=
{Pred :> U -> Prop; Prf_reg :> Reg_law Pred}.
Variable A : Setoid_pred.
Structure SubType : Type :=  {Elt_sub : U; Prf_constr : A Elt_sub}.
Definition Equal_SubType (a b : SubType) := Elt_sub a =_S Elt_sub b.

Lemma Equal_SubType_equiv : Equivalence Equal_SubType.