Skip to content
Open access

QuickChecking Convergence of Rewriting Systems (Functional Pearl)

Aug 2026 · Proc. ACM Program. Lang. · Vol 10, pp. 160 - 173 · 0 citations · 16 references
Computer Science

TL;DR

A QuickCheck testing method based on generating and shrinking random execution traces based on checking if the first and last terms of a generated trace share the same deterministic normal form that efficiently finds counterexamples and enables fast, robust shrinking.

Abstract

Term rewriting systems are a common tool in automated reasoning and semantics of programming languages, and many practical applications require these systems to be convergent. While automated tools and theory exist to establish convergence, this paper is concerned with a practical method for testing it to quickly find useful counterexamples. Standard property-based testing approaches struggle here: exhaustively computing all normal forms is fundamentally flawed and too slow, while generating random normal forms makes counterexample minimization (shrinking) fragile due to dependencies on earlier generated test data. To solve this, we introduce a QuickCheck testing method based on generating and shrinking random execution traces. By checking if the first and last terms of a generated trace share the same deterministic normal form, we remove the data dependency between generators. This approach yields a property that efficiently finds counterexamples and enables fast, robust shrinking. We demonstrate the effectiveness of this method on various examples, ranging from group theory equations to distributed process calculus.

Read PDF

Similar papers

2026

Certified Infinite Descent Criteria in Isabelle/HOL

A reusable, locale-based framework of sloped graphs is developed that defines Infinite Descent at an abstract level, independently of any concrete graph encoding, and formalize tool-facing sufficient criteria, prove their soundness, and certify incompleteness where appropriate via verified counterexamples.

Jamie Wright, L. Cohen, R. Rowe et al. · 1 citation
Open access Aug 2026

Compositional Generator Equivalence

This paper provides a formal account of the syntax and semantics of Hedgehog, a popular PBT framework, and proves that Hedgehog→ possesses a compositional distribution semantics, and introduces Hedgehog→, a restricted version of the language based on the arrow calculus, and proves that Hedgehog→ possesses a composition...

Anthony Vandikas, Kiarash Sotoudeh, Marsha Chechik · 0 citations
Review Aug 2026

Combining Tests and Proofs with Contracts for Better Software Verification

Three applications, leveraging on the mechanisms of Eiffel and design by contract, hold significant promise to address some of the challenges of program testing, software maintenance, and automatic program repair.

Li Huang, Bertrand Meyer, M. Oriol · 0 citations

A light-weight proof checker for TSTP refutations

A proof checker called Nörgler is introduced that builds upon and extends the established approach pioneered by GDV and supports checking propositional, (untyped and typed) first-order, and higher-order refutations represented in TSTP.

Melanie Taprogge, H. Sariyanto, Alexander Steen · 1 citation
Preprint Aug 2026

Towards a Deductive Verification Infrastructure for Weighted Programming

This work presents a deductive verification framework based on a weighted assertion language and an intermediate verification language, whose weight domains are ordered structures with implication and coimplication, which let verification conditions express lower- and upper-bound obligations internally.

Emma Ahrens, Samuel Rode, Philipp Schröer et al. · 0 citations
2026

Panbench: A Comparative Benchmarking Tool for Dependently-Typed Languages

This work creates an “over language” in which to express all the information the authors need to be able to output correct and idiomatic syntax for each of their targets, and details the design of the extensible system.

Reed Mullanix, J. Carette · 0 citations

We use cookies to run the site and, with your consent, for analytics and to show ads. See our Cookie Policy.