Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Setoid rewriting for type families?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Setoid rewriting for type families?


Chronological Thread 
  • From: Matthieu Sozeau <mattam AT mattam.org>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Setoid rewriting for type families?
  • Date: Mon, 09 Oct 2017 08:16:10 +0000
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=mattam AT mattam.org; spf=Pass smtp.mailfrom=matthieu.sozeau AT gmail.com; spf=None smtp.helo=postmaster AT mail-vk0-f54.google.com
  • Ironport-phdr: 9a23:A/uLOBBt7lcreg93OZwfUyQJP3N1i/DPJgcQr6AfoPdwSP3+ocbcNUDSrc9gkEXOFd2Crakb26yL6+jJYi8p39WoiDg6aptCVhsI2409vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6i760TlHERLmcAFxO+7dG4jIjs3x2frh1YfUZlBtjSahYbJ/MV2Nqhfcv9Re1Y5rNro4zzPMq2dUcuEQwnlncwHA1y3g79u9qcYwux9bvOgsopZN

Hi Christian,

  indeed there is a variant of setoid_rewrite for computational relations,
which requires you to use the CMorphisms and CRelationClasses (C for computational) 
libraries instead of the usual Morphisms and RelationClasses libraries. 
Using the definitions in there you can define Proper instances for your
constants where the relation is computational (typically using iffT instead of iff, arrow instead
of logical implication), to be used by setoid_rewrite.

Hope this helps,
-- Matthieu

On Sun, Oct 8, 2017 at 11:40 PM Christian Doczkal <christian.doczkal AT ens-lyon.fr> wrote:
Hello everyone,

Is it possible to use setoid rewriting when constructing inhabitants of
type families (X -> Type).

I have some developments proving meta-theoretic properties of proof
systems (e.g., Hilbert style systems or sequent systems). So far I've
been formalizing proof systems as inductive predicates of type:

        formula (or sequent) -> Prop

The main reason for this is that I make extensive use of setoid
rewriting to replace formulas by provably equivalent ones.

However, treating proofs of deeply embedded calculi as computational
objects seems more natural to me. Moreover, this allow defining
functions from proofs to nat (e.g, for the size of a proof). However, I
would still want to use setoid rewriting where the shape of the proof is
irrelevant.

I recall being told that prior to the introduction of universe
polymorphism, setoid could not be used for type families. So now that we
have universe polymorphism, is this reasonable now? If so, what would I
need to do to set this up?

Thanks in advance,
Christian



Archive powered by MHonArc 2.6.18.

Top of Page