The behavior of players with finite strategies is not computable. To see this, let n-HaltingBot be the strategy that cooperates iff the nth Turing machine halts (on null input) in fewer steps than the length of the string of predictions. If the nth Turing machine halts, then the depth of this strategy is the number of steps it takes for it to halt. If it doesn’t halt, then the depth of this strategy is 0. Either way, it’s a finite strategy. But you’re paying attention to the limiting behavior as the length of the string of predictions approaches infinity, and in that sense, the n-HaltingBot cooperates with the other player iff the nth program halts.
However, I’m pretty sure the behavior of players with provable finite bounds on the depths of their strategies are computable.
In terms of philosophical reasonableness, I’m kind of skeptical of this. In an actual implementation of this with real agents, presumably there isn’t some prediction oracle that will be assisting the agents, so the agents will have to generate these predictions themselves, and then they’ll actually have to compute the limits of their and the other player’s behavior in order to decide what to actually do. You also want to avoid getting exploited by players who act like ProbabilisticFairBot when the string of predictions is finite but defect when the string is infinite. So I think they’ll need to look for proofs that the other player is an agent that behaves according to this framework, with some bound on the depth of their strategy. Two players doing this then end up doing a Lobian handshake that they’ll both act according to this framework, but if they need to do a Lobian handshake, they may as well use it to cooperate, instead of using it to adopt a different framework that will lead them to cooperate.
The behavior of players with finite strategies is not computable. To see this, let n-HaltingBot be the strategy that cooperates iff the nth Turing machine halts (on null input) in fewer steps than the length of the string of predictions. If the nth Turing machine halts, then the depth of this strategy is the number of steps it takes for it to halt. If it doesn’t halt, then the depth of this strategy is 0. Either way, it’s a finite strategy. But you’re paying attention to the limiting behavior as the length of the string of predictions approaches infinity, and in that sense, the n-HaltingBot cooperates with the other player iff the nth program halts.
However, I’m pretty sure the behavior of players with provable finite bounds on the depths of their strategies are computable.
In terms of philosophical reasonableness, I’m kind of skeptical of this. In an actual implementation of this with real agents, presumably there isn’t some prediction oracle that will be assisting the agents, so the agents will have to generate these predictions themselves, and then they’ll actually have to compute the limits of their and the other player’s behavior in order to decide what to actually do. You also want to avoid getting exploited by players who act like ProbabilisticFairBot when the string of predictions is finite but defect when the string is infinite. So I think they’ll need to look for proofs that the other player is an agent that behaves according to this framework, with some bound on the depth of their strategy. Two players doing this then end up doing a Lobian handshake that they’ll both act according to this framework, but if they need to do a Lobian handshake, they may as well use it to cooperate, instead of using it to adopt a different framework that will lead them to cooperate.