I think whitepaper is just a summary, so it's not very detail. While the source code is everything that make Bitcoin run, probably there's other thing that didn't mentioned in whitepaper besides halving.
POS = Proof of Scam, stay away from POS coins/tokens.
It is best to have the bitcoin github[1] as reference since all the updates and upgrades are mentioned on that repository.
To be more accurate, on lines 1752-1763.
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)
{
int halvings = nHeight / consensusParams.nSubsidyHalvingInterval;
// Force block reward to zero when right shift is undefined.
if (halvings >= 64)
return 0;
CAmount nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years.
nSubsidy >>= halvings;
return nSubsidy;