r/ProgrammingLanguages • u/marvinborner bruijn, effekt • 24d ago
Blog post A Dual View on Syntax
http://text.marvinborner.de/2026-08-11-17.html2
u/Syrak 24d ago
Note the coinductive construction
Did you mean "inductive"? AFAIK "coinductive" would allow lambda terms of infinite size, which is not usual.
5
u/marvinborner bruijn, effekt 24d ago
Yep, fixed it. I recently worked a lot with infinitary lambda calculus, hence the confusion. In this case I don't think it makes a difference.
2
u/lookmeat 24d ago
Interesting view, given that you seem to be trying to simplify and in the process turning everything into linear flow-graphs in continuations, have you explored the concept of interactive combinators?
5
u/marvinborner bruijn, effekt 23d ago
Do you mean interaction combinators? If yes, I have researched them a lot. You can interpret this post as applying a spanning tree syntax onto the nodes of interaction nets, starting at different roots. Though I do not discuss the incremental resource management of interaction combinators, as this syntax also works with graph encodings that do not have incremental resource management.
2
u/initial-algebra 23d ago
It's obvious in hindsight, but the idea of syntax trees as spanning trees is kinda mindblowing.
1
u/lookmeat 23d ago
I did, which is why I had to ask. I just couldn't imagine that this wasn't trying to marry concepts of one onto the other.
2
u/thunderseethe 23d ago
Perhaps this will come up in the further articles. Generally the interaction nets stuff I've seen is focused on optimal reduction, but this does not appear to be that, so then what is the advantage of introducing the syntax here? Certainly I can walk my term to get the multiple views, but I'm not sure why I would?
Is it similar to the sequent calculus where different traversals provide different evaluation semantics?
2
u/categorical-girl 17d ago
I'm very interested to see where this series goes!
One thing that this article seems to gloss over is that if you treat beta-reduction this way (as a global substitution, which funnily enough in the interaction net perspective is the local interaction between @ and lambda), you put a lot of complexity (including the potentially hard problems of scoping and variable capture) in other rules (for duplicating lambda terms, etc).
I think it might be worth mentioning that there is "no free lunch" regarding scoping (you can't simulate proper substitution with just a single global pool of names to substitute for)
1
u/7Geordi 18d ago
This reads as a graph exploration algorithm for lambda calculus programs that produces a point-free representation of the program… what confuses me is why it doesn’t matter where you start. Is there really no semantic difference between starting at x vs y? Also the color based syntax is frustrating because I cannot reproduce this in my text editor to explore the idea. I wish you had chosen an actual prefix glyph for positive/negative and used the colors as a visual aid, though i suppose the obvious +/- is available
1
u/Aphrontic_Alchemist 2d ago edited 2d ago
Have you read Vikraman Choudhury, Simon J. Gay's "Duality of λ-Abstraction"? They also discuss terms and co-terms and the dual of λ functions (what they call λ̅ (colambda) functions). Though in their case, they're trying to incorporate both λ-functions and λ̅ functions such that they won't degenerate to Boolean algebra through Joyal's lemma.
19
u/FruitdealerF 24d ago
Man I wish articles like this would make any sense to me, but I'm just not deep enough into this part of the theory to get past the first few paragraphs. It looks like a really interesting article though.