Proving the semantic security of the One Time pad
The proof for the perfect secrecy property of the one time pad is quite simple. 

It makes use of basic probabilities and it says that:
 $$Pr[M=m|C=c]=Pr[M=m]$$ for a probability distribution M$\{0,1\}^n$ for the message space and a probability space C for the ciphertext space.

Proof:


$$Pr[C=c]=\sum{Pr[C=c|M=m']\cdot Pr[M=m']}
=\sum{Pr[K=m'\oplus c]}\cdot Pr[M=m']
=\sum{2^{-n}}\cdot Pr[M=m']
=2^{-n}$$
(from bayes theorem)$$Pr[M=m|C=c] = \frac{Pr[C=c|M=m]\cdot Pr[M=m]}{Pr[C=c]} 
= \frac{Pr[k=m \oplus c]\cdot Pr[M=m]}{2^{-n}}
=\frac{2^{-n}\cdot Pr[M=m]}{2^{-n}}
=Pr[M=m]
$$


What the last equation states, is the following:
The success probability of an attacker to correctly guess the plaintext m by inspecting its ciphertext c is equal with the probability of correctly guessing the message without obtaining its ciphertext. The latter argument is the perfect secrecy property.

Perfect secrecy is hard to achieved in real world due to its two constraints:


It's one time: the key should be used only for 1 encryption
The key should be as long as the underlying message


So people started to think:"...hmmm maybe we can weak this security definition in order to be more efficient in practise...". And they end up with the computational semantic security which relaxes the perfect secrecy as follows: No polynomially bounded adversary can with non negligible probability infer any information from the ciphertext. This is the semantic version and the indistinguishable version states that no polynomially bounded adversary can with non negligible probability distinguish two ciphertexts.

In real world the second drawback can be mitigated with the use of pseudorandom generators that very briefly take as input a short "random" looking seed and produce a longer pseudorandom number that is indistinguishable from random. In order to come up with the proof following the reductionist approach for the security of the one-time-real-world pad we substitute the key k with the outputs of a PRG and we make the assumption that PRG outputs are indistinguishable from random. The proof now for its semantic security (which is equivalent with IND security) proceeds as follows:

Assuming that $\mathcal{A}$ breaks the semantic security of our OTRWP attacker $\mathcal{B}$ that tries to break the security of the PRG will use it to break PRG security. If we manage to do so we will end up in a contradiction so the truth statement would be that OTRWP is secure. Let's see how it briefly works:
Whenever $\mathcal{A}$ is asking for encryption of messages m the attacker $\mathcal{B}$:


Gets the output of the PRG when it is fed up with a seed that comes from a uniform distribution.
Gets the output of the PRG when it is fed up with a pseudorandom seed.


We made the assumption that PRG is pseudorandom so the success probability of $\mathcal{B}$ distinguishing between 1 and 2 is negligible:
$Pr[|PRG_{pseudorandom seed}-PRG_{uniform seed}|]=neg(1^k)$
But $Pr[PRG_{pseudorandom seed}]$ is exactly equal the probability of the OTRWP for attacker A and $Pr[PRG_{uniform seed}]=1/2$ because it is independent from the view of $\mathcal{A}$.

So:
$$Pr[\mathcal{A}^{OTRWP}]=neg(1^k)+ 1/2$$
which concludes the proof.