  Given a Boolean formula $\varphi$ over the set of variables $X$ and a
projection set $\mathcal{P} \subseteq X$, a subset of variables $\mathcal{I}$
is independent support of $\mathcal{P}$ if two solutions agree on
$\mathcal{I}$, then they also agree on $\mathcal{P}$. The notion of independent
support is related to the classical notion of definability dating back to 1901,
and have been studied over the decades. Recently, the computational problem of
determining independent support for a given formula has attained importance
owing to the crucial importance of independent support for hashing-based
counting and sampling techniques.
  In this paper, we design an efficient and scalable independent support
computation technique that can handle formulas arising from real-world
benchmarks. Our algorithmic framework, called Arjun, employs implicit and
explicit definability notions, and is based on a tight integration of
gate-identification techniques and assumption-based framework. We demonstrate
that augmenting the state of the art model counter ApproxMC4 and sampler
UniGen3 with Arjun leads to significant performance improvements. In
particular, ApproxMC4 augmented with Arjun counts 387 more benchmarks out of
1896 while UniGen3 augmented with Arjun samples 319 more benchmarks within the
same time limit.
