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 16:05:37 +0000
- Authentication-results: mail2-smtp-roc.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 relay2-d.mail.gandi.net
- Ironport-phdr: 9a23:NyHUlhx4HLmZTTPXCy+O+j09IxM/srCxBDY+r6Qd1OIWIJqq85mqBkHD//Il1AaPAd2Lraocw8Pt8InYEVQa5piAtH1QOLdtbDQizfssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBBr/KRB1JuPoEYLOksi7ze+/94HQbglSmDaxfa55IQmrownWqsQYm5ZpJLwryhvOrHtIeuBWyn1tKFmOgRvy5dq+8YB6/ShItP0v68BPUaPhf6QlVrNYFygpM3o05MLwqxbOSxaE62YGXWUXlhpIBBXF7A3/U5zsvCb2qvZx1S+HNsDwULs6Wymt771zRRH1likHOT43/mLZhMN+g61Uog6uqRNkzo7IY4yYLuZycr/TcN4YQ2dKQ8ZfVzZGAoO5d4YBDvAOOvpEr4bnoVsBtRqwBQioBOz01DBInGP21rA93uQuCw7JwhAgEMgIsHjOo9X1NaMSXvurw6nS0TXOdOhW2TT96YjTcRAhoPSMXbdufsrL00UvER3KjkmJpIHjIjib1fwNvnCF4+Z9V++jkWwqpx1rrjSyxcohhJPFip8Rx13L7Sl13Yk4KN6iREN6ZdOoCoZcuz+bOodsX88vQWdlszsgxLIco560Zi0KxYwnxxHBb/yHdJCF4gj9W+aVOzh5hGxpdKuiiBqo9Eiv0Oz8Vs2u3FZFtCVFlMTDtnEX2xzV9MeHVuNx/kan2TmRywDe8v9ILV02mKbBKZMt3qQ8mocQvEnNBCP6hUH7gaCOekUh4Oeo6uDnYrv8pp+bMo95kg7+Pb4wlcyjG+s4NBICX2ea+eS4z7Ls41f5QKlRg/0tkanYsIvaJccapq68Bg9azJwj5wy5Dzi4zNQUhWMHI05deBKbk4jpPEnDL+z/DfemmlijjDNrx+3dMbD6GZXMLn3DkK/7crpn6k5czhAzzdFF6J5OBLEBOqG7Zkikv9vBSxQ9LgacwuD9Cdw72JlNd3iIB/q2OSDOuFm/yeMrKeSWeMdBtz/wN/EjofHviXU0g0M1Zqq4xpgWbXW1BLJgLlnPMimkucsIDWpf5ll2d+ftklDXCWcCNUb3ZLo143QAMKzjCI7CQo63h7nYgnWgHYxNZWFDD12WV3Hla9fdAqteWGepOsZk1wc8e/25UYZ4i0O1tx7hyLtiK+fOvCsVqcC7jYUn16jojRg3sAdMIYGd3mWKFTwmhG4MTi5smaw5pEV8zhGM2K50grpeGMABv/4=
> Is there any way of convincing Coq that pack2's codomain is pack@{i+1}?
No, algebraic universes (+1 and max) are allowed only on Type itself, not on definitions/inductives.
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.