Check computation of minimal norm of subgradients sum of linear function and indicator function of convex set

147 Views Asked by At

Let $a \in \mathbb R^m$ and consider the function $g:\mathbb R^m \to \mathbb R$ defined by $g(w):= a^\top w$. Also, define another function $f:\mathbb R^m \to \mathbb R \cup \{+\infty\}$ by $$ f(w) = g(w) + i_{B_m}(w) = \begin{cases} g(w),&\mbox{ if }w \in B_m,\\ +\infty,&\mbox{ else,} \end{cases} $$ where $B_m := \{w \in \mathbb R^m \mid \|w\| \le 1\}$ is the closed unit-ball in $\mathbb R^m$. For any $w \in \mathbb R^m$, let $\|\partial f(w)\| := \inf\{\|v\| \mid v \in \partial f(w)\}$, where $\partial f(w)$ is the subdifferential of $f$ at $w$.

Question. Is it true that $\|\partial f(w)\| = \|a\|$ for all $w \in B_m^\circ := \{w \in \mathbb R^m \mid \|w\| < 1\}$ ?

My comptuations

It is clear that $\mbox{intr } \mbox{dom } g \cap \mbox{intr }\mbox{dom }i_{B_m} = \mathbb R^m \cap B_m^\circ = B_m^\circ \ne \emptyset$. Therefore by the sum-rule for subdifferentials, we have $\partial f(w) := \partial g(w) + \partial i_{B_m}(w)$ for all $w \in \mathbb R^m$.

It is clear that $g$ is differentiable on $\mathbb R^m$ and so $\partial g(w) \equiv \{\nabla g(w)\} = \{a\}$. On the other hand, if $w \in B_m^\circ$, one computes $$ \begin{split} \partial i_{B_m}(w) &:= \{v \in \mathbb R^m \mid i_{B_m}(w') \ge i_{B_m}(w) + v^\top(w'-w)\;\forall w' \in \mathbb R^m\}\\ &= \{v \in \mathbb R^m \mid v^\top(w'-w) \le 0\;\forall w' \in B_m\}\\ &= \{v \in \mathbb R^m \mid v^\top w \ge v^\top w'\;\forall w' \in B_m\}\\ &= \{v \in \mathbb R^m \mid v^\top w \ge \|v\|\}\\ &= \{0\} \end{split} $$ where the last equality is via Cauchy-Schwarz and the fact that $\|w\| < 1$. Putting things together then gives $\|\partial f(w)\| = \{\|x + y\| \mid x \in \{a\},\;y \in \{0\}\} =\|a\|$ as claimed.

Question

Somehow, I think something is wrong with my computations above (the final result is leading to inconsistencies in another place where I'm using the result --not shown here). Can someone help confirm these computations are wrong / correct ? Thanks in advance!