coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Marco Servetto <marco.servetto AT gmail.com>
- To: "coq-club AT inria.fr" <coq-club AT inria.fr>
- Cc: "morrisett AT gmail.com" <morrisett AT gmail.com>
- Subject: Re: [Coq-Club] injectivity of inductive type implies False
- Date: Mon, 20 Mar 2017 09:36:37 +0700
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=marco.servetto AT gmail.com; spf=Pass smtp.mailfrom=marco.servetto AT gmail.com; spf=None smtp.helo=postmaster AT mail-yw0-f176.google.com
- Ironport-phdr: 9a23:+twWWRYlUoeBr3L42FbMI/f/LSx+4OfEezUN459isYplN5qZoMm+bnLW6fgltlLVR4KTs6sC0LuL9f6+EjBYqb+681k6OKRWUBEEjchE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRoLerpBIHSk9631+ev8JHPfglEnjSwbLdyIRmsrAjct8YajIR+Jq0s1hbHv3xEdvhMy2h1P1yThRH85smx/J5n7Stdvu8q+tBDX6vnYak2VKRUAzs6PW874s3rrgTDQhCU5nQASGUWkwFHDBbD4RrnQ5r+qCr6tu562CmHIc37SK0/VDq+46t3ThLjlSEKPCM7/m7KkMx9lKBUoByhqRJxwIDafZ+bO+Zlc6PBYd8XX3ZNUtpNWyFDBI63cosBD/AGPeZdt4TzoEEBrQGiCgmrGejh1yFHhmXo3aIkz+QhDQbG1xEnEtILqnvUtsn6NKAIXeCu0qbI1yvDYO1K2Tfh74jFaR8hofSWUrJxdcrd01UgFwTAjliJr4HuIjCb1vwVvmSF8+ZtUfijhm0npg1rvzSix9oghpPUio8Xy13J8zhyzpwvKt2iUkF7ZMapEJtOuCGeMIt7WsYiTHtpuCY+07EHuZC6cDQTxJQp2hLSaf2Kf5KH4hLkU+aRLjN4i2x/dL2jgBay9FCsyuz6VsaqzFZHtjRJnsXIu3wX1BHe6tKLRuZ880u8wzqDygLe5+BcLUAxj6XbKpohwrAqlpoUtETOBir2l1/sjKCKcUUo4POo5Pr9YrX4uJCcK5N0igblP6Qhn8ywG+U4MgwUU2eH/uS80aXv/VflT7VSkv02jq7ZvYjGKsQcv661GhNa0oI+6xmkFDqmy9QZnXwfLF1fYh6Hjo7pO0vPIP/iF/u/jU6sw39XwKWMNbr4R57JM3LrkbH7fL875VQWgF44yska7JZJAJkAJujyUwn/roqLIAU+NlmRyvzsD51G25kAVH6TBefNNarIuljO/e81PeSQeIg9tzP0Kvxj7Pnr2yxq0WQBdLWkiMNEIEuzGe5rdh2U
I exchanged some more emails with morrisett, focusing on nomina types
vs structural types in the context of records.
By reading this new message, I think I can make my example also with
simple type constructors:
If library A defines
type aT =
| Name1 of int
| Name2 of int * int;;
and library B independently defines
type bT =
| Name1 of int
| Name2 of int * int;;
where by pure coincidence name Name1 and Name2 are the same
If we have a type system able to recognize that aT==bT, then the user
of A and B can use those
interchangeably.
Then, if Library B want to alpha-rename its Name1 into Name1Bis, there
is no way to transmogrify this
rename on the code that uses A and B.
I think this is quite of a big problem, and it means that
"conceptually" the meaning of Name1 is set in stone as a global
concept that all humanity should agree upon when any library using
Name1 is first released.
What are your views on this issue?
(yes, module abstraction would hide those names, but then we loose the
possibility of doing case analysis, that can be recover if the module
offers specific functions, but it seams very indirect)
type binary_tree = Leaf of int | Tree of binary_tree * binary_tree
On 17 March 2017 at 18:31, Thorsten Altenkirch
<Thorsten.Altenkirch AT nottingham.ac.uk>
wrote:
> nominal types require the meta-theory to support some notion of freshness or
> gensyming which makes the
- Re: [Coq-Club] injectivity of inductive type implies False, Cristóbal Camarero Coterillo, 02/28/2017
- Re: [Coq-Club] injectivity of inductive type implies False, Abhishek Anand, 03/01/2017
- <Possible follow-up(s)>
- Re: [Coq-Club] injectivity of inductive type implies False, Cristóbal Camarero Coterillo, 03/02/2017
- Re: [Coq-Club] injectivity of inductive type implies False, Thorsten Altenkirch, 03/03/2017
- Re: [Coq-Club] injectivity of inductive type implies False, Marco Servetto, 03/03/2017
- Re: [Coq-Club] injectivity of inductive type implies False, Greg Morrisett, 03/03/2017
- Re: [Coq-Club] injectivity of inductive type implies False, Thorsten Altenkirch, 03/17/2017
- Re: [Coq-Club] injectivity of inductive type implies False, Marco Servetto, 03/20/2017
- Re: [Coq-Club] injectivity of inductive type implies False, Thorsten Altenkirch, 03/17/2017
- Re: [Coq-Club] injectivity of inductive type implies False, Greg Morrisett, 03/03/2017
- Re: [Coq-Club] injectivity of inductive type implies False, Marco Servetto, 03/03/2017
- Re: [Coq-Club] injectivity of inductive type implies False, Thorsten Altenkirch, 03/03/2017
Archive powered by MHonArc 2.6.18.