Skip to Content.
Sympa Menu

ssreflect - Re: [ssreflect] eqType for records ?

Subject: Ssreflect Users Discussion List

List archive

Re: [ssreflect] eqType for records ?


Chronological Thread 
  • From: Christian Doczkal <>
  • To:
  • Subject: Re: [ssreflect] eqType for records ?
  • Date: Tue, 19 Jun 2018 11:17:02 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Neutral ; spf=None
  • Ironport-phdr: 9a23:KhxPxRZ6ieGqLeBf5fHMrtH/LSx+4OfEezUN459isYplN5qZoMW4bnLW6fgltlLVR4KTs6sC17KL9fi4EUU7or+5+EgYd5JNUxJXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRpOOv1BpTSj8Oq3Oyu5pHfeQpFiCa9bL9oMBm6sRjau9ULj4dlNqs/0AbCrGFSe+RRy2NoJFaTkAj568yt4pNt8Dletuw4+cJYXqr0Y6o3TbpDDDQ7KG81/9HktQPCTQSU+HQRVHgdnwdSDAjE6BH6WYrxsjf/u+Fg1iSWIdH6QLYpUjmk8qxlSgLniD0fOjAk7m/XhMx+gqFVrh2vqBNwwZLbbo6OOfpifK7QZ88WSXZPU8tTUSFKH4Oyb5EID+oEJetVsYn9p0EPrRulGQmsBfngyjlVjXH42q01z+UgEQLc0wwkAtkDt2jbrNXvNKcTSuC10KjIwi/Fb/9MxDj975THcxEiof6WWbJ9atTeyU80Fw/cilWRqYvlPzWP2uQDqWiW9uxtXv+shW4/swx9vzeiyts2hoTLhI8Z0E3I+CR7zYovO9G0VlB3bcanHZdOrS2WKYt7Tt44T212pSo3yacKtYOlcCUJzpks2gTRZOadc4eS5xLuTOaRLil8hHJiYL+/gwy9/lO7xeLiTMW7zlBKrjFcntnItnEN0BrT5tKJSvtn5kuh2DCP2B7P6uxcPEw5mrbXJ4Qjz7MyjJYfrEXOEy3slEnokqOaaF0o+u2y5OTmZrXmqIWcN4hxigzmLqsumta/AeUjMggSXmiU4+K82Kf+8k3+XLpLj/42nbPdsJ3BO8sboLW5DxZR0ocj7Ba/CS2q0NoCnXUfNlJKZAqHj5T1O1HJOP34Fuy/g06ynzdlw/DJIKHuAonWI3jYkLbheK595FRGxAoyy9Bf/ZNUBasbLPL9QE+i/ODfWwQiKQG6x+vsFP14zZlbWGSVA6bfMaXIsFbO6Ph8DfOLYdo+uCz8MOQk7vimoXgyi1wUeeH91psNaWukH/1gZUmeamjvi9MpHGER+w4vS+qshkfUAm0bXGq7Q69pvmJzM4mhF4qWHtn80ozE5z+yG9htXk4DD1mNFXnycIDdAKUBbjnXJt5mlHoKT+r7EtNz5VSVrAb/joFfAK/M4CRB7sDu0sMw4/zUk1c8724sVpnP4yS2V2hx21gwaXo20aR4+B0vzl6J26U+jvpDUNhC4PUPXB1obZM=

Hi,

On 06/18/2018 05:37 PM, Bas Spitters wrote:
> I'd imagine first proving that eqTypes are closed under Sigma-types
> and then converting records to Sigma-types, as e.g. is done in the
> HoTT library:

Closure of eqTypes (and also finTypes) under Sigma-Types is already in the
library (see tag_eqType)

From that it is not to hard to get an eqType instance also for dependent
record types (see below). Not sure though how to best generalize this over
the constructors of a concrete record type or how to best iterate this.

Best,
Christian

--------------------8<---------------------------------

From mathcomp Require Import all_ssreflect.

Section Rec2EQ.
Variables (A : eqType) (B : A -> eqType).
Record T := mkT { fst : A ; snd : B fst}.

Definition rec2_eq (x y : T) :=
let: (mkT x1 x2,mkT y1 y2) := (x,y) in Tagged B x2 == Tagged B y2.

Lemma rec2_eqP : Equality.axiom rec2_eq.
Proof.
move => [x1 x2] [y1 y2]. apply: (iffP idP); rewrite /rec2_eq.
- rewrite -tag_eqE /tag_eq /= => /andP [/eqP ?]. subst x1.
by rewrite tagged_asE => /eqP->.
- case => ? H ; subst y1. by rewrite /Tagged H.
Qed.

Canonical T_eqType := EqType T (EqMixin rec2_eqP).
End Rec2EQ.



Archive powered by MHonArc 2.6.18.

Top of Page