Local Notation qT := (type_of (Phantom (rel D) encD)).Definition quotClass := QuotClass equivQTP.Canonical quotType := QuotType qT quotClass.Fact eqMixin : Equality.mixin_of qT.Canonical eqType := EqType qT eqMixin.Definition choiceMixin := CanChoiceMixin ereprK.Canonical choiceType := ChoiceType qT choiceMixin.Canonical eqQuotType := EqQuotType eD qT eqmodE.Definition defaultEncModRelClass :=
  @EncModRelClassPack D D id id r r (fun _ rxx => rxx) (fun _ _ => erefl _).Canonical defaultEncModRel := EncModRelPack defaultEncModRelClass.Fact eq_quot_countMixin : Countable.mixin_of {eq_quot encD}.Canonical eq_quot_countType := CountType {eq_quot encD} eq_quot_countMixin.

(* Specifications: *)
Lemma eqmodE x y : x == y %[mod_eq e] = e x y.
Lemma eqmodP x y : reflect (x = y %[mod_eq e]) (e x y).