<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">CSB: A Counting and Sampling tool for Bit-vectors</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Arijit</forename><surname>Shaw</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Chennai Mathematical Institute</orgName>
								<address>
									<country key="IN">India</country>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="department">IAI</orgName>
								<orgName type="institution">TCG-CREST</orgName>
								<address>
									<settlement>Kolkata</settlement>
									<country key="IN">India</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Kuldeep</forename><forename type="middle">S</forename><surname>Meel</surname></persName>
							<affiliation key="aff2">
								<orgName type="institution">University of Toronto</orgName>
								<address>
									<country key="CA">Canada</country>
								</address>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff3">
								<orgName type="department">International Workshop on Satisfiability Modulo Theories</orgName>
								<address>
									<addrLine>July 22-23</addrLine>
									<postCode>2024</postCode>
									<settlement>Montreal</settlement>
									<country key="CA">Canada</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">CSB: A Counting and Sampling tool for Bit-vectors</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">D20B45FD43D43BAF2F04047D7460B478</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2025-04-23T17:21+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Satisfiability Modulo Theory (SMT) solvers have significantly advanced automated reasoning due to their effectiveness in solving problems across various fields. With the advancement in SMT solvers, there is growing interest in exploring capabilities beyond mere satisfiability, similar to the progression observed in Boolean satisfiability solvers that expanded into counting and sampling. In this study, we investigate the following question: Can we rely on modern CNF model counters and CNF samplers to extend a modern SMT solvers to handle the problems of counting and sampling over bit-vectors?</p><p>The main contribution of this work is the development of an efficient approximate model counter along with the first almost-uniform and uniform-like samplers for the theory of bit-vectors. Our tool 1 csb converts the bit-vector formula into a CNF formula using bit-blasting techniques before applying CNF model counters or samplers to perform counting or sampling. Our tool enhances the SMT solver STP with an approximate model counter ApproxMC, an almost-uniform sampler UniGen, and a uniform-like sampler CMSGen. Our experiments demonstrate significant performance improvements over existing methods.</p><p>1. We introduce csb, a bit-vector model counter that extends the SMT solver STP to incorporate off-the-shelf CNF-counters. Out of a set of 679 bit-vector counting problems, csb successfully</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>The paradigm of Satisfiability Modulo Theory (SMT) solving has been central to advances in hardware and software verification over the past two decades. Over time, the community has developed several scalable state-of-the-art SMT solvers. For many problem instances, satisfiability alone does not suffice, and one is often interested in computations over the solution set. Two such problems are computing an estimate of the cardinality of the solution set and uniformly sampling a solution from the entire solution set. As a starting point, we focus on the case when the underlying formula is expressed in QF_BV, or quantifier-free bit-vector arithmetic (referred to as bit-vectors hereafter). Our choice of QF_BV stems from its being one of the first theories to be investigated in the context of SMT solving, as well as recent empirical studies showing the importance of counting problems over bit-vector formulas in domains such as cryptography <ref type="bibr" target="#b0">[1]</ref> and software verification <ref type="bibr" target="#b1">[2,</ref><ref type="bibr" target="#b2">3]</ref>.</p><p>The problem of counting and sampling over bit-vectors can be addressed through two methods: (i) reasoning directly over bit-vectors, or (ii) reducing the problem to CNF. While the former approach has been studied in recent years using lifting techniques for word-level constraints <ref type="bibr" target="#b3">[4,</ref><ref type="bibr" target="#b4">5,</ref><ref type="bibr" target="#b5">6,</ref><ref type="bibr" target="#b6">7]</ref>, the latter has not been thoroughly assessed. In this paper, we focus on whether a modern SMT solver can be extended with CNF-based model counters and CNF samplers to efficiently address the problems of counting and sampling over bit-vectors. Our investigation into the design of a counting tool for bit-vector formulas relies on bit-blasting, followed by the use of CNF-based samplers and counters, leveraging the latter's scalability.</p><p>To test the scalability of our system, we compiled a collection of 679 benchmarks from various practical domains, such as cryptography and software verification, encoded as the problem of bit-vector model counting. The primary contribution of this paper is the development of an efficient bit-vector counting and sampling tool. Specifically, counts 643 benchmarks, surpassing the previous state-of-the-art counter, SMTApproxMC, which counts 135 benchmarks.</p><p>2. Furthermore, we extend csb to function as a sampler by integrating CNF-samplers. On average, it takes 7.4 seconds and 273.6 seconds to generate 500 uniform-like and almost-uniform samples, respectively, from our benchmark set in these modes.</p><p>The rest of the paper is organized as follows: We introduce the preliminaries and related work in Section 2. In Section 3, we present an overview of our framework, csb. We describe our experimental methodology and results in Section 4. Finally, we conclude in Section 5.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Background</head><p>A word (or bit-vector) is a vector of bits of a given size. Let 𝑋 be the set of word-level variables, and let 𝐹 be a formula in the theory of quantifier free bit-vectors. A model or solution of 𝐹 is an assignment of word-level constants to variables in 𝑋 such that 𝐹 evaluates to True. Let Sol(𝐹 ) denote the set of models of 𝐹 . The problem of counting is to compute |Sol(𝐹 )|.</p><p>An approximate model counter takes in a formula 𝐹 , tolerance parameter 𝜀, confidence parameter</p><formula xml:id="formula_0">𝛿 and returns 𝑐 such that Pr [︁ |Sol(𝐹 )| 1+𝜀 ≤ 𝑐 ≤ (1 + 𝜀)|Sol(𝐹 )| ]︁ ≥ 1 − 𝛿.</formula><p>An almost uniform sampler 𝐺 takes a tolerance parameter 𝜀 along with 𝐹 , and guarantees ∀𝑦 ∈ Sol(𝐹 ),</p><formula xml:id="formula_1">1 (1+𝜀)|Sol(𝐹 )| ≤ Pr[𝐺(𝐹, 𝜀) = 𝑦] ≤ (1+𝜀)</formula><p>|Sol(𝐹 )| . An uniform-like sampler also takes in a Boolean formula 𝐹 and returns 𝜎 ∈ Sol(𝐹 ), and is designed to behave like a uniform sampler, albeit without theoretical guarantees. Instead of theoretical analysis, the design of these samplers are influenced by recently proposed distribution testing-based tool, Barbarik <ref type="bibr" target="#b7">[8,</ref><ref type="bibr" target="#b8">9]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Related Work.</head><p>The success of propositional model counters, especially approximate ones, led to the adaptation of these techniques for word-level constraints. Chistikov et al. <ref type="bibr" target="#b3">[4]</ref> extended hashing-based model counting from the approximate CNF model counter ApproxMC <ref type="bibr" target="#b9">[10]</ref> to word-level benchmarks using bit-blasting. Chakraborty et al. <ref type="bibr" target="#b4">[5]</ref> developed SMTApproxMC, which lifts hash functions to handle word-level constraints. Kim et al. introduced a system for statistical estimation to continuously refine the probabilistic estimate of model counts, although it lacks (𝜀, 𝛿)-guarantees <ref type="bibr" target="#b10">[11]</ref>.</p><p>In the sampling domain, the need for uniform samplers and those achieving high coverage is wellestablished. There have been considerable efforts to sample from SMT formulas with high coverage <ref type="bibr" target="#b5">[6,</ref><ref type="bibr" target="#b6">7,</ref><ref type="bibr" target="#b11">12]</ref>, yet uniform sampling from these formulas remains largely unexplored, representing a significant challenge. The technique of lifting hash functions, as used in <ref type="bibr" target="#b4">[5]</ref>, is ineffective for uniform sampling due to the need for 3-wise independence, whereas the lifted hash functions in <ref type="bibr" target="#b12">[13]</ref> only ensure 2-wise independence.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Approach</head><p>We develop csb, a model counting and sampling tool for the quantifier-free fragment of the theory of bit-vectors. To achieve this, csb first bit-blasts the formula to a Boolean CNF formula, then applies an off-the-shelf CNF model counter or CNF sampler to solve the problems of model counting and sampling, respectively. By reducing the problem to CNF, our tool csb leverages ongoing improvements in propositional model counting and sampling.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.">Model Counting</head><p>As shown in Figure <ref type="figure" target="#fig_0">1</ref>, the model counting part of csb comprises two primary components: (i) a tool for bit-blasting SMT2 formulas into CNFs, and (ii) an off-the-shelf model counter. Phase 1: Bit-blasting. The bit-blasting component takes an input bit-vector formula 𝐹 and outputs a CNF formula 𝐹 bit such that |Sol(𝐹 bit )| = |Sol(𝐹 )|. The most commonly used method for converting a bit-vector formula into a propositional Boolean formula involves representing the formula as an And-Inverter Graph (AIG) circuit, which is subsequently converted into conjunctive normal form (CNF).</p><p>There are multiple techniques available for converting an AIG to CNF, with the two most commonly used being: (i) TseitinEnc: the standard Tseitin encoding <ref type="bibr" target="#b13">[14]</ref> and (ii) TechMap: technology mapping-based logic synthesis <ref type="bibr" target="#b14">[15]</ref>. The TseitinEnc method uses auxiliary variables for sub-circuits of AIG, whereas the TechMap method performs various optimizations on the circuit to produce a minimized CNF. From the perspective of satisfiability, studies have revealed that the performance of the encoding scheme is reliant on the benchmark set being investigated, with TseitinEnc exhibiting superior results in some benchmark sets and TechMap being more effective in others <ref type="bibr" target="#b15">[16]</ref>. In context of csb, TseitinEnc and TechMap showed similar performance, and we use TechMap for bit-blasting.</p><p>Phase 2: Propositional Model Counting. The second phase of csb involves a propositional model counter that takes the CNF formula 𝐹 bit and returns 𝑐, an approximation of |Sol(𝐹 bit )|. We investigated various approaches to model counting, including both compilation-based counters and hashing-based approximate counters. In recent years, there has been a proliferation of model counters, and the annual model counting competitions have demonstrated that different model counters have distinct strengths and weaknesses for various problem types. In the context of this research, we examine the applicability of five model counters within the framework of csb: four compilation-based counters SharpSAT-TD <ref type="bibr" target="#b16">[17]</ref>, Ganak <ref type="bibr" target="#b17">[18]</ref>, ADDMC <ref type="bibr" target="#b18">[19]</ref>, and ExactMC <ref type="bibr" target="#b19">[20]</ref>, and a hashing-based approximate counter ApproxMC <ref type="bibr" target="#b20">[21]</ref>. In csb, we use ApproxMC as the model counter because it shows the best performance on the test instances.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.">Sampling</head><p>As shown in Figure <ref type="figure" target="#fig_0">1</ref>, the sampling mode of csb comprises three primary components: (i) a tool for bit-blasting SMT2 formulas into CNFs, (ii) a CNF sampler to sample solutions (almost) uniformly from the solution space, and (iii) constructing the bit-vector model from the sampled CNF solution. In the following part of this section, we briefly describe the task and available tools for each component.</p><p>Phase 1: Bit-blasting. The bit-blasting component generates a propositional formula 𝐹 bit from the input bit-vector formula 𝐹 , such that there is a one-to-one correspondence between Sol(𝐹 ) and Sol(𝐹 bit ). The techniques used in this part are the same as those in the bit-blasting component of the model counting mode. At this stage, the underlying SMT solver maintains the mapping between variables of 𝐹 and 𝐹 bit , allowing it to map an element of Sol(𝐹 bit ) to the corresponding element of Sol(𝐹 ).</p><p>Phase 2: CNF Sampling. The bit-blasted formula 𝐹 bit is passed to a CNF sampler to generate a sample 𝑆 bit , a randomly selected element from Sol(𝐹 bit ). UniGen <ref type="bibr" target="#b21">[22]</ref> uses hashing-based techniques to achieve almost-uniform sampling. On the other hand, CMSGen <ref type="bibr" target="#b8">[9]</ref> incorporates randomization at various stages of a SAT solver's process, effectively making the solver's output mimic that of a uniform sampler. This approach resembles uniform sampling and meets distribution tests <ref type="bibr" target="#b22">[23]</ref>, validating its utility. In practical scenarios, uniform-like samplers often exhibit superior performance, although some applications necessitate strict uniformity guarantees. Depending on the specific sampling requirements, we employ different CNF samplers: for almost-uniform sampling, we utilize UniGen; for uniform-like sampling, we select CMSGen.</p><p>Phase 3: Model Construction. Once the CNF sampler returns a solution 𝑆 bit , it is passed to the SMT solver, which generates the corresponding bit-vector solution 𝑆. The SMT solver uses the variable mapping from phase 1 to perform this operation.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3.">Preprocessing</head><p>In model counting and sampling, preprocessors attempt to simplify the original problem instance. In practical scenarios, the problem instances are typically rooted in circuits within a specific domain. These circuits are comprised of gates, and the variables correspond to either input or output variables, with the output variables being determined by the input variables. Preprocessing techniques have been developed to effectively handle the input-output bipartition property, as discussed in several studies <ref type="bibr" target="#b23">[24,</ref><ref type="bibr" target="#b24">25,</ref><ref type="bibr" target="#b25">26]</ref>. In csb, we utilize Arjun <ref type="bibr" target="#b25">[26]</ref> as a preprocessor.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4.">Implementation</head><p>A simple approach to build the tool is to use a standalone shell script that interfaces with an SMT solver to generate a CNF file, followed by processing with a model counter or sampler. However, using shell scripts could lead to performance bottlenecks due to the overhead of file read-writes, complicate error handling, and create challenges in deployment and portability by requiring specific environmental setups and external binaries. Therefore, we chose a tightly integrated approach, embedding the counter and samplers directly within the SMT solver as a library. This integration yields a single binary that efficiently produces both model counts and samples.We implement csb using STP as the underlying SMT solver. We integrate ApproxMC to implement the model counter, and UniGen and CMSGen to implement the samplers. We also integrate Arjun as a preprocessor. The default parameters for the approximate model counting mode are 𝜀 = 0.8 and 𝛿 = 0.2, adhering to the standard values used in the model counting community.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Experimental Evaluation</head><p>The evaluation procedure was conducted using the following setup. We conducted all our experiments on a high-performance computer cluster, with each node consisting of an AMD EPYC 7713 CPU. We set the memory limit to 16 GB for all configurations and ran each solver instance on a single core. To adhere to the standard timeout used in model counting competitions, we set the timeout for all experiments to 3600 seconds.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Baseline.</head><p>For the problem of model counting, we compare our performance with the prior state-ofthe-art bit-vector model counter, SMTApproxMC. As noted in the related works, there are no available uniform samplers for bit-vectors, so we evaluate the relative performance of uniform samplers based on the total number of benchmarks. Benchmarks. We collected a substantial set of benchmarks that pertain to the problem of model counting and naturally encode them into bit-vector formulas. The benchmarks were produced using several software tools for various purposes. These include CounterSharp <ref type="bibr" target="#b2">[3]</ref>, which is a quantitative software reliability estimation tool; an algorithm designed for testing robust reachability <ref type="bibr" target="#b1">[2]</ref>; Delphinium, which is a cryptographic tool for automating chosen ciphertext attacks <ref type="bibr" target="#b0">[1]</ref>; and SMC, a previous work on bit-vector counting <ref type="bibr" target="#b10">[11]</ref>. The total number of benchmarks used in our evaluation amounts to 679.</p><p>In this work, we sought to answer the following questions:</p><p>RQ1. How does csb's performance compare with the existing state-of-the-art?</p><p>RQ2. How do the various components of csb, such as model counting, sampling, and bit-blasting, impact its overall performance?</p><p>Summary of Results. In model counting mode, csb can solve over four times more instances than SMTApproxMC. Out of a total of 679 instances, csb can count 643, whereas SMTApproxMC is able to count 135. In sampling mode, csb generated samples from almost all the problem formulas. The uniform-like sampling mode showed better efficiency in generating samples.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>RQ1. Comparison with Prior State-of-the-Art</head><p>We experimented with configurations for csb and compared its performance with SMTApproxMC, the current state-of-the-art bit-vector model counter. Table <ref type="table" target="#tab_0">1</ref> shows the improvement in performance demonstrated by csb. In the cactus plot in Figure <ref type="figure" target="#fig_1">2</ref>, we compare the performance. The 𝑥-axis represents the number of instances, while the 𝑦-axis shows the time taken. A point (𝑖, 𝑗) in the plot indicates that a counter counted 𝑗 benchmarks out of the total benchmarks in a set in less than or equal to 𝑖 seconds.</p><p>The results indicate that csb counted 643 instances, which is four times the number of instances counted by SMTApproxMC, which could count 135 instances. As there is no existing uniform bit-vector sampling tool, we do not have a baseline for comparing csb against. We tested csb on our benchmarks in both sampling modes by asking it to generate 500 samples for each input formula. In Table <ref type="table" target="#tab_0">1</ref>, we compare the performance in terms of number of instances solved and average runtime <ref type="foot" target="#foot_0">1</ref> . Out of 679 instances, in almost-uniform sampling mode csb generated samples for 641 instances, while in uniform-like sampling mode, it solved 662 instances.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>RQ2. Impact of Different Components</head><p>As shown in Section 3, there are multiple components for csb, and there are multiple tools available for each component. To determine which tools to use for each component, we performed experiments. Below, we summarize the impact of each component. Impact of CNF Counters. In the cactus plot of Figure <ref type="figure" target="#fig_3">3</ref>, we compare the performance of the model counters. When csb is combined with the best possible preprocessing settings for each model counter, the best performance is shown by ApproxMC, solving 643 out of 679 benchmarks. The model counter SharpSAT-TD shows the second-best performance, solving 409 benchmarks. Conversely, the performance of other model counters such as ExactMC, ADDMC, and Ganak was poorer, with each solving nearly 300 benchmarks.</p><p>Impact of CNF Samplers. Both CNF samplers demonstrate strong performance, solving over 94% of instances. The average runtime is significantly improved when CMSGen is used as the sampler.</p><p>In Table <ref type="table" target="#tab_0">1</ref>, we compare the performance metrics. Using CMSGen as the sampler, csb solves 21 more instances and reduces the average runtime to 3% of that with UniGen.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Impact of Preprocessing.</head><p>The preprocessors had a minimal positive impact on the performance of exact model counting tools, and in a few cases, they even showed a slight negative effect. For the approximate model counting tool ApproxMC, Arjun demonstrated a positive impact, enabling the solving of 643 instances, which is 473 more than without preprocessing.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Conclusion</head><p>This paper introduces csb, an extension of the SMT solver STP that leverages CNF counters, and samplers for bit-vector formulas. csb enhances performance, achieving a fourfold improvement in bit-vector model counting and efficiently solving uniform sampling of bit-vector constraints. We identify optimal methods for bit-vector counting and explore uniform sampling from SMT formulas.  </p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: The architecture for counting and sampling in csb.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Performance of csb model counter w.r.t. state-of-the-art</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: Performance of csb with different model counters.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1</head><label>1</label><figDesc>Number of instances finished by counting and sampling mode of csb, out of 679 instances.</figDesc><table><row><cell>Counter</cell><cell cols="3">Instances Counted Average Runtime (s)</cell></row><row><cell cols="2">SMTApproxMC</cell><cell>135</cell><cell>5854.8</cell></row><row><cell>csb</cell><cell></cell><cell>643</cell><cell>653.5</cell></row><row><cell>Sampling Mode in csb</cell><cell cols="3">Instances Sampled Average Runtime (s) Median Runtime (s)</cell></row><row><cell>Almost-uniform sampling</cell><cell>641</cell><cell>273.6</cell><cell>74.6</cell></row><row><cell>Uniform-like sampling</cell><cell>662</cell><cell>7.4</cell><cell>1.24</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">We use the PAR-2 score as a proxy for average runtime. PAR-2 score (penalized average runtime) assigns a runtime of two times the time limit for each benchmark not solved by a counter.</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Acknowledgements. We are thankful to anonymous reviewers for their constructive comments to improve this paper. This work was supported in part by National Research Foundation Singapore under its NRF Fellowship Programme [NRF-NRFFAI1-2019-0004], Ministry of Education Singapore Tier 2 Grant [MOE-T2EP20121-0011], Ministry of Education Singapore Tier 1 Grant [R-252-000-B59-114], and NSF awards IIS-1908287, IIS-1939677, and IIS-1942336. Part of this work was completed while Arijit Shaw was a visiting graduate student at the University of Toronto. The computational work for this article was performed on resources of the National Supercomputing Centre, Singapore (https://www.nscc.sg).</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Automating the development of chosen ciphertext attacks</title>
		<author>
			<persName><forename type="first">G</forename><surname>Beck</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Zinkus</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Green</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of USENIX Security</title>
				<meeting>of USENIX Security</meeting>
		<imprint>
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Not all bugs are created equal, but robust reachability can tell the difference</title>
		<author>
			<persName><forename type="first">G</forename><surname>Girol</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Farinier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Bardin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of CAV</title>
				<meeting>of CAV</meeting>
		<imprint>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Quantifying software reliability via model-counting</title>
		<author>
			<persName><forename type="first">S</forename><surname>Teuber</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Weigl</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of Quantitative Evaluation of Systems</title>
				<meeting>of Quantitative Evaluation of Systems</meeting>
		<imprint>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Approximate counting in SMT and value estimation for probabilistic programs</title>
		<author>
			<persName><forename type="first">D</forename><surname>Chistikov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Dimitrova</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Majumdar</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of TACAS</title>
				<meeting>of TACAS</meeting>
		<imprint>
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Approximate probabilistic inference via word-level counting</title>
		<author>
			<persName><forename type="first">S</forename><surname>Chakraborty</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Meel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Mistry</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Vardi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of AAAI</title>
				<meeting>of AAAI</meeting>
		<imprint>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Smtsampler: Efficient stimulus generation from complex smt constraints</title>
		<author>
			<persName><forename type="first">R</forename><surname>Dutra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Bachrach</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Sen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of ICCAD</title>
				<meeting>of ICCAD</meeting>
		<imprint>
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Guidedsampler: coverage-guided sampling of smt solutions</title>
		<author>
			<persName><forename type="first">R</forename><surname>Dutra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Bachrach</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Sen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of FMCAD</title>
				<meeting>of FMCAD</meeting>
		<imprint>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">On testing of uniform samplers</title>
		<author>
			<persName><forename type="first">S</forename><surname>Chakraborty</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">S</forename><surname>Meel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of AAAI</title>
				<meeting>of AAAI</meeting>
		<imprint>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Designing samplers is easy: The boon of testers</title>
		<author>
			<persName><forename type="first">P</forename><surname>Golia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Soos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Chakraborty</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">S</forename><surname>Meel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of FMCAD</title>
				<meeting>of FMCAD</meeting>
		<imprint>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">A scalable approximate model counter</title>
		<author>
			<persName><forename type="first">S</forename><surname>Chakraborty</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">S</forename><surname>Meel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">Y</forename><surname>Vardi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of CP</title>
				<meeting>of CP</meeting>
		<imprint>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Bit-vector model counting using statistical estimation</title>
		<author>
			<persName><forename type="first">S</forename><surname>Kim</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Mccamant</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of TACAS</title>
				<meeting>of TACAS</meeting>
		<imprint>
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Smt sampling via model-guided approximation</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">I</forename><surname>Peled</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B.-C</forename><surname>Rothenberg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Itzhaky</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of FM</title>
				<meeting>of FM</meeting>
		<imprint>
			<date type="published" when="2023">2023</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Algorithmic Improvements in Approximate Counting for Probabilistic Inference: From Linear to Logarithmic SAT Calls</title>
		<author>
			<persName><forename type="first">S</forename><surname>Chakraborty</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">S</forename><surname>Meel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">Y</forename><surname>Vardi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of IJCAI</title>
				<meeting>of IJCAI</meeting>
		<imprint>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">On the complexity of derivation in propositional calculus</title>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">S</forename><surname>Tseitin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Automation of reasoning</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="1983">1983</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Applying logic synthesis for speeding up SAT</title>
		<author>
			<persName><forename type="first">N</forename><surname>Eén</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Mishchenko</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Sörensson</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of SAT</title>
				<meeting>of SAT</meeting>
		<imprint>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Beaver: Engineering an efficient smt solver for bit-vector arithmetic</title>
		<author>
			<persName><forename type="first">S</forename><surname>Jha</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Limaye</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">A</forename><surname>Seshia</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of CAV</title>
				<meeting>of CAV</meeting>
		<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Integrating tree decompositions into decision heuristics of propositional model counters</title>
		<author>
			<persName><forename type="first">T</forename><surname>Korhonen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Järvisalo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of CP</title>
				<meeting>of CP</meeting>
		<imprint>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Ganak: A scalable probabilistic exact model counter</title>
		<author>
			<persName><forename type="first">S</forename><surname>Sharma</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Roy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Soos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">S</forename><surname>Meel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of IJCAI</title>
				<meeting>of IJCAI</meeting>
		<imprint>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">ADDMC: Weighted model counting with algebraic decision diagrams</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Dudek</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">H</forename><surname>Phan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">Y</forename><surname>Vardi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of AAAI</title>
				<meeting>of AAAI</meeting>
		<imprint>
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">The power of literal equivalence in model counting</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Lai</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">S</forename><surname>Meel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">H</forename><surname>Yap</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of AAAI</title>
				<meeting>of AAAI</meeting>
		<imprint>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">BIRD: engineering an efficient CNF-XOR SAT solver and its applications to approximate model counting</title>
		<author>
			<persName><forename type="first">M</forename><surname>Soos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">S</forename><surname>Meel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of AAAI</title>
				<meeting>of AAAI</meeting>
		<imprint>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">On parallel scalable uniform sat witness generation</title>
		<author>
			<persName><forename type="first">S</forename><surname>Chakraborty</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">J</forename><surname>Fremont</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">S</forename><surname>Meel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">A</forename><surname>Seshia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">Y</forename><surname>Vardi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of TACAS</title>
				<meeting>of TACAS</meeting>
		<imprint>
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">On testing of samplers</title>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">S</forename><surname>Meel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><forename type="middle">P</forename><surname>Pote</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Chakraborty</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of NeurIPS</title>
				<meeting>of NeurIPS</meeting>
		<imprint>
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">Improving model counting by leveraging definability</title>
		<author>
			<persName><forename type="first">J.-M</forename><surname>Lagniez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Lonca</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Marquis</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of IJCAI</title>
				<meeting>of IJCAI</meeting>
		<imprint>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">Definability for model counting</title>
		<author>
			<persName><forename type="first">J.-M</forename><surname>Lagniez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Lonca</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Marquis</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Artificial Intelligence</title>
		<imprint>
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">An efficient independent support computation technique and its applications to counting and sampling</title>
		<author>
			<persName><forename type="first">M</forename><surname>Soos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">S</forename><surname>Meel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Arjun</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of ICCAD</title>
				<meeting>of ICCAD</meeting>
		<imprint>
			<date type="published" when="2022">2022</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
