Papers for

software verification engineers

Papers whose findings have a practical use for this group, as judged from the abstract. Open a paper to read what it means in practice.

Programmable tool helps build and improve compiler rewrite rules

Equality saturation theory exploration `a la carte

Abstract: Rewrite rules are critical in equality saturation, an increasingly popular technique in optimizing compilers, synthesizers, and verifiers. Unfortunately, developing high-quality rulesets is difficult and error-prone. Recent work to automatically infer rewrite rules does not scale to large terms or grammars. Users struggle to guide inference and incrementally construct rulesets because existing rule inference tools are monolithic and opaque. As a result, most equality saturation users still manually develop and maintain rulesets. This paper proposes Enumo, a new domain-specific language for programmable theory exploration. Enumo provides a small set of core operators that enable users to strategically guide rule inference and incrementally build rulesets. Short Enumo programs easily replicate results from state-of-the-art tools like Ruler, but Enumo programs can also scale to infer deeper rules from larger grammars than prior approaches. Enumo's composable operators even facilitate developing new strategies for ruleset inference. We introduce a new fast-forwarding strategy which does not require evaluating terms in the target language, and thus supports domains that were out of scope for prior work. Enumo is also easy to extend: two new operators suffice to incorporate large language models into rule inference, where they complement guided search. We evaluate Enumo and fast-forwarding across a variety of domains. Compared to state-of-the-art techniques, Enumo can synthesize better rulesets over a diverse set of domains, in some cases matching the effects of manually developed rulesets in systems driven by equality saturation.

Sun 13 SeptProgramming Languages
The gist
Making computers run programs faster or prove program properties often needs rules to rewrite code in smarter ways, but creating these rules is hard. The authors designed Enumo, a new language that helps users write and improve these rules step by step, combining automated help and human guidance. Enumo can handle more complex rules and bigger programming languages than older tools, even using large language models to assist. Their approach can produce rules as good as ones made by hand in some cases and works faster without checking code outcomes directly.
Open 2609.14527v1

Counting distinct topological bases for finite sets of size N

On the Number of Distinct Topological Bases of a Finite Set of Size $N$

Abstract: For a finite set $S$ with $\lvert S\rvert = N$, the number of families $\mathcal{B} \subseteq \mathcal{P}(S)$ that are topological bases is $\#(N) = \sum_{\mathcal{T} \in \operatorname{Top}(S)} 2^{\lvert\mathcal{T}\rvert - \lvert\mathcal{M}_{\mathcal{T}}\rvert}$, where $\mathcal{M}_{\mathcal{T}}$ is the canonical minimal basis of minimal open neighborhoods. The identity is proved in Lean 4 / Mathlib (`CARDB.lean`): bases generating $\mathcal{T}$ are exactly the sets with $\mathcal{M}_{\mathcal{T}} \subseteq \mathcal{B} \subseteq \mathcal{T}$. The small-$N$ table and the discrete-dominance sandwich are proved in `CARDB/SmallN.lean` and `CARDB/Asymptotics.lean`.

Sat 12 SeptLogic in Computer Science
The gist
When you have a set with a certain number of items, there are many ways to build a structure called a topology on it. The authors found a precise formula for counting how many different basic building blocks, called bases, can generate these topologies. They used a computer proof assistant called Lean 4 to verify their results and explored small examples and growth behavior. This work helps in understanding the underlying complexity of finite topologies.
Open 2609.14102v1

Improving SMT solvers by learning from non-ground conflicts

Extending SMT Solving with Non-Ground Clause Learning

Abstract: Quantifier instantiation is currently the main approach to non-ground SMT solving: solvers generate ground instances and solve the resulting ground SMT problems with CDCL(T)-style reasoning. When a conflict is found, conflict analysis learns only a ground clause, even though the conflict comes from instances of non-ground clauses. Yet non-ground reasoning can give exponentially shorter proofs than purely ground reasoning. We propose a calculus that consists of ground instantiations, CDCL(T)-style rules, and non-ground conflict analysis. The solver reasons on ground instances, but the resolution steps of conflict analysis are performed on their original non-ground clauses. This produces learned clauses that are typically more general than the ground conflict. With a suitable strategy, the learned clauses are even non-redundant. We also show how chronological backtracking can be included in SMT solving. Our calculus gives a common setting for CDCL(T)-style SMT solving, a range of instantiation-based procedures, and non-ground clause learning, and we prove that it simulates CDCL, SCL(FOL), SCL(T), and even Resolution.

Thu 10 SeptArtificial IntelligenceLogic in Computer Science
The gist
Solvers that check logical formulas often work by turning general rules into specific examples. When a contradiction happens, current methods only learn from these specific examples, missing the chance to learn more general lessons. The authors develop a new way to analyze contradictions that reasons directly with the original general rules, allowing the solver to learn broader facts and avoid repeating mistakes. This approach also integrates a technique called chronological backtracking to make the solving process more efficient.
Open 2609.11509v1

Epistemic dynamic logic models noisy runtime verification monitorability

A Formal Framework for Noisy Runtime Verification

Abstract: We introduce the logic EDMon---an epistemic dynamic logic meant to model monitorability concepts in noisy runtime verification. Its syntax and semantics are defined and explained and the connection between EDMon and monitorability and noisy runtime verification concepts is explored. We then demonstrate that EDMon is sufficient to capture many of the results in the noisy runtime verification literature and catalog its relation to nearby logics and describe a large class of its theorems.

Wed 9 SeptLogic in Computer Science
The gist
Computers often check their behavior while running, but noise or errors can make this hard. The paper presents a new logic called EDMon that helps describe and understand how to monitor programs even when the observations are noisy. The authors show how EDMon captures many existing ideas in noisy runtime verification and connects to related logics. This helps clarify what can and cannot be reliably monitored under noisy conditions.
Open 2609.10462v1

Simpler proof shows small automata separate binary words efficiently

An Elementary Proof of the $\widetilde O(n^{1/3})$ Bound for Separating Words

Abstract: For two distinct binary words of length $n$, the separating words problem asks for a small deterministic finite automaton that accepts exactly one of them. Chase proved a $\widetilde O(n^{1/3})$ upper bound using a complex-analytic estimate for sparse polynomials. We replace that estimate by a finite-difference argument and a second-order real recurrence cutoff. The resulting elementary proof gives an explicit bound of $O(n^{1/3}(\log n)^{7/3})$ states.

Tue 8 SeptFormal Languages and Automata TheoryComputational Complexity
The gist
The paper deals with a puzzle about telling two different binary strings apart using a very simple machine called a deterministic finite automaton (DFA). Previous work showed that such a machine only needs about the cube root of the string length in states, but the proof was complicated. The authors found a much simpler way to prove this, using basic math tools, and gave a clear formula for how big the machine needs to be. This makes understanding and using the result easier for people working with these machines.
Open 2609.08191v1