Here's an edited version of a puzzle from the book "Chuck Klosterman four" by Chuck Klosterman.
It is 1933. Somehow you find yourself in a position where you can effortlessly steal Adolf Hitler's wallet. The theft will not effect his rise to power, the nature of WW2, or the Holocaust. There is no important identification in the wallet, but the act will cost Hitler forty dollars and completely ruin his evening. You don't need the money. The odds that you will be caught committing the crime are negligible. Do you do it?
When should you punish someone for a crime they will commit in the future? Discuss.
If this is a question about justice, then the answer is "when you have jurisdiction". Otherwise, you risk double punishment.
On the other hand, if this is a question about cooperative game theory, then go ahead and punish if you know for sure they will transgress. But notice that punishment only serves its proper deterrent purpose when the criminal knows the transgression for which he is punished, and which player or coalition is taking credit for the punishment.
Not necessarily. For evolution to reduce the number of crimes, it is only necessary that punishment causally correlate with crimes.
When dealing with other optimization processes, e.g., human brains it is only necessary for the person to notice that crime pays less without realizing why. It's not even necessary for the person to be aware that he's noticed that, simply that for the value the person assigns to how much crime pays to be less then it would be if you hadn't acted.