Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
User Journal

Journal blue trane's Journal: I'm beginning to understand why Goedel went crazy

Working on the Liar's paradox. I've done some work on it before. Reading Beyond AI, I decided to try it again with a slightly different approach: adding "modus ponens", so that I can say (to give a simple example): "if A is true, then B is true" and "A is true" and the program will automatically add "B is true" to its database of stored factoids.

What I want to do is tell my program:

A is "B is false"
B is "A is true"

then deduce from that that both A and B are both true and false.

Since the statements are self-referential, it is a real challenge to get my programs to deal with them without going into infinite loops.

The main problem I'm having right now is asking "is A true?" I can get the responses I want if I delineate "A" and "true", as in: 'is "A" "true"?'
But I can't yet get it to respond correctly when I drop the quotation marks...

My latest attempt (I'm getting tired, I'm going to leave it here and come back to it tomorrow, or sometime :):

---

C:\trane\liar>startliar

C:\trane\liar>cd logicagent

C:\trane\liar\logicagent>start ruby logicbotd.rb

C:\trane\liar\logicagent>cd ..

C:\trane\liar>cd ifagent

C:\trane\liar\ifagent>start ruby ifbotd.rb

C:\trane\liar\ifagent>cd ..

C:\trane\liar>ruby controlbot.rb

Reading remember.txt...

Hello
Reading rules.txt...
Dir = C:/trane/liar

> A is "B is false"

Okay, A is B is false.

> B is "A is true"

Okay, B is A is true.

> if "B is false", then "A is true" is false

Okay, B is false -> A is true is false.

> if "A is true" is false, then A is false

Okay, A is true is false -> A is false.

> if A is false, then "B is false" is false

Okay, A is false -> B is false is false.

> if "B is false" is false, then B is true

Okay, B is false is false -> B is true.

> is A true?

> logicagent: turn on debug mode

I have turned on debug output.

> is A true?

> is B true?

> logicagent: print graph

b is false is false
if b is false is false, then b is true
a is b is false
a is false
b is a is true
b is false
if a is false, then b is false is false
if b is false, then "a is true is false
if a is true is false, then a is false
a is true is false

> A is true

> B is false

> is A true?

> is "A" "true"?

Yes, A is true.

> is "B" "true"?

I have no knowledge that B is true.

> is B false?

Yes, B is false.

> is A false?

Yes, A is false.

> B is false

> is "B" "false"?

Yes, B is false.

>

This discussion has been archived. No new comments can be posted.

I'm beginning to understand why Goedel went crazy

Comments Filter:

1 + 1 = 3, for large values of 1.

Working...