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: Andreas Abel <andreas.abel AT ifi.lmu.de>
  • To: David Leduc <david.leduc6 AT googlemail.com>
  • Cc: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Re: Universe Polymorphism
  • Date: Thu, 16 Sep 2010 17:35:11 +0200

Hi David,

On Sep 14, 2010, at 3:49 PM, David Leduc wrote:
Andreas Abel 
<andreas.abel AT ifi.lmu.de>
 wrote:
During the Agda meeting which finished a week ago we started to add
cumulativity

This looks like a very dynamic community!!

:-)

data T (i : Size) : Set $i
{ inn : (out : Set i) -> T i
}

I guess 'inn' is for the 't' in my example.
What is 'out'? Why do you need it?

This is MiniAgda code (which is slightly different from Agda in Syntax). From this declaration you get:

T : (i : Size) -> Set $i
inn : [i : Size] -> Set i -> T i
out : [i : Size] -> T i -> Set i

"out", the destructor, is not needed. Bracketed quantification [i : Size] -> ... is irrelevant quantification a la Barras/Bernardo (ICC).

fun U : (i : Size) -> T $i
{ U i = inn $i (T i)
}

I guess it's a function definition by case analysis (here the only
case is 'i'), right?

Yes, you could also write

  let U : (i : Size) -> T $i
    = \ i -> inn $i (T i)

I'm surprised by the $i in the type of U. Shouldn't it be the successor of $i???

It type-checks:

  T i : Set $i
  inn $i (T i) : T $i

$i means "successor of i".

Why do you pass two arguments to 'inn' while according to its
definition it appears to take only one?

MiniAgda's "data" is like the "Inductive" definition in Coq. The parameters (i:Size) are added to the constructor type.

Cheers,
Andreas

Andreas Abel  <><      Du bist der geliebte Mensch.

Theoretical Computer Science, University of Munich
Oettingenstr. 67, D-80538 Munich, GERMANY

andreas.abel AT ifi.lmu.de
http://www2.tcs.ifi.lmu.de/~abel/






Archive powered by MhonArc 2.6.16.

Top of Page