Settings

Theme

Combinatory Logic (2020)

plato.stanford.edu

119 points by nz 3 years ago · 23 comments

Reader

jph00 3 years ago

Combinators are elegantly expressed in array languages, especially J. Here's a great recent paper with details : https://raw.githubusercontent.com/codereport/Content/main/Pu...

  • rak1507 3 years ago

    Unfortunately (as an array language fan) this isn't really true. Certain function composition operators that exist in array languages appear to have similarity with combinators, however array languages are unable to express true lambda calculus style combinatory logic (without just implementing the reduction rules yourself, which defeats the point).

    • throwaway17_17 3 years ago

      Can you expand on this some? I am not super familiar with the array-based group of languages, but so was under the impression that implementing S,K, and I combinators was possible. Is it just the restriction of array arguments or is it something else that inhibits the languages?

      • rak1507 3 years ago

        Yeah, you can implement them like you could in anything - it varies per language but the lack of true higher order functions (anything except K) and lazy evaluation (all) means that there's not really an 'elegant' way for anything more than 1 term deep.

        That's not to say that the 'combinators' in array languages are bad, they're very useful and a nice form of function composition that I wish most other languages had, but they're not really a true combinator in the lambda calculus sense. You can't pass the array language 'combinators' to other combinators.

        • martinsmit 3 years ago

          BQN[1] has higher order functions. Of the array languages I've used, it's by far my favourite. That said, I mostly solve small problems for fun in them.

          [1] https://mlochbaum.github.io/BQN/index.html

          • rak1507 3 years ago

            Yeah BQN sort of has higher order functions but it still distinguishes between functions and data, so I don't think it would be that possible/easy to use combinatory logic style combinators. I haven't used BQN much though, so I could be wrong.

redrobein 3 years ago

For anyone looking for a more gentle introduction to logic and combinators, checkout Raymond Smullyan's "To Mock A Mockingbird".

DiscourseFan 3 years ago

Yeah whenever I read about stuff like this I always feel the attempt to create formally complete logical systems is inherently flawed.

  • brutusborn 3 years ago

    I have heard of some problems that are unprovable in some systems but provable in stronger systems (like this: https://en.m.wikipedia.org/wiki/Paris–Harrington_theorem).

    I wonder if it is possible for an AI to eventually try to prove currently unprovable theorems by producing it’s own formal system? I don’t know enough about Godels Theorems or ML to know if this is even possible.

    • zmgsabst 3 years ago

      You end up with a tower of “universes” that each have some statements they can’t prove which are provable in a higher universe.

      You might wonder about the limit… but axioms are only interesting when finite: if you have infinite axioms, just assume the true statements.

      You might wonder which those are… but then you’re confronted with the fact it’s all made up and you can have consistent systems from contrary axioms, eg either allowing or disallowing choice.

      Mathematics is useful because it gives us a language to tell stories where we can accurately guess questions like “what came before?” or “what happens next?” and where we can describe similarities between stories.

      A modern ontology.

    • sn41 3 years ago

      Godel's theorem applies to all systems strong enough to do arithmetic. When we talk about "powerful" systems, it will inevitably have to do arithmetic.

      One of the unprovable statements of any such formal system will be that "this system is consistent", which is an important property. [Godel's second incompleteness theorem]

      I feel that AI in general is headed towards the direction of saying that provability is not really important, let's just head in a pragmatic direction.

      • keithalewis 3 years ago

        Prior to Euclid people seemed to be concerned with valid arguments. Mathematical proofs are limited to true or false statements. Math is great when modeling physics, but quite lacking when applied to other human endeavours.

        • zmgsabst 3 years ago

          Facebook disagrees:

          Math lets them manipulate your emotions on behalf of advertisers and spy agencies, alike.

          As does Midjourney:

          Math lets them turn a loose description into a high quality picture of that scene.

          • DiscourseFan 3 years ago

            I don't think its useful to refer to every symbolic structure that people employ to build machines as "math." There is more to Facebook and Midjourney than the equations used to represent their operation.

            • zmgsabst 3 years ago

              Computers compute — they’re a replacement for people doing arithmetic on paper forms.

              Fundamentally, there’s a mathematical representation of their computational system.

              Also, you admit that equations are driving the core of both systems I described:

              - algorithmic manipulation

              - SD images

              • DiscourseFan 3 years ago

                >equations are driving the core of both systems I described

                Everything in society uses symbolic representation, but is not driven by symbolic representation, but the people who create those representations.

      • casey2 3 years ago

        >unprovable statements

        Nonsensical is better in modern discussions than "unprovable". It shows that statements that were previously (and currently by some) thought to be mathematical are actually nonsense just like "x tastes like chicken" but more devious. Asking if a Turing machine with M memory halts in less than N steps is sane and provable.

        http://sites.math.rutgers.edu/~zeilberg/mamarim/mamarimPDF/e...

        • bmacho 3 years ago

          > Did Gödel Really Prove That There Exist True yet Unprovable Statements?

          > Of course not! All his “statements” were meaningless!

          > Every statement that starts : “for every integer n . . .” or “there exists an integer n . . .”, is completely meaningless, since it tacitly assumes that there are infinitely many integers. Of course, there are only finitely many of them, since our worlds, both the physical and the mathematical, are finite.

          ..

          > The statement “n + n = 2n for every integer n” is meaningless. It is only true for every _finite_ integer. It is also true for symbolic n.

          Eehrm? This is not the modern view on math.

          In modern math Gödel's theorems are currently regarded as its wiki article talks about it : https://en.wikipedia.org/wiki/Gödel's_incompleteness_theorem... .

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection