Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Is there a nominal package for Coq?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Is there a nominal package for Coq?


Chronological Thread 
  • From: Tadeusz Litak <tadeusz.litak AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Is there a nominal package for Coq?
  • Date: Tue, 10 Dec 2019 20:48:41 +0100
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=tadeusz.litak AT gmail.com; spf=Pass smtp.mailfrom=tadeusz.litak AT gmail.com; spf=None smtp.helo=postmaster AT mail-wm1-f54.google.com
  • Ironport-phdr: 9a23:8BvLhBMFEWRo3Ds0Agsl6mtUPXoX/o7sNwtQ0KIMzox0I/X9rarrMEGX3/hxlliBBdydt6sfzbOH6Ou5AzNIyK3CmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+KPjrFY7OlcS30P2594HObwlSizexfL1/IA+roQjVuMQajpZuJrgzxxDUvnZGZuNayH9yK1mOhRj8/MCw/JBi8yRUpf0s8tNLXLv5caolU7FWFSwqPG8p6sLlsxnDVhaP6WAHUmoKiBpIAhPK4w/8U5zsryb1rOt92C2dPc3rUbA5XCmp4ql3RBP0jioMKjg0+3zVhMNtlqJWuAihqQFhzY7aYI+bN/Rwca3SctwYWWVPUd1cVzBCD46mc4cDE+QMMOReooLgp1UOtxy+BQy0Ce3x0DBHm2H53bAh0+UgDArI2g0gH84Uv3TXsd74M7sSXvqow6bW0DXDdPJX1S356IjJbhAuu/KMUKl/ccrU00YvFgfFgk+MpoziOjOYz+IAuHWV4epnUOKgkW8nqwdprzip3MgskIrJhoMLyl/a7yl23IE1JdigRE5/Zt6kH5pQuD2AOItwX8wtWWdotzw+yrwGop67fTMKxI4gxx7FZPyLa5KH4gjsVeaQPzd0nnVleKiwhxqq9Uigz/D8WtOp31lUtiZFndjMtmwN1xzO8ceLUOdy/kCk2TqXygDT8v9LIUYylabBNZEu36MwmoITsETEAy/2hFj2g7SIeUk+5ueo7OHnbq36qZCGMo94kBvxPbg0lsyiAuQ1NBUFUWuD+emkyrHv4Un0TK9Jg/A2iKXVrY7WKMcBqqO5DAJZypsv5hiiAzu8zdgVnnoKIEhKdR+ElYTlJlPDLf/+APyimVqjii1ryOrDPrD5ApXCMHzDkLD5cLZ48UFcyQ4zwclR5pJRF70NOfzzV0/+udDCAR85NAu0w+njCNpjzI8RRWWPAqqBPKPTt1+H+P4vLvGSaIMJvDvxMfso6v70gXMkh1MQfrOl0JsYZXygG/RpOUSZYX7igtcbFmcKuxIzTPDwh1KfTzFTem2yXqMm6jE/CYKmEZ3MRoO2jbyO2Se0BJxWZmRcBl+QFnfocp2IW+0QZyKKPs9hjjsEWKC9RI8mzBGirRP1y756LuXP4SAYrpLi1N1t5+LJjx0y9Dp0D96c026XVW10kHkIFHcK2/V0plU4wVOe24B5heZZHJpd/aBzXx8+JKLbmvBzB93vQRCHetaVQVWOTdCvADV3RdU0kPEUZEMoJ9yugw3YzWKOAqMclPTfGJU4/7/HzT71Jtp0yF7J0aAgix8tRc4ZZj7uvbJ26wWGX92BqE6ejav/Lf1Ajh6Iz3+KyC+1hG8dSBR5CPyXUnUWZ0+QptP8tBubEu2eTI8/Ow4E8vasb6tHbtqz0AdDTfbnfcvbOie/xjv2ChGPybeBKoHtfjdFhXSPOA0/iwkWuE2+G007DyalrXjZCWU3R13qakLot+J5rSHiQw==

Apologies for chiming in slightly late, but:

Another reference (but, again, not really a package) is Nominal Reasoning Techniques in Coq by Brian Aydemir, Aaron Bohannon, Stephanie Weirich (https://www.seas.upenn.edu/~sweirich/papers/nominal-coq/lfmtp06.pdf)
But this is more like an axiomatic approach to defining a nominal "interface" to your syntax and then justifying this interface by using locally nameless representation. So, again, no automatic generation of alpha conversion.

Regarding Stephanie Weirich, when two years ago an analogous subject came up on this list [1] there were pointers to her newer stuff:

https://github.com/DeepSpec/dsss17/tree/master/Stlc

https://www.youtube.com/watch?v=zBCP20jGE54

https://www.youtube.com/watch?v=Xo8MzrH4aj0

Other things mentioned in that thread might be also helpful.

[1] https://coq-club.inria.narkive.com/T7HMhwa8/nominal-reasoning-in-coq

********

I am not sure if anything as good as Nominal Isabell exists for Coq. One can go quite far in defining alpha-equivalence using the nominal techniques but the real problem is how to define a type of terms quotient with alpha-equivalence.

Pitts in his overview of nominal techniques (Section 10 of [2]) points out that this is not quite trivial  to do nominal type theories constructively. I recall similar remarks by Christian Urban in his talks when he spoke about the issue of creating \alpha-quotient types out of existing ones. Some examples of what can go wrong are discussed by Andrew Swan [3,4], in particular decidability of freshness relation or the existence of a least finite support.

[2] https://www.cl.cam.ac.uk/~amp12/papers/nomt/nomt.pdf

[3] http://logicandanalysis.org/index.php/jla/article/download/274/109

[4] https://arxiv.org/abs/1702.01556

****

There is also the connection with HoTT and cubical stuff. Pitts mentions this in [2] above, but rather than focusing on how to use the nominal approach to model the Axiom of Univalence, I'd like to understand how to create and work with nominal datatypes in HoTT (a possibility mentioned in passing somewhere already by Voevodsky, if I recall correctly). If I am not mistaken, some recent work of Buchholtz seems to go in this direction:

http://www.math.lmu.de/~petrakis/buchholtz.pdf

https://github.com/UlrikBuchholtz/nominal-hott

Not sure if there are some developments in CoqHoTT along those lines and whether this is the right direction to go. Perhaps somebody more knowledgeable can step in and clarify this and other issues: what has been done, what could and/or should be done and what cannot/shouldn't be done.

Best,

t.






Archive powered by MHonArc 2.6.18.

Top of Page