SearcharxivSearch

arXiv subjects

Yechuan Xia

Publications and source records attributed to Yechuan Xia.

3 recordsLinked to original sources

BTOR2-Based C Program Verification via Hardware Model Checking

Program verification tools often rely on specific intermediate representations and analysis backends, limiting the reuse of verification algorithms and model checkers across frameworks. In contrast, hardware model checking has developed a mature backend ecosystem, where standard formats such as BTOR2 support reusable algorithms for counterexample search and inductive safety proving. Applying these capabilities to C requires translating assertion-based programs into transition systems that hardware model checkers can directly process. We present C2Btor, a method for encoding such verification tasks into BTOR2 models. C2Btor uses a program counter to capture control transfers, represents data states and memory objects with bit-vectors and arrays, and maps assumptions and assertion checks into BTOR2 constraints and bad-state properties. We evaluate C2Btor on SV-COMP C ReachSafety benchmarks and a curated assertion-category benchmark suite, comparing it with representative program verification tools. C2Btor correctly solves 263 tasks, 101 more than CBMC configured with bounded model checking, and is especially effective on bit-vector benchmarks, where it solves 75.5% of the tasks with no wrong verdicts. These results show that the BTOR2 route allows C program verification to benefit from advances in hardware model-checking backends, expanding the available capability for counterexample search, inductive safety proving, and word-level transition-system reasoning.

cs.SE

Understanding CDCL Solvers via Scalability Studies and Proofdoors

Over the past several decades, CDCL SAT solvers have proven remarkably effective on large industrial formulas, despite SAT being NP-complete and widely believed to be intractable. While considerable empirical research has been done on solver performance over benchmarks like the SAT competition, as well as scaling studies on random and crafted families, surprisingly little effort has gone into systematic scaling studies over industrial instances. To address this gap, we collect a large benchmark of Bounded Model Checking (BMC) instances (76,600+ across 766 families) and perform a systematic scaling study of solver performance. We observe a spectrum: some families scale linearly, others polynomially or exponentially. Building on this foundation, we study the structural parameters that have been proposed to explain this phenomenon. We first show that previously proposed parameters -- clause-variable ratio, treewidth, and community structure -- fail to discriminate between the linear and exponential regimes. By contrast, the recently proposed \emph{proofdoor} parameter explains this phenomenon well. Informally, a proofdoor is a sequence of interpolants between chunks of a formula, where each interpolant represents the solver's memoization of reasoning effort on chunks it has already analyzed. In support of the proofdoor hypothesis, we make three key contributions. First, we empirically show that CDCL solvers do compute small proofdoors for linearly-scaling BMC instances. Second, we show that for exponentially-scaling instances, sampled proofdoors scale exponentially and are typically not incrementally absorbed. Third, we show that scrambling linearly-scaling instances yields larger proofdoor sizes relative to pre-scrambling, relating poor branching order to larger proofdoor sizes and drop in solver performance.

cs.LO

Identifying Boundary Conditions with the Syntax and Semantic Information of Goals

In goal-oriented requirement engineering, boundary conditions(BC) are used to capture the divergence of goals, i.e., goals cannot be satisfied as a whole in some circumstances. As the goals are formally described by temporal logic, solving BCs automatically helps engineers judge whether there is negligence in the goal requirements. Several efforts have been devoted to computing the BCs as well as to reducing the number of redundant BCs as well. However, the state-of-the-art algorithms do not leverage the logic information behind the specification and are not efficient enough for use in reality. In addition, even though reducing redundant BCs are explored in previous work, the computed BCs may be still not valuable to engineering for debugging. In this paper, we start from scratch to establish the fundamental framework for the BC problem. Based on that, we first present a new approach SyntacBC to identify BCs with the syntax information of goals. The experimental results show that this method is able to achieve a >1000X speed-up than the previous state-of-the-art methodology. Inspired by the results, we found the defects of BCs solved by our method and also by the previous ones, i.e., most of BCs computed are difficult for debugging. As a result, we leverage the semantics information of goals and propose an automata-based method for solving BCs, namely SemanticBC, which can not only find the minimal scope of divergence, but also produce easy-to-understand BCs without losing performance.

cs.SE