EDBT 2026 Demo / reviewers in the wild / expert
Nicholas Smallbone
dblp:40/7376 · also Nick Smallbone
· DBLP profile ↗
16ranked-venue papers
2as first author
4since 2021 · last 2026
0000-0003-2880-6121ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 9 · 1 first-author · 2 since 2021Artificial intelligence and machine learning · 8 · 1 first-author · 3 since 2021Theory of computation · 8 · 1 first-author · 3 since 2021Systems, architecture and hardware · 3 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Twitch: Learning Abstractions for Equational Theorem ProvingabstractAbstract Automated theorem provers often perform better when told what shapes of terms are interesting. In this paper we discover interesting term shapes automatically, in the form of abstractions , term patterns that occur over and over again in proofs. Our tool Twitch produces abstractions automatically and can do so in two ways: (1) from a partial, failed proof of a conjecture; (2) from successful proofs of other theorems in the same domain. Twitch is built on top of Stitch , a tool designed for discovering reusable library functions in program synthesis tasks. We have also extended Twee, an equational theorem prover, to use the generated abstractions. We evaluate Twitch on a set of unit equality (UEQ) problems from TPTP, and show that it proves problems previously unsolved by Twee, as well as yielding speed-ups on many other problems. Guy Axelrod, Moa Johansson 0001, Nicholas Smallbone |
IJCAR (1) | 3 |
| 2024 | Lemma Discovery and Strategies for Automated InductionabstractAbstract We investigate how the automated inductive proof capabilities of the first-order prover Vampire can be improved by adding lemmas conjectured by the QuickSpec theory exploration system and by training strategy schedules specialized for inductive proofs. We find that adding lemmas improves performance (measured in number of proofs found for benchmark problems) by $$40\%$$ 40 % compared to Vampire’s plain structural induction as baseline. Strategy training alone increases the number of proofs found by $$130\%$$ 130 % , and the two methods in combination provide an increase of $$183\%$$ 183 % . By combining strategy training and lemma discovery we can prove more inductive benchmarks than previous state-of-the-art inductive proof systems (HipSpec and CVC4). Sólrún Halla Einarsdóttir, Márton Hajdú, Moa Johansson 0001, Nicholas Smallbone, Martin Suda 0001 |
IJCAR (1) | 4 |
| 2022 | Testing Cyber-Physical Systems Using a Line-Search Falsification MethodabstractCyber-physical systems (CPSs) are complex and exhibit both continuous and discrete dynamics, hence it is difficult to guarantee that they satisfy given specifications, i.e., the properties that must be fulfilled by the system. Falsification of temporal logic properties is a testing approach that searches for counterexamples of a given specification that can be used to increase the confidence that a CPS does fulfill its specifications. Falsification can be done using random search methods or optimization methods, both of which have their own benefits and drawbacks. This article introduces two methods that exploit randomness to different degrees: 1) the optimization-free Hybrid-Corner-Random (HCR) and 2) the direct-search method Line-Search Falsification (LSF). HCR combines randomly chosen parameter values with extreme parameter values, which performs surprisingly well on benchmark evaluations. The gradient-free optimization-based LSF optimizes over line segments through a vector of inputs in the$n$-dimensional parameter space. The two methods are compared to the Nelder-Mead and SNOBFIT methods, using a well-known set of benchmark problems and LSF shows better performance than any of the evaluated methods. Zahra Ramezani, Koen Claessen, Nicholas Smallbone, Martin Fabian, Knut Åkesson |
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. | 3 |
| 2021 | Twee: An Equational Theorem ProverabstractAbstract Twee is an automated theorem prover for equational logic. It implements unfailing Knuth-Bendix completion with ground joinability testing and a connectedness-based redundancy criterion. It came second in the UEQ division of CASC-J10, solving some problems that no other system solved. This paper describes Twee’s design and implementation. Nicholas Smallbone |
CADE | 1 |
| 2020 | Enhancing Temporal Logic Falsification With Specification Transformation and Valued BooleansabstractCyber-physical systems (CPSs) are systems with both physical and software components, for example, cars and industrial robots. Since these systems exhibit both discrete and continuous dynamics, they are complex and it is thus difficult to verify that they behave as expected. Falsification of temporal logic properties is an approach to find counterexamples to CPSs by means of simulation. In this article, we propose two additions to enhance the capability of falsification and make it more viable in a large-scale industrial setting. The first addition is a framework for transforming specifications from a signal-based model into signal temporal logic. The second addition is the use of valued Booleans and an additive robust semantics in the falsification process. We evaluate the performance of the additive robust semantics on a set of benchmark models, and we can see that which semantics are preferable depend both on the model and on the specification. Johan Lidén Eddeland, Koen Claessen, Nicholas Smallbone, Zahra Ramezani, Sajed Miremadi, Knut Åkesson |
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. | 3 |
| 2019 | Evaluating Two Semantics for Falsification using an Autonomous Driving ExampleabstractWe consider the falsification of temporal logic properties as a method to test complex systems, such as autonomous systems. Since these systems are often safety-critical, it is important to assess whether they fulfill given specifications or not. An adaptive cruise controller for an autonomous car is considered where the closed-loop model has unknown parameters and an important problem is to find parameter combinations for which given specification are broken. We assume that the closed-loop system can be simulated with the known given parameters, no other information is available to the testing framework. The specification, such as, the ability to avoid collisions, is expressed using Signal Temporal Logic (STL). In general, systems consist of a large number of parameters, and it is not possible or feasible to explicitly enumerate all combinations of the parameters. Thus, an optimization-based approach is used to guide the search for parameters that might falsify the specification. However, a key challenge is how to select the objective function such that the falsification of the specification, if it can be falsified, can be falsified using as few simulations as possible. For falsification using optimization it is required to have a measure representing the distance to the falsification of the specification. The way the measure is defined results in different objective functions used during optimization. Different measures have been proposed in the literature and in this paper the properties of the Max Semantics (MAX) and the Mean Alternative Robustness Value (MARV) semantics are discussed. After evaluating these two semantics on an adaptive cruise control example, we discuss their strengths and weaknesses to better understand the properties of the two semantics. Zahra Ramezani, Nicholas Smallbone, Martin Fabian, Knut Åkesson |
INDIN | 2 |
| 2017 | QuickSpec: a lightweight theory exploration tool for programmers (system demonstration)abstractThis document gives the outline of a system demonstration for the QuickSpec theory exploration tool. Maximilian Algehed, Koen Claessen, Moa Johansson 0001, Nicholas Smallbone |
Haskell | 4 |
| 2017 | Quick specifications for the busy programmerabstractAbstract QuickSpec is a theory exploration system which tests a Haskell program to find equational properties of it, automatically. The equations can be used to help understand the program, or as lemmas to help prove the program correct. QuickSpec is largely automatic: the user just supplies the functions to be tested and QuickCheck data generators. Previous theory exploration systems, including earlier versions of QuickSpec itself, scaled poorly. This paper describes a new architecture for theory exploration with which we can find vastly more complex laws than before, and much faster. We demonstrate theory exploration in QuickSpec on problems both from functional programming and mathematics. Nicholas Smallbone, Moa Johansson 0001, Koen Claessen, Maximilian Algehed |
J. Funct. Program. | 1 |
| 2015 | TIP: Tools for Inductive Provers
Dan Rosén, Nicholas Smallbone |
LPAR | 2 |
| 2015 | TIP: Tons of Inductive Problems
Koen Claessen, Moa Johansson 0001, Dan Rosén, Nicholas Smallbone |
CICM | 4 |
| 2014 | An Expressive Semantics of Mocking
Josef Svenningsson, Hans Svensson, Nicholas Smallbone, Thomas Arts, Ulf Norell, John Hughes 0001 |
FASE | 3 |
| 2014 | Hipster: Integrating Theory Exploration in a Proof Assistant
Moa Johansson 0001, Dan Rosén, Nicholas Smallbone, Koen Claessen |
CICM | 3 |
| 2013 | Automating Inductive Proofs Using Theory Exploration
Koen Claessen, Moa Johansson 0001, Dan Rosén, Nicholas Smallbone |
CADE | 4 |
| 2013 | Encoding Monomorphic and Polymorphic Types
Jasmin Blanchette, Sascha Böhme, Andrei Popescu 0001, Nicholas Smallbone |
TACAS | 4 |
| 2011 | Sort It Out with Monotonicity - Translating between Many-Sorted and Unsorted First-Order Logic
Koen Claessen, Ann Lillieström, Nicholas Smallbone |
CADE | 3 |
| 2009 | Finding race conditions in Erlang with QuickCheck and PULSEabstractWe address the problem of testing and debugging concurrent, distributed Erlang applications. In concurrent programs, race conditions are a common class of bugs and are very hard to find in practice. Traditional unit testing is normally unable to help finding all race conditions, because their occurrence depends so much on timing. Therefore, race conditions are often found during system testing, where due to the vast amount of code under test, it is often hard to diagnose the error resulting from race conditions. We present three tools (QuickCheck, PULSE, and a visualizer) that in combination can be used to test and debug concurrent programs in unit testing with a much better possibility of detecting race conditions. We evaluate our method on an industrial concurrent case study and illustrate how we find and analyze the race conditions. Koen Claessen, Michal H. Palka, Nicholas Smallbone, John Hughes 0001, Hans Svensson, Thomas Arts, Ulf T. Wiger |
ICFP | 3 |