Notation EquivRel r er es et := (@EquivRelPack _ r (EquivClass er es et)).Record encModRel := EncModRelPack {
  enc_mod_rel :> rel D;
  _ : encModRel_class_of enc_mod_rel
}.Record encModRel := EncModRelPack {
  enc_mod_rel :> rel D;
  _ : encModRel_class_of enc_mod_rel
}.Record encModRel := EncModRelPack {
  enc_mod_rel :> rel D;
  _ : encModRel_class_of enc_mod_rel
}.Definition encModRelP (x : D) : r x x -> r (ED (DE x)) x.Definition encModRelE : r =2 e.Notation EncModRelClass m :=
  (EncModRelClassPack (fun x _ => m x) (fun _ _ => erefl _)).Notation EncModRel r m := (@EncModRelPack _ _ _ _ _ r (EncModRelClass m)).

(* Specifications: *)
Lemma enc_mod_rel_is_equiv : equiv_class_of (enc_mod_rel r).