Continuous function with continuous one-sided derivative Simple example of the absolute value function $x \mapsto |x|$ on $\mathbb{R}$ shows that it is possible for a continuous function to posses both the right-hand and the left-hand side derivatives and still not being differentiable on $\mathbb{R}$.
I was wondering if it is possible to assume something about one of the one-hand side derivatives to obtain differentiability.
The obvious came to my mind:

Is it true that if a continuous function $f \in C(\mathbb{R})$ has left-hand-side derivative $f_{-}^{'}$ that is continuous on $\mathbb{R}$, then the function $f$ is differentiable?

 A: Yes.
The keystone is: 
Lemma. Let $f\colon [a,b]\to\mathbb R$ be continuous and assume that $f'_+(x)$ exists and is $>0$ for all $x\in [a,b)$. Then $f$ is strictly increasing.
Assume otherwise, i.e. $f(a)\ge f(b)$. 
We recursively define a map $g\colon \operatorname{Ord}\to [a,b)$ such that $g$ and $f\circ g$ are strictly inreasing. Since the class $\operatorname{Ord}$ of ordinals is a proper class and $g$ is injective, we arrive at a contradiction, thus showing the claim.


*

*Let $g(0)=a$.

*For a successor $\alpha=\beta+1$ assume we have already defined $g(\beta)$. For sufficently small positive $h$ we have that $g(\beta)<g(\beta)+h<b$ and $\frac{f(g(\beta)+h)-f(g(\beta))}{h}\approx f_+(g(\beta))>0$. Pick one such $h$ and let $g(\alpha)=g(\beta)+h$.

*If $\alpha$ is a limit ordinal, assume $g(\beta)$ is defined for all $\beta<\alpha$. Let $x=\sup_{\beta<\alpha} g(\beta)$. A priori only $x\le b$, but we need $x<b$. Because $f$ is continuous and $f\circ g$ is strictly increasing, we conclude that $f(x)=\sup_{\beta<\alpha} f(g(\beta))\ge f(g(1))>f(g(0))=f(a)=f(b)$. Therefore $x<b$ as desired and we can let $g(\alpha)=x$. 


$\square$
Corollary 1. (something like a one-sided Rolle theorem) Let $f\colon [a,b]\to\mathbb R$ be continuous with $f(a)=f(b)$. Assume $f_+$ exists and is continuos in $[a,b)$. Then $f'_+(x)=0$ for some $x\in[a,b)$.
Proof. Assume otherwise. Then either $f_+(x)>0$ for all $x$ or $f_+(x)<0$ for all $x$. In the first case the lemma applies and gives us a contradiction to $f(a)=f(b)$; in the other case, we consider $-f$ instead of $f$. $\square$
Corollary 2. (something like a one-sided IVT) Let $f\colon [a,b]\to\mathbb R$ be continuous. Assume $f_+$ exists and is continuos in $[a,b)$. Then $f'_+(x)=\frac{f(b)-f(a)}{b-a}$ for some $x\in[a,b)$.
Proof. Apply the previous corollary to $f(x)-\frac{f(b)-f(a)}{b-a}x$. $\square$
By symmetry, we have 
Corollary 3.   Let $f\colon [a,b]\to\mathbb R$ be continuous. Assume $f_-$ exists and is continuos in $(a,b]$. Then $f'_-(x)=\frac{f(b)-f(a)}{b-a}$ for some $x\in(a,b]$. $\square$
Theorem. Let $f\in C(\mathbb R)$ be a function with $f'_-$ continuous on $\mathbb R$.
Then $f\in C^1(\mathbb R)$.
Proof.
Consider aribtrary $a\in \mathbb R$.
Let $\epsilon>0$ be given. 
Then by continuity of $f'_-$, for some $\delta>0$ we have $|f'_-(x)-f'_-(a)|<\epsilon$ for all $x\in(a,a+\delta)$.
Thus for $0<h<\delta$ we have $\left|\frac{f(a+h)-f(a)}{h}-f'_-(a)\right|<\epsilon$ by corollary 3. We conclude that $f'_+(a)=f'_-(a)$, i.e. $f$ is differentiable at $a$. $\square$
A: Hagen von Eitzen gave a great answer. However, to my taste, the use of $\text{Ord}$ (the class of ordinals) in the lemma's proof is an overkill. Following is an alternative proof of this lemma.
Lemma. Let $a, b \in \mathbb{R}$, let $f\colon [a,b]\to\mathbb R$ be continuous, and assume that $f'_+(x)$ exists and is $> 0$ for all $x\in [a,b)$. Then $f$ is strictly increasing.
Proof. Suppose to the contrary that $f$ is not strictly increasing. We will show that $f'_+(x_0) \leq 0$ for some $x_0 \in [a,b)$, in contradiction to the lemma's assumptions.
Since $f$ is not strictly increasing, we can choose some $x_0 \in [a,b)$ such that $f(x_0) \geq f(y)$ for some $y \in (x_0,b]$. Define $S = \big\{y \in (x_0,b] : f(x_0) \geq f(y)\big\}$ and $y_0 = \inf S$.
It's impossible that $x_0 = y_0$, since then we would have $f'_+(x_0) = f'_+(y_0) \leq 0$, in contradiction to the lemma's assumptions. So $x_0 < y_0$. Therefore, to show that $f'_+(x_0) \leq 0$, it suffices to show that $f(x_0) = f(y_0)$ and that $f(y_0) = \max_{z \in [x_0,y_0]}f(z)$.
Firstly we show that $f(y_0) = \max_{z \in [x_0,y_0]}f(z)$. Since $f$ is continuous in $[a,b]$ (by the lemma's assumptions), it is continuous in $[x_0,y_0]$, and therefore attains a maximum there. So we may choose some $m \in [x_0,y_0]$ such that $f(m) = \max_{z \in [x_0,y_0]}f(z)$. It's impossible that $m < y_0$, since otherwise we would have $f'_+(m) \leq 0$, in contradiction to the lemma's assumptions. So $f(y_0) = \max_{z \in [x_0,y_0]}f(z)$ as required.
Secondly we show that $f(x_0) = f(y_0)$. Since $f(y_0) = \max_{z \in [x_0,y_0]}f(z)$, as we have just shown, we have in particular $f(x_0) \leq f(y_0)$, so it remains to show that $f(x_0) \geq f(y_0)$. But this follows from $f$'s continuity in light of the fact that, by definition of $y_0$, $y_0 = \inf\big\{y \in (x_0,b] : f(x_0) \geq f(y)\big\}$. $\square$
