Elektrine lite

← Feed

@rntz@recurse.social

Post #2994406

2026-05-29 12:16 UTC

I've heard of "parallel or", (x por y), which terminates with true iff either x or y does, unlike "x or y" which diverges if x does. What about "parallel and": false and x = false x and false = false true and x = x x and true = x Is there a canonical or useful reference for either of these?

Replies (4)

  • @rntz@recurse.social 2026-05-29 12:24

    looks like the origin of parallel-or might be Plotkin 1977, "LCF Considered as a Programming Language" (https://homepages.inf.ed.ac.uk/gdp/publications/LCF.pdf). I should probably just read it (31 pages single column) but it looks a mite intimidating.

    Open ##4119645

  • @rntz@recurse.social Don't we have pand x y = (not (por (not x) (not y))? In general, parallel or is all you need for the "standard" denotational semantics of PCF in domains to be fully abstract, so in a sense it gives you "all the parallelism you need", and other similar constructs like your pand should be definable from it.

    Open ##4119651

  • @roboguy@mathstodon.xyz 2026-05-29 14:00

    @rntz@recurse.social They're equivalent to each other in terms of power since they are interderivable, given the `not` that you'd typically have access to in this sort of setting: https://gist.github.com/roboguy13/6b4d25a41e013edcf7c0c03ed244b62a

    Open ##4398825

  • @boarders@mathstodon.xyz 2026-05-29 15:15

    @rntz@recurse.social I don’t really know if it is the kind of thing you have in mind but there is a nice discussion of por in Mitchell’s foundations of programming languages

    Open ##4398828