The main question that I want to solve is that:
Let $\{X^k\}_{k=-\infty}^\infty$ be a sequence of (Banach) spaces which are subsets of distribution space $\mathcal D'(\Omega)$ where $\Omega\subset\mathbb R^n$, satisfies
(a) $f\in X^k$ iff $\nabla f\in X^{k-1}\otimes\mathbb R^n$;
(b) Either (i) $\nabla$ is injective, or (ii) polynomials lays in $\bigcap_{k=1}^\infty X^k$;
Then the divergence $\operatorname{div}:X^k\otimes\mathbb R^n\to X^{k-1}$ is surjection.
The answer in Show that the divergence operator is onto gives a proof of the surjection of $\operatorname{div}:L^2(\mathbb R^n)\to H^1(\mathbb R^n)$, moreover the same argument shows is also holds if $X^k$ are reflexive spaces. But it use Hahn-Banach which is non-constructive.
Here is the idea that I already have, denote $Y^k=\{f\in\mathcal D'(\Omega):(\phi\mapsto\langle f,\phi\rangle)\in(X^k)^*\}$, then $\{Y^k\}$ satisfies (a) and (b) ($Y^k$ satisfies (b) maybe a bit nontrivial).
Set $\tilde X^k=\{f\in\mathcal D'(\Omega):(\phi\mapsto\langle f,\phi\rangle)\in(Y^k)^*\}$. Then $X^k\subset\tilde X^k$ is a closed subspace, and the argument shows that given $f\in X^k$ there a preimage $F\in\tilde X^{k+1}\otimes\mathbb R^n$ satisfies $f=\operatorname{div} F$.
If $\tilde X^k=X^k$ the proof is done (inparticular $X^k=C_b^k(\Omega)$ or $X^k=W^{k,p}(\Omega)$ are true). But what if $\tilde X$ is strictly larger? The non-constructive can only guarantee the existence in $\tilde X^{k+1}$ instead of $ X^{k+1}$, and I didn't find a good characterization for the kernel of divergence.