Skip to main content
13 events
when toggle format what by license comment
Nov 22, 2021 at 9:58 history edited Damiano Mazza CC BY-SA 4.0
added 36 characters in body
Nov 22, 2021 at 9:44 history edited Damiano Mazza CC BY-SA 4.0
Added a reference to Tito Nguyen's Ph.D. thesis.
Dec 9, 2020 at 9:28 comment added Damiano Mazza Also, you say that the reference I give discusses "what does $o\to o\to o$ in the STLC encode". This is a misunderstanding: that type is basically irrelevant in Hillebrand and Kanellakis's work, any type with a partition of its normal forms into two non-empty sets "True" and "False" would do. The real question is: what languages may be decided by terms taking a Church string and outputting True/False according to some fixed convention? The string encoding being the same (called "Church") makes it interesting to compare the answer in the pure $\lambda$-calculus, System F, STLC, etc.
Dec 9, 2020 at 7:22 comment added Damiano Mazza About $o\to o\to o$, I don't know who calls that "Church encoding", I most certainly didn't. Now I see that the sentence I wrote may be parsed ambiguously: it should be "These are the standard types of (Church binary strings) and (booleans)", i.e., "Church" only goes with "binary strings". Still, I wouldn't see any problem in calling $\lambda x.\lambda y.x$ and $\lambda x.\lambda y.y$ the "Church Booleans". Regardless of whether it is historically accurate, I stand by my point above: there is no standard minimum expressiveness for this name to be legitimate!
Dec 9, 2020 at 7:15 comment added Damiano Mazza I've been reading $\lambda$-calculus-related research papers for almost 20 years now. The map $n\mapsto\lambda f.\lambda x.f(\ldots fx\ldots)$ with $n$ occurrences of $f$ is universally known as "the Church encoding" of natural numbers (because it was first used by Church, it would seem). Related encodings (like binary strings) are often called "Church" too. In any case, I have never seen anybody setting an "expressiveness bar" under which it would be illegitimate to call such encodings "Church".
Dec 8, 2020 at 20:39 comment added Blaisorblade IMHO that's also why these results is not well-known — they sunk a research area out of interest for most people, except maybe for research like dl.acm.org/doi/10.1145/346048.346051 (which, no offense, seems for now a niche even within SIGPLAN or at POPL).
Dec 8, 2020 at 20:36 comment added Blaisorblade "What does o -> o -> o in pure STLC encode?" is a perfectly sensible question, which your reference discusses. They call that "Church encoding", and I didn't know anybody did that. But today, perhaps thanks to that work, we avoid considering that setting or calling that a Church encoding, at least not without strong warnings. I just checked TAPL, and it describes Church encodings for untyped LC and for System F (chapter 23).
Dec 7, 2020 at 21:22 comment added Damiano Mazza @Blaisorblade I'm not sure I understand your comments. Why would the Church-encoding "not really work in STLC"? I have the impression that you think the Church encoding or the type $o\to o\to o$ don't work because they don't give you the expressiveness you'd like. But this is not about what you like: the question "what is the class $\mathsf{ST}\lambda$" is natural, well posed and has a very nice answer, whether you like it or not. In fact, what's interesting is precisely that these types do not give you everything one would normally expect from a general-purpose programming language.
Dec 6, 2020 at 14:35 comment added Blaisorblade As a consequence, standard presentations of STLC add datatypes such as naturals as primitives with their operations. Even booleans better be primitive if you want if at all types in general — as soon as you have more than 1 base type, o -> o -> o breaks down.
Dec 6, 2020 at 14:29 comment added Blaisorblade > These are the standard types of Church binary strings and booleans I think that deserves a big caveat: Church-encoding is well-known to not really work in STLC because you must fix the result type, and it only works properly in either untyped lambda calculus, or in System F (where it’s best called Böhm-Berarducci encoding). Indeed, Church encoding supports naturals, which of course can’t be modeled (correctly) in the category of finite sets.
Apr 3, 2018 at 11:27 history edited Damiano Mazza CC BY-SA 3.0
edited body
S Apr 3, 2018 at 10:56 history answered Damiano Mazza CC BY-SA 3.0
S Apr 3, 2018 at 10:56 history made wiki Post Made Community Wiki by Damiano Mazza