  We consider the one-shot Prisoner's Dilemma between algorithms with
read-access to one anothers' source codes, and we use the modal logic of
provability to build agents that can achieve mutual cooperation in a manner
that is robust, in that cooperation does not require exact equality of the
agents' source code, and unexploitable, meaning that such an agent never
cooperates when its opponent defects. We construct a general framework for such
"modal agents", and study their properties.
