Peter Lammich

dblp:49/5258 · DBLP profile ↗
← Back
46ranked-venue papers
24as first author
14since 2021 · last 2026
0000-0003-3576-0504ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Theory of computation · 26 · 17 first-author · 8 since 2021Software engineering, systems software and programming languages · 19 · 6 first-author · 7 since 2021Artificial intelligence and machine learning · 13 · 8 first-author · 4 since 2021Security and privacy · 1
YearPublicationVenuePosition
2026 Fractional Separation Logic in Isabelle LLVM
abstract
We present a shallow embedding of fractional separation logic in Isabelle/HOL, based on fractional separation algebras with unbounded fractions. To support flexible ownership splitting and recombination, we use nominal labels that enable systematic distribution and collection of fractional permissions across separating conjunctions. The logic is integrated into a verification condition generator that automates substantial parts of fraction arithmetic and label reasoning, significantly reducing manual proof effort. As a backend, we connect the framework to Isabelle LLVM, enabling the verification of executable LLVM code. As a case study, we verify a parallel matrix-vector multiplication. The example illustrates recursive reasoning, parallel writes to disjoint segments of the result vector, and shared read access to the input vector via fractional permissions.
Peter Lammich
ITP1
2025 A Formally Verified IEEE 754 Floating-Point Implementation of Interval Iteration for MDPs
abstract
Abstract We present an efficiently executable, formally verified implementation of interval iteration for MDPs. Our correctness proofs span the entire development from the high-level abstract semantics of MDPs to a low-level implementation in LLVM that is based on floating-point arithmetic. We use the Isabelle/HOL proof assistant to verify convergence of our abstract definition of interval iteration and employ step-wise refinement to derive an efficient implementation in LLVM code. To that end, we extend the Isabelle Refinement Framework with support for reasoning about floating-point arithmetic and directed rounding modes. We experimentally demonstrate that the verified implementation is competitive with state-of-the-art tools for MDPs, while providing formal guarantees on the correctness of the results.
Bram Kohlen, Maximilian Schäffeler, Mohammad Abdulaziz, Arnd Hartmanns, Peter Lammich
CAV (2)5
2025 Verifying an Efficient Algorithm for Computing Bernoulli Numbers
abstract
The Bernoulli numbers Bk are a sequence of rational numbers that is ubiquitous in mathematics, but difficult to compute efficiently (compared to e.g. approximating π). In 2008, Harvey gave the currently fastest known practical way for computing them: his algorithm computes Bk mod p in time O(plog1+o(1) p). By doing this for O(k) many small primes p in parallel and then combining the results with the Chinese Remainder Theorem, one recovers the value of Bk as a rational number in O(k2 log2+o(1) k) time. One advantage of this approach is that the expensive part of the algorithm is highly parallelisable and has very low memory requirements. This algorithm still holds the world record with its computation of B108. We give a verified efficient LLVM implementation of this algorithm. This was achieved by formalising the necessary mathematical background theory in Isabelle/HOL, proving an abstract version of the algorithm correct, and refining this abstract version down to LLVM using Lammich’s Isabelle-LLVM framework, including many low-level optimisations. The performance of the resulting LLVM code is comparable with Harvey’s original unverified and hand-optimised C++ implementation.
Manuel Eberl, Peter Lammich
ITP2
2024 Efficient Formally Verified Maximal End Component Decomposition for MDPs
abstract
Abstract Identifying a Markov decision process’s maximal end components is a prerequisite for applying sound probabilistic model checking algorithms. In this paper, we present the first mechanized correctness proof of a maximal end component decomposition algorithm, which is an important algorithm in model checking, using the Isabelle/HOL theorem prover. We iteratively refine the high-level algorithm and proof into an imperative LLVM bytecode implementation that we integrate into the Modest Toolset ’s existing model checker. We bring the benefits of interactive theorem proving into practice by reducing the trusted code base of a popular probabilistic model checker and we experimentally show that our new verified maximal end component decomposition in performs on par with the tool’s previous unverified implementation.
Arnd Hartmanns, Bram Kohlen, Peter Lammich
FM (1)3
2024 Fast and Verified UNSAT Certificate Checking
abstract
Abstract We describe a formally verified checker for unsatisfiability certificates in the LRAT format, which can be run in parallel with the SAT solver, processing the certificate while it is being produced. It is implemented time and memory efficiently, thus increasing the trust in the SAT solver at low additional cost. The verification is done w.r.t. a grammar of the DIMACS format and a semantics of CNF formulas, down to the LLVM code of the checker. In this paper, we report on the checker and its design process using the Isabelle-LLVM stepwise refinement approach.
Peter Lammich
IJCAR (1)1
2024 Refinement of Parallel Algorithms Down to LLVM: Applied to Practically Efficient Parallel Sorting
abstract
Abstract We present a stepwise refinement approach to develop verified parallel algorithms, down to efficient LLVM code. The resulting algorithms’ performance is competitive with their counterparts implemented in C++. Our approach is backwards compatible with the Isabelle Refinement Framework, such that existing sequential formalizations can easily be adapted or re-used. As case study, we verify a parallel quicksort algorithm that is competitive to unverified state-of-the-art algorithms.
Peter Lammich
J. Autom. Reason.1
2023 Fast Verified SCCs for Probabilistic Model Checking
Arnd Hartmanns, Bram Kohlen, Peter Lammich
ATVA (1)3
2023 A More Pragmatic CDCL for IsaSAT and Targetting LLVM (Short Paper)
abstract
Abstract IsaSAT is the most advanced verified SAT solver, but it did not yet feature inprocessing (to simplify and strengthen clauses). In order to improve performance, we enriched the base calculus to not only do CDCL but also inprocess clauses. We also replaced the target of our code synthesis by Isabelle/LLVM. With these improvements, we can solve 4 times more SAT Competition 2022 problems than the original IsaSAT version, and 4.5 times more problems than any other verified SAT solver we are aware of. Additionally, our changes significantly reduce the trusted code base of our verification.
Mathias Fleury, Peter Lammich
CADE2
2023 WasmRef-Isabelle: A Verified Monadic Interpreter and Industrial Fuzzing Oracle for WebAssembly
abstract
We present WasmRef-Isabelle, a monadic interpreter for WebAssembly written in Isabelle/HOL and proven correct with respect to the WasmCert-Isabelle mechanisation of WebAssembly. WasmRef-Isabelle has been adopted and deployed as a fuzzing oracle in the continuous integration infrastructure of Wasmtime, a widely used WebAssembly implementation. Previous efforts to fuzz Wasmtime against WebAssembly's official OCaml reference interpreter were abandoned by Wasmtime's developers after the reference interpreter exhibited unacceptable performance characteristics, which its maintainers decided not to fix in order to preserve the interpreter's close definitional correspondence with the official specification. With WasmRef-Isabelle, we achieve the best of both worlds - an interpreter fast enough to be useable as a fuzzing oracle that also maintains a close correspondence with the specification through a mechanised proof of correctness. We verify the correctness of WasmRef-Isabelle through a two-step refinement proof in Isabelle/HOL. We demonstrate that WasmRef-Isabelle significantly outperforms the official reference interpreter, has performance comparable to a Rust debug build of the industry WebAssembly interpreter Wasmi, and competes with unverified oracles on fuzzing throughput when deployed in Wasmtime's fuzzing infrastructure. We also present several new extensions to WasmCert-Isabelle which enhance WasmRef-Isabelle's utility as a fuzzing oracle: we add support for a number of upcoming WebAssembly features, and fully mechanise the numeric semantics of WebAssembly's integer operations.
Conrad Watt, Maja Trela, Peter Lammich, Florian Märkl
Proc. ACM Program. Lang.3
2022 Refinement of Parallel Algorithms down to LLVM
Peter Lammich
ITP1
2022 For a Few Dollars More: Verified Fine-Grained Algorithm Analysis Down to LLVM
abstract
We present a framework to verify both, functional correctness and (amortized) worst-case complexity of practically efficient algorithms. We implemented a stepwise refinement approach, using the novel concept of resource currencies to naturally structure the resource analysis along the refinement chain, and allow a fine-grained analysis of operation counts. Our framework targets the LLVM intermediate representation. We extend its semantics from earlier work with a cost model. As case studies, we verify the amortized constant time push operation on dynamic arrays and the O ( n log n ) introsort algorithm, and refine them down to efficient LLVM implementations. Our sorting algorithm performs on par with the state-of-the-art implementation found in the GNU C++ Library, and provably satisfies the complexity required by the C++ standard.
Maximilian P. L. Haslbeck, Peter Lammich
ACM Trans. Program. Lang. Syst.2
2021 For a Few Dollars More - Verified Fine-Grained Algorithm Analysis Down to LLVM
abstract
Abstract We present a framework to verify both, functional correctness and worst-case complexity of practically efficient algorithms. We implemented a stepwise refinement approach, using the novel concept of resource currencies to naturally structure the resource analysis along the refinement chain, and allow a fine-grained analysis of operation counts. Our framework targets the LLVM intermediate representation. We extend its semantics from earlier work with a cost model. As case study, we verify the correctness and $$O(n\log n)$$ O ( n log n ) worst-case complexity of an implementation of the introsort algorithm, whose performance is on par with the state-of-the-art implementation found in the GNU C++ Library.
Maximilian P. L. Haslbeck, Peter Lammich
ESOP2
2021 Bounded-Deducibility Security (Invited Paper)
abstract
We describe Bounded-Deducibility (BD) security, an expressive framework for the specification and verification of information-flow security. The framework grew by confronting concrete challenges of specifying and verifying fine-grained confidentiality properties in some realistic web-based systems. The concepts and theorems that constitute this framework have an eventful history of such "confrontations", often involving trial and error, which are reported in previous papers. This paper is the first to focus on the framework itself rather than the case studies, gathering in one place all the abstract results about BD security.
Andrei Popescu 0001, Thomas Bauereiß, Peter Lammich
ITP3
2021 CoCon: A Conference Management System with Formally Verified Document Confidentiality
abstract
Abstract We present a case study in formally verified security for realistic systems: the information flow security verification of the functional kernel of a web application, the CoCon conference management system. We use the Isabelle theorem prover to specify and verify fine-grained confidentiality properties, as well as complementary safety and “traceback” properties. The challenges posed by this development in terms of expressiveness have led to bounded-deducibility security, a novel security model and verification method generally applicable to systems describable as input/output automata.
Andrei Popescu 0001, Peter Lammich, Ping Hou
J. Autom. Reason.2
2020 Efficient Verified (UN)SAT Certificate Checking
abstract
SAT solvers decide the satisfiability of Boolean formulas in conjunctive normal form. They are commonly used for software and hardware verification. Modern SAT solvers are highly complex and optimized programs. As a single bug in the solver may invalidate the verification of many systems, SAT solvers output certificates for their answer, which are then checked independently. However, even certificate checking requires highly optimized non-trivial programs. This paper presents the first SAT solver certificate checker that is formally verified down to the integer sequence representing the formula. Our tool supports the full DRAT standard, and is even faster than the unverified state-of-the-art tool drat-trim , on a realistic set of benchmarks drawn from the 2016 and 2017 SAT competitions. An optional multi-threaded mode further reduces the runtime, in particular for big certificates.
Peter Lammich
J. Autom. Reason.1
2019 Refinement with Time - Refining the Run-Time of Algorithms in Isabelle/HOL
abstract
Separation Logic with Time Credits is a well established method to formally verify the correctness and run-time of algorithms, which has been applied to various medium-sized use-cases. Refinement is a technique in program verification that makes software projects of larger scale manageable. Combining these two techniques for the first time, we present a methodology for verifying the functional correctness and the run-time analysis of algorithms in a modular way. We use it to verify Kruskal’s minimum spanning tree algorithm and the Edmonds - Karp algorithm for network flow. An adaptation of the Isabelle Refinement Framework [Lammich and Tuerk, 2012] enables us to specify the functional result and the run-time behaviour of abstract algorithms which can be refined to more concrete algorithms. From these, executable imperative code can be synthesized by an extension of the Sepref tool [Lammich, 2015], preserving correctness and the run-time bounds of the abstract algorithm.
Maximilian P. L. Haslbeck, Peter Lammich
ITP2
2019 Generating Verified LLVM from Isabelle/HOL
Peter Lammich
ITP1
2019 Proof Pearl: Purely Functional, Simple and Efficient Priority Search Trees and Applications to Prim and Dijkstra
abstract
The starting point of this paper is a new, purely functional, simple and efficient data structure combining a search tree and a priority queue, which we call a priority search tree. The salient feature of priority search trees is that they offer a decrease-key operation, something that is missing from other simple, purely functional priority queue implementations. As two applications of this data structure we verify purely functional, simple and efficient implementations of Prim’s and Dijkstra’s algorithms. This constitutes the first verification of an executable and even efficient version of Prim’s algorithm.
Peter Lammich, Tobias Nipkow
ITP1
2019 Formal Verification of Memory Preservation of x86-64 Binaries
Joshua A. Bockenek, Freek Verbeek, Peter Lammich, Binoy Ravindran
SAFECOMP3
2019 Refinement to Imperative HOL
Peter Lammich
J. Autom. Reason.1
2019 Automatic Refinement to Efficient Data Structures: A Comparison of Two Approaches
Peter Lammich, Andreas Lochbihler
J. Autom. Reason.1
2019 Formalizing Network Flow Algorithms: A Refinement Approach in Isabelle/HOL
Peter Lammich, S. Reza Sefidgar
J. Autom. Reason.1
2018 A verified SAT solver with watched literals using imperative HOL
abstract
Based on our earlier formalization of conflict-driven clause learning (CDCL) in Isabelle/HOL, we refine the CDCL calculus to add a crucial optimization: two watched literals. We formalize the data structure and the invariants. Then we refine the calculus to obtain an executable SAT solver. Through a chain of refinements carried out using the Isabelle Refinement Framework, we target Imperative HOL and extract imperative Standard ML code. Although our solver is not competitive with the state of the art, it offers acceptable performance for some applications, and heuristics can be added to improve it further.
Mathias Fleury, Jasmin Blanchette, Peter Lammich
CPP3
2018 A Formally Verified Validator for Classical Planning Problems and Solutions
abstract
In this paper we present a formally verified validator for planning problems and their solutions. We formalise the semantics of a fragment of PDDL (V, ¬, →, = in the preconditions, typing and constants) in the Higher-Order Logic theorem prover Isabelle/HOL. We then construct an efficient plan validator and mechanically prove it correct w.r.t. our semantics. We argue that our approach provides a superior compromise in constructing validators where one can have the best of two worlds: (i) clear and concise semantics w.r.t. which the validator is built thus helping to avoid bugs (unlike existing validators, which we show have bugs) and (ii) an optimised implementation whose performance is competitive with mainstream unverified validators.
Mohammad Abdulaziz, Peter Lammich
ICTAI2
2018 Verified Model Checking of Timed Automata
Simon Wimmer 0001, Peter Lammich
TACAS (1)2
2018 A Verified SAT Solver Framework with Learn, Forget, Restart, and Incrementality
abstract
We developed a formal framework for conflict-driven clause learning (CDCL) using the Isabelle/HOL proof assistant. Through a chain of refinements, an abstract CDCL calculus is connected first to a more concrete calculus, then to a SAT solver expressed in a functional programming language, and finally to a SAT solver in an imperative language, with total correctness guarantees. The framework offers a convenient way to prove metatheorems and experiment with variants, including the Davis-Putnam-Logemann-Loveland (DPLL) calculus. The imperative program relies on the two-watched-literal data structure and other optimizations found in modern solvers. We used Isabelle's Refinement Framework to automate the most tedious refinement steps. The most noteworthy aspects of our work are the inclusion of rules for forget, restart, and incremental solving and the application of stepwise refinement.
Jasmin Blanchette, Mathias Fleury, Peter Lammich, Christoph Weidenbach
J. Autom. Reason.3
2018 Formal Verification of an Executable LTL Model Checker with Partial Order Reduction
Julian Brunner 0001, Peter Lammich
J. Autom. Reason.2
2017 Efficient Verified (UN)SAT Certificate Checking
Peter Lammich
CADE1
2017 The GRAT Tool Chain - Efficient (UN)SAT Certificate Checking with Formal Correctness Guarantees
Peter Lammich
SAT1
2016 Refinement based verification of imperative data structures
abstract
In this paper we present a stepwise refinement based top-down approach to verified imperative data structures. Our approach is modular in the sense that already verified data structures can be used for construction of more complex data structures. Moreover, our data structures can be used as building blocks for the verification of algorithms. Our tool chain supports refinement down to executable code in various programming languages, and is fully implemented in Isabelle/HOL, such that its trusted code base is only the inference kernel and the code generator of Isabelle/HOL. As a case study, we verify an indexed heap data structure, and use it to generate an efficient verified implementation of Dijkstra's algorithm.
Peter Lammich
CPP1
2016 Formalizing the Edmonds-Karp Algorithm
Peter Lammich, S. Reza Sefidgar
ITP1
2015 A Framework for Verifying Depth-First Search Algorithms
abstract
Many graph algorithms are based on depth-first search (DFS). The formalizations of such algorithms typically share many common ideas. In this paper, we summarize these ideas into a framework in Isabelle/HOL.
Peter Lammich, René Neumann
CPP1
2015 Refinement to Imperative/HOL
Peter Lammich
ITP1
2014 A Conference Management System with Verified Document Confidentiality
Sudeep Kanav, Peter Lammich, Andrei Popescu 0001
CAV2
2014 Verified Efficient Implementation of Gabow's Strongly Connected Component Algorithm
Peter Lammich
ITP1
2013 A Fully Verified Executable LTL Model Checker
Javier Esparza, Peter Lammich, René Neumann, Tobias Nipkow, Alexander Schimpf, Jan-Georg Smaus
CAV2
2013 Automatic Data Refinement
Peter Lammich
ITP1
2013 Contextual Locking for Dynamic Pushdown Networks
Peter Lammich, Markus Müller-Olm, Helmut Seidl, Alexander Wenner
SAS1
2012 Applying Data Refinement for Monadic Programs to Hopcroft's Algorithm
Peter Lammich, Thomas Tuerk
ITP1
2011 Static analysis of interrupt-driven programs synchronized via the priority ceiling protocol
abstract
We consider programs for embedded real-time systems which use priority-driven preemptive scheduling with task priorities adjusted dynamically according to the immediate ceiling priority protocol. For these programs, we provide static analyses for detecting data races between tasks running at different priorities as well as methods to guarantee transactional execution of procedures. Beyond that, we demonstrate how general techniques for value analyses can be adapted to this setting by developing a precise analysis of affine equalities.
Martin D. Schwarz, Helmut Seidl, Vesal Vojdani, Peter Lammich, Markus Müller-Olm
POPL4
2011 Join-Lock-Sensitive Forward Reachability Analysis for Concurrent Programs with Dynamic Process Creation
Thomas Gawlitza, Peter Lammich, Markus Müller-Olm, Helmut Seidl, Alexander Wenner
VMCAI2
2011 A decision procedure for detecting atomicity violations for communicating processes with locks
Nicholas Kidd, Peter Lammich, Tayssir Touili, Thomas W. Reps
Int. J. Softw. Tools Technol. Transf.2
2010 The Isabelle Collections Framework
Peter Lammich, Andreas Lochbihler
ITP1
2009 Predecessor Sets of Dynamic Pushdown Networks with Tree-Regular Constraints
Peter Lammich, Markus Müller-Olm, Alexander Wenner
CAV1
2008 Conflict Analysis of Programs with Procedures, Dynamic Thread Creation, and Monitors
Peter Lammich, Markus Müller-Olm
SAS1
2007 Precise Fixpoint-Based Analysis of Programs with Thread-Creation and Procedures
Peter Lammich, Markus Müller-Olm
CONCUR1