EDBT 2026 Demo / reviewers in the wild / expert
Johannes Kanig
dblp:70/225
· DBLP profile ↗
3ranked-venue papers
0as first author
1since 2021 · last 2025
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 2 · 1 since 2021Artificial intelligence and machine learning · 1Theory of computation · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
1 paper |
Program verification · 70% Programming languages and type systems · 30% |
Topics — the 4 heaviest of 4, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program verification
deductive verification |
0.4 | 1 | 2020 | Recursive Data Structures in SPARK · CAV (2) 2020 |
Programming languages and type systems › type systems
ownership types |
0.4 | 1 | 2020 | Recursive Data Structures in SPARK · CAV (2) 2020 |
Program verification
pointer program verification |
0.4 | 1 | 2020 | Recursive Data Structures in SPARK · CAV (2) 2020 |
Program verification
contract verification |
0.1 | 1 | 2020 | Recursive Data Structures in SPARK · CAV (2) 2020 |
Methods — techniques the papers use, named apart from their topics
pledges · 0.4ownership policy · 0.4local borrowing · 0.4
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Two-Way Collaboration Between Flow and Proof in SPARK
Claire Dross, Joffrey Huguet, Johannes Kanig |
VMCAI (1) | 3 |
| 2020 | Recursive Data Structures in SPARKabstractSPARK is both a deductive verification tool for the Ada language and the subset of Ada on which it operates. In this paper, we present a recent extension of the SPARK language and toolset to support pointers. This extension is based on an ownership policy inspired by Rust to enforce non-aliasing through a move semantics of assignment. In particular, we consider pointer-based recursive data structures, and discuss how they are supported in SPARK. We explain how iteration over these structures can be handled using a restricted form of aliasing called local borrowing. To avoid introducing a memory model and to stay in the first-order logic background of SPARK, the relation between the iterator and the underlying structure is encoded as a predicate which is maintained throughout the program control flow. Special first-order contracts, called pledges, can be used to describe this relation. Finally, we give examples of programs that can be verified using this framework. Claire Dross, Johannes Kanig |
CAV (2) | 2 |
| 2016 | Adding Decision Procedures to SMT Solvers Using Axioms with Triggers
Claire Dross, Sylvain Conchon, Johannes Kanig, Andrei Paskevich |
J. Autom. Reason. | 3 |