Maybe I have overlooked it, but I think the "Bitcoin Developer Reference" does not specify how a miner has to check whether or not transaction inputs have been previously spent.
How is it done? And espacially how is this enforced in the process?
All I found is 5.2 "process" 2.) in the 2016 paper.
I think, the miner has to look at every block after the "oldest" referenced transaction input and make sure no transaction in no block has the appropriate transaction as input. Is that true?
In that case, what enforces the miner to do so?