coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Jason Hu <fdhzs2010 AT hotmail.com>
- To: "coq-club AT inria.fr" <coq-club AT inria.fr>
- Subject: Re: [Coq-Club] Why subtyping rule is not contravariant in input types for Pi
- Date: Fri, 21 Jun 2024 21:31:05 +0000
- Accept-language: en-US, en-CA
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7DdX+jWHY+aEmVyIhffaUXXXmrTF4ZO/KYZ5XHXyeQ0=; b=OI109hh3lHoOSE/MF0h74Y3ANGL/eyciMByMAlS+YoRDY/w9WdT8xVr+5C9bEHKwqz3tLQ9d+qL7uBmetN38Lt81Vg9ThdKKx5mYIyC4zjYzoFDTxT5X2P/9Ota3QqHi8JZ4cKYbbN/12e9l4I0Gel7FRNrKmjWMbwAJ6AEbuGB4QQ4q6PJMxVt97DP/eGlOjxBmqjindXzIYFb0NOzGnBhbGH3+Puh+u7mWtLKSqL+1paGFt3yx2lkuW7cGc7AuLvMpbVTEng0SHeZt0bsHQsRFNuu2sg55Rq8Jn4IlEYB7INYtNhyFeWwAE1q2/OCUiaK7Eeh4Tm6s+xsoZ+y74w==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CELugJB2pp/ZvyQ6F0yMC0yaxXQ08owIRr/4yhjejd/ukeLWa/BnUMXVCJPExw0kuGALJM4d5sJc6zNWoErDEvgoTR3KxhuWjDXga27M0yByiYEHMENrtJ+sJfyhhi/KU3KvPW6BuTYkez4BBw//WDAfo2a6M89pSan3ymgX9JOCCmYpj7hPHZqre5M2oFSvPk/eaTYDv+jIKwLzXUc9/MjdzWnDTRFTf3RpKGh7iwRto0QvuThqiHwVneMefRE6KRJYPM21HFXYWwCTJLIuZQnjd3PUfN+4unq5RWnMnyp3GHbPTJnihluUBXrD1zlTOB1G0wEnXI4XpjmpZTa3FQ==
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=fdhzs2010 AT hotmail.com; spf=Pass smtp.mailfrom=fdhzs2010 AT hotmail.com; spf=Pass smtp.helo=postmaster AT NAM10-BN7-obe.outbound.protection.outlook.com
- Ironport-data: A9a23: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
- Ironport-hdrordr: A9a23:JDiIrK/e8LyUPHWbxD5uk+ETdb1zdoMgy1knxilNoENuH/Bwxv rFoB1E73TJYW4qKQkdcKO7SdK9qBLnhOhICOwqUYtKMzOW3FdAQLsC0WKm+UyYJ8SczJ8V6U 4DSdkYNDSYNzET4qjHCUuDYrAdKbK8gcOVbJLlvhJQpHZRGsNdBmlCajqzIwlTfk1rFJA5HJ 2T6o5svDy7Y0kaacy9Gz0sQ/XDj8ejruOsXTc2QzocrCWehzKh77D3VzKC2A0Fbj9JybA+tU DYjg3C4Lm5uf3T8G6X64aT1eUbpDOtouEzSfBkuPJlZAkEuTzYJbiJbofy8wzc+ImUmRYXeZ f30lQd1o9ImgnslymO0GbQMk/boX4TA3OO8y7lvZLPm72KeNsBMbs1uatJNh/Cr0YwttB116 xGm2qfqppMFBvF2CDw/cLBWR1mnle95SNKq59ls1VPFY8FLLNBp40W+01YVJ8GASLh8YgiVO 1jFtvV6vpaeU6TK3rZom5sytqxWWlbJGbzfqAo0vblrAS+sEoJvHfwnvZv70vo3KhNO6Wtx4 z/Q9pVqI0=
- Ironport-phdr: A9a23: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
- Ironport-sdr: 6675f11d_GmWxVWJDRIo4ndibpgkKctXdDwrpGiP0LutDsdT5TK5tbrn eoBfS1jgmYMcq24JVX2vyRX/U7U+yC08E2EGjqQ==
- Msip_labels:
Thank you Xavier for your example and Meven for your careful explanations.
I am working on a mechanization of MLTT and I notice that cumulativity and subtyping essentially should go hand in hand. The problem with no contravariant subtyping which I noticed is that it makes the type theory "un-natural". That is, say we know t : T and
T <: U. Now let's substitute t for x : U. Currently the ONLY way in Coq is to do subtyping first to obtain t : U, and then apply the substitution t/x. However, another way to do it is to apply the subtyping to the target context first. Namely, we strengthen
the context of x so that now our goal becomes to substitute x : T. Then we can safely apply t/x. The naturality here is that the order of subtyping and substitution should not matter, but in Coq, it does.
I guess in my mechanization, one new goal now is to verify that subtyping and substitution can indeed naturally coexist, but at this moment, I do think that there is a problem in Coq. My feeling is that the subtyping decision should be safe; it's probably even
structural in beta-eta normal forms.
From: coq-club-request AT inria.fr <coq-club-request AT inria.fr> on behalf of Meven Lennon-Bertrand <mgapb2 AT cam.ac.uk>
Sent: Friday, June 21, 2024 12:26 PM
To: coq-club AT inria.fr <coq-club AT inria.fr>
Subject: Re: [Coq-Club] Why subtyping rule is not contravariant in input types for Pi
Sent: Friday, June 21, 2024 12:26 PM
To: coq-club AT inria.fr <coq-club AT inria.fr>
Subject: Re: [Coq-Club] Why subtyping rule is not contravariant in input types for Pi
Hi Jason,
As far as I understand, the main reason comes from the set-theoretic semantics. In that setting, subtyping is interpreted as set inclusion. This makes it relatively easy to interpret implicit subtyping like Coq's, because the same term can be used as the subtype and supertype. But this also heavily restricts what is a valid subtyping rule.
In particular, for function types (which are sets of pairs in set theory), (covariant) inclusion of the codomains leads to inclusion of the sets of functions, but (contravariant) inclusion of domains does not. This is because one has to remove some pairs (corresponding to the elements of the larger domain that do not exist in the smaller domain).
Thus, if one wants to model contravariant subtyping in set-theory, we would need something smarter than this model, which has not really been investigated (yet?). But I do not see any reason why such a subtyping would not be sensible. In particular, Coq does a "poor man's" version of it, by η-expanding function during elaboration to basically emulate the contravariant rule (because if A <: A' and f : A' -> B, even though f : A -> B does not hold, λ x : A. f x : A -> B does). I believe this could be promoted to a sensible version of contravariant subtyping.
We have a paper going in that direction at this year's ESOP by the way, although it's not quite ripe to apply to Coq's type system yet I hope we can build on it to get there at some point, and properly justify contravariance for function types :)
Best,
As far as I understand, the main reason comes from the set-theoretic semantics. In that setting, subtyping is interpreted as set inclusion. This makes it relatively easy to interpret implicit subtyping like Coq's, because the same term can be used as the subtype and supertype. But this also heavily restricts what is a valid subtyping rule.
In particular, for function types (which are sets of pairs in set theory), (covariant) inclusion of the codomains leads to inclusion of the sets of functions, but (contravariant) inclusion of domains does not. This is because one has to remove some pairs (corresponding to the elements of the larger domain that do not exist in the smaller domain).
Thus, if one wants to model contravariant subtyping in set-theory, we would need something smarter than this model, which has not really been investigated (yet?). But I do not see any reason why such a subtyping would not be sensible. In particular, Coq does a "poor man's" version of it, by η-expanding function during elaboration to basically emulate the contravariant rule (because if A <: A' and f : A' -> B, even though f : A -> B does not hold, λ x : A. f x : A -> B does). I believe this could be promoted to a sensible version of contravariant subtyping.
We have a paper going in that direction at this year's ESOP by the way, although it's not quite ripe to apply to Coq's type system yet I hope we can build on it to get there at some point, and properly justify contravariance for function types :)
Best,
Meven LENNON-BERTRAND Postdoc – Computer Lab, University of Cambridge www.meven.ac
On 20/06/2024 16:11, Jason Hu wrote:
Hi all,
I am reading the subtyping rules for Coq: https://coq.inria.fr/doc/V8.18.0/refman/language/cic.html#subtyping-rules
Rule 5 says that Coq only checks equivalence for the input types while only the output types are subject to subtyping. How is the subtyping rule is not contravariant in the input types?
I understand that in System F, this rule is problematic and causes undecidability but I don't think it applies here. In particular, if for the sake of discussion we let U <: T and compare x : U |- T' <: U', this extra information of x : U should affect the result of comparing T' <: U' at all. How is the rule designed in this way? What consideration am I missing here?
- [Coq-Club] Why subtyping rule is not contravariant in input types for Pi, Jason Hu, 06/20/2024
- Re: [Coq-Club] Why subtyping rule is not contravariant in input types for Pi, Xavier Leroy, 06/20/2024
- Re: [Coq-Club] Why subtyping rule is not contravariant in input types for Pi, Meven Lennon-Bertrand, 06/21/2024
- Re: [Coq-Club] Why subtyping rule is not contravariant in input types for Pi, Jason Hu, 06/21/2024
- Re: [Coq-Club] Why subtyping rule is not contravariant in input types for Pi, nicolas tabareau, 06/24/2024
- Re: [Coq-Club] Why subtyping rule is not contravariant in input types for Pi, Jason Hu, 06/21/2024
Archive powered by MHonArc 2.6.19+.