coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Gaëtan Gilbert <gaetan.gilbert AT skyskimmer.net>
- To: coq-club AT inria.fr
- Subject: Re: [Coq-Club] What is a successor universe?
- Date: Thu, 17 Jan 2019 17:04:20 +0000
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=gaetan.gilbert AT skyskimmer.net; spf=Pass smtp.mailfrom=gaetan.gilbert AT skyskimmer.net; spf=None smtp.helo=postmaster AT relay9-d.mail.gandi.net
- Ironport-phdr: 9a23:kwiLThWV/UJHMKCalXe4a2PljqbV8LGtZVwlr6E/grcLSJyIuqrYYxyHt8tkgFKBZ4jH8fUM07OQ7/iwHzRYqb+681k6OKRWUBEEjchE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRoLerpBIHSk9631+ev8JHPfglEnjWwba9xIRmssQndqtQdjJd/JKo21hbHuGZDdf5MxWNvK1KTnhL86dm18ZV+7SleuO8v+tBZX6nicKs2UbJXDDI9M2Ao/8LrrgXMTRGO5nQHTGoblAdDDhXf4xH7WpfxtTb6tvZ41SKHM8D6Uaw4VDK/5KptVRTmijoINyQh/W/KlMJwgqJVrhGvqRNxzIHbYp2aOvVlc6PBft4XX3ZNUtpfWiFDBI63cosBD/AGPeZdt4TzpkEBqgeiBQa2AuPg0j5Ghn7y3aIhzeshCx3G1xEnEtIBqnvbssn1O70UUeyvw6nIzDHDYOhI1jfn9IjFaQshofKMXLJrcsrRyEwvFwbbgVWKs4DlOS2a1vgUvmWd8uFuVvqvhnY5pw1soDWj3MUhhpXTio4IyV3J+z91zJsxKNC8UEJ3fNGpHZhKuyybM4Z6WN4uT39ptSog17ELu5i2dzUQxps93R7QcfmHfpCI4h39UOaRJi91hGh7d7K7nRmz8UytxvThWcWu1VZFtCtFkt3WunACzRPT7NWISvpn8kenxzmPyxjf6uBCIU8qiarWM4AtzqMym5YJs0nPAjX6lFj1gaKYbEko5+yl5uD/brXjvJCcNot0ig/kMqQpn8yyGes4PRIQUGiH4+u80qfv/UL4QLVOlfI5jLPZsIzBKMQApa64AxRV0oUi6xa6Cjepzs4YkWMBLF1bZBKLl5LpNE3WIPDkEfe/hEyhnytsx/DfJ7HuHpHNLmXYn7r6ZrZ860tcyBIpwtxF5pJUDKsBIPPpVUPrutzYFExxDwvhyOH+Td55y4k2WGSVA6bfPrmBn0WP47cAKmqQbYkilzf5IfU/+7a6gnY0hVYbO6ao2ZEacmyQBfd3OEaYZH/hmJEHHHtc7Vl2d/DjlFDXCW0bXH21Ra9pvmhqWrLjNp/KQ8WWuJLE2S66GpNMYWUfVAKXEmbzdISBXvoWLiSfPp04y2BWZf2aU4YkkCqWmkri0bM+cLjP+TwDtpPm0dVvoeveiUNqrGEmP4Gmy2iIClpMsCYISjsxhv0tu0F5w0bSlKQ+hvVZEZpc7vVFU0E8OIKOl+E=
> If I omit the annotation, Coq complains that I haven't declared the
> universe where the definition should live:
This is because it needs to live in some upper bound universe, as i+1 isn't allowed. ie
Polymorphic Definition pack2@{i j|i < j} (T : Type@{i}) (x : T) : pack@{j} :=
Pack pack@{i} (Pack@{i} T x).
Gaëtan Gilbert
On 17/01/2019 15:18, Arthur Azevedo de Amorim wrote:
Coq accepts the following snippet, which declares a universe-polymorphic type that lives in a successor universe:
Polymorphic Inductive pack@{i} : Type@{i+1} :=
Pack { sort : Type@{i}; elt : sort }.
However, if I try to take the successor of a universe level elsewhere, I get a parse error:
Polymorphic Definition pack2@{i} (T : Type@{i}) (x : T) : pack@{i+1} :=
Pack pack@{i} (Pack@{i} T x).
(* Toplevel input, characters 65-66: *)
(* > Polymorphic Definition pack2@{i} (T : Type@{i}) (x : T) : pack@{i+1} := Pack pack@{i} (Pack@{i} T x). *)
(* > ^ *)
(* Error: Syntax error: [constr:universe_level] or '}' expected (in [instance]). *)
If I omit the annotation, Coq complains that I haven't declared the universe where the definition should live:
Polymorphic Definition pack2@{i} (T : Type@{i}) (x : T) :=
Pack pack@{i} (Pack@{i} T x).
(* Toplevel input, characters 61-65: *)
(* > Polymorphic Definition pack2@{i} (T : Type@{i}) (x : T) := Pack pack@{i} (Pack@{i} T x). *)
(* > ^^^^ *)
(* Error: Universe {Top.72} is unbound. *)
Is there any way of convincing Coq that pack2's codomain is pack@{i+1}?
Thanks!
Best,
Arthur
- [Coq-Club] What is a successor universe?, Arthur Azevedo de Amorim, 01/17/2019
- Re: [Coq-Club] What is a successor universe?, Gaëtan Gilbert, 01/17/2019
- Re: [Coq-Club] What is a successor universe?, Gaëtan Gilbert, 01/17/2019
- Re: [Coq-Club] What is a successor universe?, Arthur Azevedo de Amorim, 01/17/2019
- Re: [Coq-Club] What is a successor universe?, Gaëtan Gilbert, 01/17/2019
- Re: [Coq-Club] What is a successor universe?, Arthur Azevedo de Amorim, 01/17/2019
Archive powered by MHonArc 2.6.18.