coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Jason -Zhong Sheng- Hu <fdhzs2010 AT hotmail.com>
- To: Coq Club <coq-club AT inria.fr>
- Subject: [Coq-Club] STLC versus CCC
- Date: Fri, 4 Oct 2019 16:00:01 +0000
- Accept-language: en-CA, en-US
- 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-SenderADCheck; bh=w9qbBje4T2rFD45pAC/wqxSQfUIphWWltYM1evRo9TI=; b=L0t8/6XlNNbY4ETsxzC+S17P2ISrr7vvqmV37gQtAJ2i5SuyeKozleBv8Zk3y93De/96NfCaG4oB3/fxQaqto8NdUg3H1DNtArHWXN60p6Crf1u4MxEHLpNeXTM61lvtElIM+9LxTJHFJURn7NSPMSJVD4VQ+k3xFrVDWwdIgouR6SEAFRScmkfwcZ7TQ7UlyS56Ua09z7gKDfFOyEeXCtVQ3d3bUOo6QoTQq2JYffz7JYAtfgHLpnAWtXIGxujegtAm21hvuUbPLF2PFIFRXYWxJRdlnZumotyPqWmu2iJN81K4nd52XH95G3W/Zuc3gXZzLBvLSfRx1N02BrxhPA==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VpTUr8pOnf+Sdu96HhTFi9fu4FUiFDUytg6Smi9aJEP20d3wj4YRi+D2J2aXhviIj1uWlmTGSf93vKmXkTqIOyXBvzTB4xeFTJjHrSnfdhJMYqcka94I0eYRE7SGdFN+4mXjDx0Zi4HZxJztKNyhCuMkbgPytM74zQ/H+nkLvRUuon7h1WyY6CtL/tDn5+jsAPPeTWt1LTmTGmSQqthusJ1riZbACU3sHMVl9OT0/SKMpS+VIXVFdU1zMU7+fwb6pTA0afeDEucdyQLKrG3pe6kRYb/6yf1sSyb1ysHdGmmNR7UbRqAT7gMIyO3CPBGgEfHDMVG1XFWVtDL8ILVsPw==
- 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 NAM03-DM3-obe.outbound.protection.outlook.com
- Ironport-phdr: 9a23:nBh3MBdXcYQkINNTuky/f8zFlGMj4u6mDksu8pMizoh2WeGdxcW+Yh7h7PlgxGXEQZ/co6odzbaP6Oa9ACdQsd6oizMrSNR0TRgLiMEbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVrO+/7BpDdj9it1+C15pbffxhEiCCybL9vIhi6twXcutQZjYZhKas61wfErGZPd+lK321jOEidnwz75se+/Z5j9zpftvc8/MNeUqv0Yro1Q6VAADspL2466svrtQLeTQSU/XsTTn8WkhtTDAfb6hzxQ4r8vTH7tup53ymaINH2QLUpUjms86tnVBnlgzocOjUn7G/YlNB/jKNDoBKguRN/xZLUYJqIP/Z6Z6/RYM8WSXZEUstXUCNPH568b5AXD+UfIelYs4fzp1wLrRSkBAmsAv7kxjtHi3Ly2KE31fkqHwPb0ww6B98AsGraosjpNKkcUu660KbHwC7ZYP9KxTvw8pTEfgw8rfyKQLl+cdDRyU4qFw7dilufs5flPzST1u8QqmSU7OpgVeWpi24otgp/vzivydkqionGn44e11LK9Thky4syK923VU57YN+/EJdOqy2WKpd6T9giQ2FvpCY6z6cJuZ+/fCQQ1JsnwBvfZuWBfoOV7BzjU+ORLi15hHJjYL+/iBey8VSgyu3hTca4yldKri1Dn9LRtX4NzwTe58ebRvdn+kqtxyyD2gPJ5uxAIk04jaTbJIAiz7Isk5cetEfOEyzql0roiaKZbUYp9+q25Onif7rrpp2ROo9xhwzxL6ghhsyyDOIlOQYURWeb4/6z1Lj78E35XrpKivo2n7HBvp3GIsoXuqC0DxZb3Igk5RuzFjCm388GknUdK1JFZQ6HgJPuO1HTJvD3EO2zg0y2kDds2/DJIKHuAonMLnjElrftZ7F961NAyAo3ytBf4JFUBqsdL/L0X0/9rN3YDhknPAyo2+vqB8lx2pkaVG6RGKOUM7nevFuL6+43JumDfo4VuDLzK/g/4P7uiGc0mVEAcqmp3JoXc260Euh7L0mFenfsgtABEXsPvgUkTezqjEeOXiJUZ3a3R648/C00CJq6DYffQYCgmKCO3CCiHpFPem9GDk2MHmzzeoWfW/YMbTqSLdV7njwFU7ihUY4h2gu0uA/00bo0ZtbTrwYfrNrI0MV/r7nYkgh3/jhpBeyc1XuMRid6hDVbaSUx2fVdqFd6zB/G46h/hfMQLtxe4fwMGicnfcrSw+xoEIqqA1rpftCVTV+nRpOtBjRnHYF5+MMHf0soQ4bqtRvExSf/RuJMzuHZNNkP6qvZmkPJCYN9xnLBiPZzqXADGpAKGUj9w6l1+k7UGpLDlFifm+Cyb6MA0SXR9WCFi22ToEVfVw02WqLADylGOhnm6O/h70aHdIeATKw9O1Iam86FNq5Da9mvhlJDFq+6aYbuJlmpkmL1Pi6mg7aFbY7kYWIYhX6PCE8YlgkS+TCNMg1sXyo=
Hi all,
I am stuck in thinking about the correspondence between simply typed lambda calculus (STLC) and cartesian closed category (CCC) but I am confused at some point. Since it is well-known, I appreciate any reference that makes every detail explicit.
By STLC, let's agree that it is defined by a unit type *, products _x_, and simple function spaces _->_. Its terms are defined in the typical way. Consider terms in STLC equivalent up to beta-eta reduction. Thus STLC forms a category with types as objects and
functions between types as morphisms, and axioms are checked.
Now it remains to show that such STLC with beta-eta equivalence is a CCC. Consider a proof showing the unit type * is a/the terminal object of the category. It is required to show that there is a unique morphism/function from any type to * up to beta-eta equivalence.
Consider the following two functions from * to *:
\x : *. x
and
\x : *. {}
It is clear that both definitions have type * -> *, but how on earth these two types are beta-eta equivalent? From all of the literature I checked, there is no reduction rule associated with terms of type *, while to actually make this two functions equivalent
by beta-eta reduction, it seems to suggest the following rule:
G |- t : * => t ~~> {}
That is to add a beta rule which imposes the reduction of any term of type * to the unit element {} in
one step. However, this doesn't make sense to me.
An alternative way to think about it is to assume functional extensionality and say that these two functions are extensionally equal. This feels much better, but that simply means the equivalence of morphisms/functions in STLC is no longer beta-eta equivalence
but beta-eta equivalence + functional extensionality. It is more confusing if we think about type checkers, as it is clear that in that context we only consider reductions. Does that mean we tend to be more permissive when we try to think in a more mathematical
setting?
How does this work? Is there any reference about the full details of this correspondence or I am just thinking about something weird?
- [Coq-Club] STLC versus CCC, Jason -Zhong Sheng- Hu, 10/04/2019
- Re: [Coq-Club] STLC versus CCC, Guillaume Brunerie, 10/04/2019
- Re: [Coq-Club] STLC versus CCC, Neil Ghani, 10/04/2019
- <Possible follow-up(s)>
- Re: [Coq-Club] STLC versus CCC, Thorsten Altenkirch, 10/05/2019
- Re: [Coq-Club] STLC versus CCC, Thorsten Altenkirch, 10/05/2019
- Re: [Coq-Club] STLC versus CCC, Guillaume Brunerie, 10/04/2019
Archive powered by MHonArc 2.6.18.