What is the equivalence to lambda calculus when pairing is added?Without pairing, what is your reason for believing that the representation has a great deal of power? (Is it equivalent to something?)
a ○ b ○ c = a(b(c))
X = a ○ bthat X is actually a λ term: λx. a(b(x)).
On Mon, Apr 23, 2012 at 1:16 PM, Abram Demski <abram...@gmail.com> wrote:
Application and composition are different. Using '○' for composition and (f x) for application, and also using the mathematically common f(x) notation to illustrate:(f ○ g) = \x. f(g(x))(f g) = f(g)So,a ○ b ○ c = a(b(c))works fine where '○' is application;X = a ○ bthat X is actually a λ term: λx. a(b(x)).seems to be assuming that '○' is composition (as it more often denotes).
Well, normally application is (a b).. the operator is the space, if you must have an operator. :)
Would your unification algorithm handle cases like ((a b) (c d)), or just 'linear' cases like you showed: (a (b (c d)))?
You mentioned making additional definitions, like x = (a b). Does that mean equational reasoning is currently handled, or is it a to-do?
On Tue, Apr 24, 2012 at 12:44 AM, Abram Demski <abram...@gmail.com> wrote:
Well, normally application is (a b).. the operator is the space, if you must have an operator. :)
That's good too. In the Clojure code a formula is represented as a list such as: [ a b X c Y d ... ]so the operator is indeed the white space.Would your unification algorithm handle cases like ((a b) (c d)), or just 'linear' cases like you showed: (a (b (c d)))?The logic is associative: a(bc) = (ab)c.So ((ab)(cd)) = (a(b(cd))) = abcd.This is generally called "don't need parentheses".
What's more, we can express relations such as:x > ysimply as:(x > y)ie, with the application operator:x ♦ > ♦ y
That used to be expressed in FOL as:R(x,y).So this monadic logic can be very expressive, no? =)KY
Composition is associative. Application is not associative.
With this trick, now we can write:"John loves Mary obsessively"as:john loves mary <tv1>john loves obsessively <tv2>and thus we can even get rid of (_, _). In other words, the logic can be purely monadic.But does this work in the general case? How complicated does the logic within the truth values have to get?
x ♦ > ♦ yThis feeds (> y) to x, which means that x needs to be a function which can take such arguments and return the right thing...
What counts as "foundational"? To me it seems category theory is more metaphorical than anything else.
Actually, I think that is good. Mathematics is a subset of natural
language, so your logic should handle it as well.
But I wonder if it really does. I think you need a longer example. How
would you translate the text of this email into your logic?
-- Matt Mahoney, mattma...@gmail.com
What counts as "foundational"? To me it seems category theory is more metaphorical than anything else.
> I feel bad that my logic is now so narrowly focused on natural language.Actually, I think that is good. Mathematics is a subset of natural
language, so your logic should handle it as well.
But I wonder if it really does. I think you need a longer example. How
would you translate the text of this email into your logic?
I understand, so your logic is equivalent to building a parse tree. So
a sequence "X Y" means that Y modifies X. A sequence "X (Y, Z)" means
that Y and Z both modify X. For example:
I ate pizza with pepperoni.
ate
/ \
I pizza
/
with
/
pepperoni
ate (I, pizza with pepperoni)
I ate pizza with a fork
ate
/ | \
I pizza with
/
fork
/
a
ate (I, pizza, with fork a)
I ate pizza with Bob
ate
/ \
I pizza
/
with
|
Bob
ate (I with Bob, pizza)
Is this right?
-- Matt Mahoney, mattma...@gmail.com
I understand, so your logic is equivalent to building a parse tree.
Soa sequence "X Y" means that Y modifies X. A sequence "X (Y, Z)" means
that Y and Z both modify X.
I ate pizza with pepperoni.
ate
/ \
I pizza
/
with
/
pepperoni
I ate pizza with a fork
ate
/ | \
I pizza with
/
fork
/
a
ate (I, pizza, with fork a)
I ate pizza with Bob
ate
/ \
I pizza
/
with
|
Bob
ate (I with Bob, pizza)