I found the code hard to read, so here’s a transcription for the next me who passes by:
troll:
U():
if A() == "cross" & provable(False):
return -10
else if A() == "cross":
return 10
else:
return 0
agent:
A():
if A()="cross" proves U()=10
return "cross"
else if A()="not cross" proves U()=10
return "not cross"
else if A()="cross" proves U()=0
return "cross"
else if A()="not cross" proves U()=0
return "not cross"
else:
return "not cross"
proof sketch:
reasoning u/u- PA
$A = "cross"
$\provable(A="cross" -> U=-10)
either PA proved A()="cross" -> 10,
or it proved A()="cross" -> 0
in either case, PA \proves False by way of no
number being equal to another
\triforce \provable( (A="cross" -> -10) -> (A="cross" -> U=-10) ).
by Lob, A="cross" -> u=-10
so u=-10
\triforce A="cross" => u=-10
since we proved this in PA, the bot proves it, and proves no better utility in addition because if it did, then PA would actually be inconsistent.
I found the code hard to read, so here’s a transcription for the next me who passes by:
troll:
agent:
proof sketch:
(transcription revision 1)