It may be instructive to look into computability theory. I believe (although I haven’t seen this proven) that you can get Halting-problem-style contradictions if you have multiple perfect-Bayesian agents modelling each other[1].
Many of these contradictions are (partially) alleviated if agents have access to private random oracles.
*****
If a system can express a perfect agent that will do X if and only if it has a ≤99% chance of doing X, the system is self-contradictory[2].
If a symmetric system can express two identical perfect agents that will each do X if and only if the other agent does not do X, the system is self-contradictory[3].
This is an example where private random oracles partially alleviate the issue, though do not make it go away. Without a random oracle the agent is correct 0% of the time regardless of which choice it makes. With a random oracle the agent can roll a d100[4] and do X unless the result is 1, and be correct 99% of the time.
This is an example where private random oracles help. Both agents query their random oracle for a real-number result[5] and exchange the value with the other agent. The agent that gets the higher[6] number chooses X, the other agent chooses ~X.
Alternatively you can do it with coinflips repeated until the agents get different results from each other[7], although this may take an unbounded amount of time.
It may be instructive to look into computability theory. I believe (although I haven’t seen this proven) that you can get Halting-problem-style contradictions if you have multiple perfect-Bayesian agents modelling each other[1].
Many of these contradictions are (partially) alleviated if agents have access to private random oracles.
*****
If a system can express a perfect agent that will do X if and only if it has a ≤99% chance of doing X, the system is self-contradictory[2].
If a symmetric system can express two identical perfect agents that will each do X if and only if the other agent does not do X, the system is self-contradictory[3].
Actually, even a single perfect-Bayesian agent modelling itself may be sufficient...
This is an example where private random oracles partially alleviate the issue, though do not make it go away. Without a random oracle the agent is correct 0% of the time regardless of which choice it makes. With a random oracle the agent can roll a d100[4] and do X unless the result is 1, and be correct 99% of the time.
This is an example where private random oracles help. Both agents query their random oracle for a real-number result[5] and exchange the value with the other agent. The agent that gets the higher[6] number chooses X, the other agent chooses ~X.
Not literally. As in “query the random oracle for a random choice of 100 possibilities”.
Alternatively you can do it with coinflips repeated until the agents get different results from each other[7], although this may take an unbounded amount of time.
The probability that they get the same result is zero.
Again, not literally. As in “query the random oracle for a single random bit”.