The double negation translation is a method for converting propositions valid in classical logic into propositions valid in intuitionistic logic. It was discovered independently by a number of mathematicians including Kurt Gödel, Gerhard Gentzen, and Andrey Kolmogorov, and is also called the Gödel–Gentzen negative translation.
The traditional descriptions are highly syntactic, but can be motivated by recalling some conceptual relationships between Boolean algebras (which are algebras for classical propositional logic) and Heyting algebras (which are algebras for intuitionistic propositional logic).
Recall from the article Heyting algebra that the left adjoint $F$ to the forgetful functor
is given objectwise by taking a Heyting algebra $L$ to the poset $L_{\neg\neg}$ of regular elements $x \in L$, i.e., those satisfying $x = \neg \neg x$. It was shown that $L_{\neg\neg}$ is a Boolean algebra, and $\neg \neg \colon L \to L_{\neg\neg}$ is a Heyting algebra homomorphism which is universal among Heyting algebra maps $L \to U B$ into Boolean algebras.
In particular, if $Heyt(S)$ is the free Heyting algebra on a set of variables $S$, it follows by composing left adjoints
that $Heyt(S)_{\neg\neg}$ is the free Boolean algebra on $S$.
Furthermore, it was shown in Heyting algebra that for Heyting algebras $L$,
$\neg\neg \colon L \to L$ preserves finite meets;
$\neg\neg \colon L \to L$ preserves the implication operation $\Rightarrow$.
Consequently, the inclusion of regular elements $L_{\neg\neg} \to L$ also preserves meets and implications, strictly. This gives the following result.
If $p \Rightarrow q$ is a tautology in classical propositional logic, then $(\neg \neg p) \Rightarrow (\neg \neg q)$ is a tautology in intuitionistic propositional logic, and conversely.
Here $p$ and $q$ are term expressions in variables $x_i \in S$ over the signature $(0, 1, \vee, \wedge, \Rightarrow)$. To say $p \Rightarrow q$ is a classical tautology means that $1 \leq (p \Rightarrow q)$ holds when interpreted in $Bool(S)$. But since $Bool(S) = Heyt(S)_{\neg\neg}$, this is equivalent to saying that
when interpreted in $Heyt(S)$, which is to say that $(\neg \neg p) \Rightarrow (\neg\neg q)$ is an intuitionistic tautology.
Continuing this thought: the join $\vee$ in $Bool(S) = Heyt_{\neg\neg}$ is computed as
since $\neg\neg \colon Heyt(S) \to Heyt(S)_{\neg\neg}$ preserves joins (it is a left adjoint). Putting all this together, because $\neg\neg \colon Heyt(S) \to Heyt(S)_{\neg\neg}$ preserves Heyting algebra structure, we arrive the following syntactic translation.
The double-negation translation $p \mapsto p^{N}$ on term expressions in the theory of Heyting algebras $L$ is defined by induction as follows.
$x^N = \neg\neg x$ for variables $x$.
$0^N = 0$ (since $\neg\neg \colon L \to L$ preserves $0$)
$1^N = 1$ (since $\neg\neg \colon L \to L$ preserves $1$)
$(p \wedge q)^N = p^N \wedge q^N$ (since $\neg\neg \colon L \to L$ preserves the meet operation)
$(p \Rightarrow q)^N = p^N \Rightarrow q^N$ (since $\neg\neg \colon L \to L$ preserves the implication operation)
$(p \vee q)^N = \neg\neg(p^N \vee q^N)$.
Thus, by Glivenko’s theorem, $p$ is a classical tautology if and only if $p^N$ is an intuitionistic tautology. This result may be extended to theories as well: suppose $L$ is an intuitionistic theory or Heyting algebra, given by a presentation as a coequalizer in $Heyt$:
Then, since the functor $L \mapsto L_{\neg\neg}$ is a left adjoint, it takes this coequalizer to a coequalizer
so that an term expression $p$ is a theorem in the classical theory $L_{\neg\neg}$ if and only if $p^N$ is a theorem in the intuitionistic theory $L$.
…
The basic idea here is that any topos $E$ gives rise to a Boolean topos $E_{\neg\neg}$.