We present a call-by-need $\lambda$-calculus that enables strong reduction
(that is, reduction inside the body of abstractions) and guarantees that
arguments are only evaluated if needed and at most once. This calculus uses
explicit substitutions and subsumes the existing strong-call-by-need strategy,
but allows for more reduction sequences, and often shorter ones, while
preserving the neededness. The calculus is shown to be normalizing in a strong
sense: Whenever a $\lambda$-term t admits a normal form n in the
$\lambda$-calculus, then any reduction sequence from t in the calculus
eventually reaches a representative of the normal form n. We also exhibit a
restriction of this calculus that has the diamond property and that only
performs reduction sequences of minimal length, which makes it systematically
better than the existing strategy. We have used the Abella proof assistant to
formalize part of this calculus, and discuss how this experiment affected its
design. In particular, it led us to derive a new description of call-by-need
reduction based on inductive rules.