{'fraction_non_alphanumeric': 0.020706455542021926, 'fraction_numerical': 0.0048721071863581, 'mean_word_length': 4.829787234042553, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
How many solutions does a SAT instance have?

Our goal is to investigate the solution space of a given Boolean satisfiability (SAT) instance. In particular, we are interested in determining the size of the solution space - the number of truth assignments that make the SAT instance true - and finding all such truth assignments, if possible. This apparently hard problem has both theoretical and practical values. We propose an exact algorithm based on exhaustive search that solves the instance once and finds all solutions (SOFAS) and several sampling techniques that estimate the size of the solution space. SOFAS works better for SAT instances of small size with a 5X-100X speed-up over the brute force search algorithm. The sampling techniques estimate the solution space reasonably well for standard SAT benchmarks.