Showing posts with label self reference. Show all posts
Showing posts with label self reference. Show all posts

Sunday, November 18, 2018

The cheesecake paradox

This afternoon Clare told me: "Tonight, you'll either have a cheesecake for dessert, or you won't. It'll be a surprise."

OK, she was toying with me. She knows I am torn between desire and calories. I mentally charted my options like this.

Figure 1

But then she had second thoughts. "No," she said. "I do want you to have the cheesecake, but I also want it to be a real surprise. You'll definitely get the cheesecake tonight or tomorrow night. One of the two. But I won't tell you which."

OK, I was disappointed, I have to admit. I hate even the possibility of  delayed gratification. A new diagram took shape in my mind.


Figure 2

I'd either get the cheesecake tonight or it would be the empty plate, in which case at least I'd be getting cheesecake tomorrow.

But wait. It's meant to be a surprise. The surprise is all in the branching possibilities. If I didn't get cheesecake tonight, then I'd be in the situation below (yellow oval).

Figure 3

No surprise there! There's no branching in the yellow oval. So there's no surprise tomorrow. And that must mean I'm getting the cheesecake tonight! Excellent!


Figure 4

Oh, wait again. No branching here. So my very certainty has removed the element of surprise. So it looks like Clare's proposal to give me a surprise cheesecake has collapsed. There's no way she can do it.

No cheesecake at all. Cruel.

Figure 5

But now I'm sure I'll get nothing, I can't rule out the possibility that nevertheless she may give me a cheesecake tonight after all.

Figure 6 = figure 2

And I will be very surprised!

---

I wrote about this paradox back in 2009. I noted that despite its simplicity, according to Wikipedia, no-one has a good solution. It looks to me that the self-reference feedback is creating alternate, flip-flopping states of certainty and uncertainty.

Another example of how concepts from AI such as game trees, the perspective of an agent with cognitive states, and Kripke models of doxastic logic can illuminate problems which seem intractable from a purely logicist or philosophical standpoint.

Friday, May 11, 2018

Reflecting on the "Cogito"

377 years and we're still baffled, René

Descartes was prepared to doubt the evidence of his senses (illusions, errors, dreams), but "we cannot in the same way suppose that we are not while we doubt of the truth of these things; for there is a repugnance in conceiving that what thinks does not exist at the very time when it thinks. Accordingly, the knowledge, I think, therefore I am, is the first and most certain that occurs to one who philosophizes orderly." (Wikipedia).

An argument which seems compelling .. yet curiously hard to formalise.

Never, ever trust the logicians to lead you closer to truth. We have:
|- thinks(descartes)                                    [assumption]
|- ∃x.thinks(x)                                             [existential introduction]
|- thinks(descartes) → ∃x.thinks(x)            [standard logic]
and with a bit more effort one can conclude that x here must, or could be descartes.

All the heavy lifting here is being done by the existential quantifier ∃, simply reflecting the mundane point in logic that an individual exists as part of its assertion. If you replace 'thinks' by 'walks' the argument works equally well (or badly).

Had they worked (harder) to attempt:
|- thinks(descarte) → exists(descarte)          (*)
(and is existence a predicate?) one would have confronted the central mystery. How do we formalise 'thinks' and 'exists'? What axioms support a theory which has (*) as a theorem?

As an AI person, I'd rephrase the "Cogito" as a robot problem. How would we design a robot which could convincingly assert Descartes's thesis?

The "Cogito ergo sum" is an internal reflection; by definition it doesn't relate to the outside world. In the jargon, it's metacognition. We immediately hit a problem. What is going on in a robot when it asserts "I'm thinking"?

Presumably it's thinking about something in particular, which we normally model 'without loss of generality' as a deduction within the robot's database of assertions and rules, its world-model.

So consider an inferential process occurring in the problem-solving layer of the robot and a concurrent metalevel representation of that inference. (An inference which is occuring, or maybe has just occurred?)

If P and Q are a couple of arbitrary facts while P→Q is a rule, then something like this?
thinking (P, Q, t1, t2) :- database([P, P→Q], t1), database([P, P→Q, Q], t2), t> t1.
Lacks conviction, don't you think? One is drawn to the byways of self-referential languages.*

I'm inclined to view the "Cogito" as more about consciousness, more about feeling self-aware than logic. Probably explains why we're as far away as ever from a compelling formalisation.

I notice I wrote about this in a similar fashion for sciencefiction.com back in 2011.

---

*  Reflective Prolog and "Reflection in logic, functional and object-oriented programming".