It’s quite likely that the optimal behaviour should be different in case the program is functionally equal but not exactly equal.
If you’re playing yourself, then you want to cooperate.
If you’re playing someone else, then you’d want to cooperate if and only if that someone else is smart enough to check if you’ll cooperate; but if it’s decision doesn’t depend on yours, then you should defect.
It’s quite likely that the optimal behaviour should be different in case the program is functionally equal but not exactly equal.
If you’re playing yourself, then you want to cooperate.
If you’re playing someone else, then you’d want to cooperate if and only if that someone else is smart enough to check if you’ll cooperate; but if it’s decision doesn’t depend on yours, then you should defect.