In the second scenario we can, losing a little generality, prohibit obfuscation by accepting only programs already organized as decision graphs (possible nodes: throw dice and branch; simulate opponent and branch; cooperate; defect). The problem stays meaningful because programs have no access to each other’s source and must resort to simulation. Maybe the problem thus formulated has a trivial solution, but I don’t see it yet.
In the second scenario we can, losing a little generality, prohibit obfuscation by accepting only programs already organized as decision graphs (possible nodes: throw dice and branch; simulate opponent and branch; cooperate; defect). The problem stays meaningful because programs have no access to each other’s source and must resort to simulation. Maybe the problem thus formulated has a trivial solution, but I don’t see it yet.