Towards Verifying Exact Conditions for Implementations of Density Functional Approximations
Sameerah Helal, Zhe Tao, Cindy Rubio-González, Francois Gygi, Aditya V. Thakur
TL;DR
This work introduces XCVerifier, a formal-verification framework for checking whether density functional approximations (DFAs) implemented in Libxc satisfy the known exact conditions of density functional theory (DFT). It encodes DFA implementations into delta-complete first-order logic via dReal, using symbolic differentiation and domain-splitting to verify local conditions over input domains defined by $r_s$ and $s$. Across five DFAs (PBE, SCAN, LYP, AM05, VWN RPA) and seven exact conditions, XCVerifier completes 13 verifications or counterexamples and partially verifies 7 more, with 11 timeouts, highlighting both feasibility and scalability challenges—especially for SCAN. The results align largely with a prior grid-search approach (PB), supporting the viability of formal methods for DFA verification while outlining concrete directions for improving solver scalability, expanding condition coverage, and addressing numerical issues intrinsic to DFAs.
Abstract
Density Functional Theory (DFT) is used extensively in the computation of electronic properties of matter, with various applications. Approximating the exchange-correlation (XC) functional is the key to the Kohn-Sham DFT approach, the basis of most DFT calculations. The choice of this density functional approximation (DFA) depends crucially on the particular system under study, which has resulted in the development of hundreds of DFAs. Though the exact density functional is not known, researchers have discovered analytical properties of this exact functional. Furthermore, these exact conditions are used when designing DFAs. We present XCVerifier, the first approach for verifying whether a DFA implementation satisfies the DFT exact conditions. XCVerifier was evaluated on five DFAs from the popular Libxc library and seven exact conditions from recent work. XCVerifier was able to verify or find violations for a majority of the DFA/condition pairs, demonstrating the feasibility of using formal methods to verify DFA implementations.
