# drethelin comments on Prisoners’ Dilemma with Costs to Modeling

• I always like Game The­ory that has sim­ple ad­vice ap­pli­ca­ble to real life: If you want peo­ple to co­op­er­ate with you, Be Com­pre­hen­si­ble!

• It could be more ex­treme than this re­sult im­plies-I’m not sure how re­al­is­tic the mod­el­ing costs are.

When A is look­ing for a proof about B(A), and B look­ing for a proof about A(B), it seems they should either

1) have the same cost which is pro­por­tional to the sum of their com­plex­ity as mea­sured by length, since A+B=B+A or

2) have the cost for each time a pro­gram mod­els the other pro­gram be de­pen­dent on the other pro­gram’s length-prov­ing Co­op­er­ateBot co­op­er­ates with you should be eas­ier if only be­cause Co­op­er­ate Bot is a shorter pro­gram, which isn’t try­ing to prove things about you, which means the fact it has your source code doesn’t mat­ter—if it did, this would effec­tively in­creases its length. I think FairBot co­op­er­at­ing with it­self re­quires a bit more of a search than Co­op­er­ateBot do­ing so, and should have an ap­pro­pri­ate cost.

FairBot shouldn’t just be pe­nal­ized ep­silon for mod­el­ing Co­op­er­ateBot, it should be pe­nal­ized based on the length of Co­op­er­ate Bot.

Co­op­er­ateBot is defined by CB(X)↔⊤.
Defec­tBot is defined by DB(X)↔⊥.
FairBot is defined by FB(X)↔□(X(FB)).
Pru­den­tBot is defined by PB(X)↔□(X(PB)∧(X(DB)→□⊥)).

Their defi­ni­tions here also re­flect that the mod­el­ing bots are longer, es­pe­cially Pru­den­tBot.

TL;DR

The costs could just be (a func­tion of) the length of the proof*, or the amount of time it took to find and check.

*Still rea­son­able with caching, al­though costs would be much smaller.