Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] an inductive types question

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] an inductive types question


chronological Thread 
  • From: Dan Doel <dan.doel AT gmail.com>
  • To: André Hirschowitz <ah AT unice.fr>
  • Cc: AUGER Cédric <Cedric.Auger AT lri.fr>, Coq Club <coq-club AT pauillac.inria.fr>
  • Subject: Re: [Coq-Club] an inductive types question
  • Date: Sun, 11 Oct 2009 20:29:27 -0400
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id; b=AOshUo1BKJsJGAn8vsCxQC9aWy7vktMR2uF0hvKfqBTVXai11KuF+hIwr60ZpdzzOQ 4sgJkbazbr3vCkbyYPRABuMEa1MZlO/VCpOWXOJz+dmqsNZeOZsodyypyBShAMsLt39y 9/BSxb76RpwC2ErqhK4VFiFnPiFAFt59J8bA4=
  • List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>

On Sunday 11 October 2009 9:53:27 am André Hirschowitz wrote:
> I am not so happy with that example, let me propose a hopefully more
> enlightening one:
> 
> you want to define
> Z/2Z. So you would like to write for instance
> 
> Inductive Ztwo : Type :=
> O :Ztwo
> 
> | S : Ztoo ->Ztwo
> 
> WITH  forall n :Ztwo ,  SSn =n.
> 
> This corresponding  Ztwo_rect (or fixpoint) should generate a proof
> obligation for checking that the recursive formulas are compatible with
> the relations specified under the WITH banner.

This sounds to me like quotient types. Coq is an intensional type theory, 
which means its built-in equality is limited to distinguishing constructors, 
more or less. So, to work with quotients, people use setoids, which is a set 
and an equivalence relation that's supposed to represent equality on the set 
in question.

However, there are extensional theories where you can take a setoid 
(something) like that and tell the language to make a new type where the 
elements are the equivalence classes of such a setoid. It may not be that 
simple, but that's the gist. I don't really have experience with such 
languages, but NuPRL is one, for instance.

I wouldn't get your hopes up on quotient types being added to Coq, though. 
You 
might want to read about them anyway, though, and googling "quotient types" 
seems to generate a lot of hits.

Cheers.

-- Dan





Archive powered by MhonArc 2.6.16.

Top of Page