Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Re: Universe Polymorphism

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Re: Universe Polymorphism


chronological Thread 
  • From: Dan Doel <dan.doel AT gmail.com>
  • To: Randy Pollack <rpollack AT inf.ed.ac.uk>
  • Cc: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Re: Universe Polymorphism
  • Date: Mon, 13 Sep 2010 13:29:22 -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=i6sMKJ1gtjvE3gYPW9JMp/BqBQUDpqUVL0x1N/S1rFXle9UC+mlb1G8JOLnzB7RXIJ 9K8hB4bAxlXIp3kCOWV1rL6koCG6dBgdmARIQqA6ah2vLgyKUi8hvep3w/pAtTaOBTBc 75Vo9EpOHqYFux41WLVLC1d3+TTmBRFRNT6Is=

On Monday 13 September 2010 12:25:05 pm Randy Pollack wrote:

> > I don't know what you mean by "outermost".
> 
> Universe polymorphism is analagous to Hindley-Milner type
> polymorphism; i.e. outermost (implicit) quantification.

Oh, in that case, Agda allows more than that:

  foo : (T    : (i : Level) → Set i → Set i)
      → (nil  : (i : Level) → (S : Set i) → T i S)
      → (cons : (i : Level) → (S : Set i) → S → T i S → T i S)
      → T (suc (suc zero)) Set₁
  foo T nil cons = cons (suc (suc zero)) Set₁ (T (suc zero) Set₀)
                  (nil (suc (suc zero)) Set₁)

  data List (i : Level) (A : Set i) : Set i where
    []   : List i A
    _::_ : A → List i A → List i A

  l : List (suc (suc zero)) Set₁
  l = foo List (λ i S → []) (λ i S → _::_) -- List (suc zero) Set :: []

-- Dan




Archive powered by MhonArc 2.6.16.

Top of Page