Prelimniary Programme

more like a draft than final

not so preliminary anymore

Program is also available as an ical file, that can be subscribed in your calender app

Day 0 - Monday, 29th July < tr>
Time Topic
17:00 – 18:00

Registration

18:00 – 19:00

Dinner at Haus der Kirche

19:00 –
20:00 – 21:00

Meeting of the Programme Board

Day 1 – Tuesday, 30th July
Time Topic
08:45 –09:00

Opening Cerenomy 15 min.
Alexander Weigl

09:00 –10:30 Session: Handling of Probabilistic Programs ∣ Chair: Alexander Weigl

Weakest Precondition Reasoning on Probabilistic Programs 60 min.
Joost-Pieter Katoen

Verifying Quantum Based Systems. What do we have to change? 15 min.
Anna Schmitt

Leveraging Synergies in the Verification of Quantum and ML Software 15 min.
Jonas Klamroth

10:30 – 11:00

Coffee

11:00 – 12:30 Session: Verification with Legal Aspects ∣ Chair: Richard Bubel

Verifying Stipula Legal Contracts in KeY 30 min.
Reiner Hähnle

SmartML: Enhancing Security and Reliability in Smart Contract Development 15 min.
Adele Veschetti

What is Live? Temporal Properties in Smart Contract Applications 15 min.
Jonas Schiffl

Modeling Solidity data types in SolidiKeY 30 min.
Guilherme Silva

12:30 – 14:00

Lunch

14:00 – 15:30
Room: SR7+8
Session: Case Studies in KeY ∣ Chair: Michael Kirsten

Multi-perspective correctness of programs 30 min.
Eduard Kamburjan

Analyzing OpenJDK's BitSet 30 min.
Stijn de Gouw

Verification of the Norway Election Algorithm 30 min.
Richard Bubel

14:00 – 15:30
Room: SR6
Session: Proving Safety with dL ∣ Chair: Yong Kiam Tan

Axiomatization of Compact Initial Value Problems: Open Properties 30 min.
Long Qian

Formal Verification of 2-Element Lumped-Capacitance Model 30 min.
Carlos Ignacio Isasa Martin

Uniform Substitution for Differential Refinement Logic 30 min.
Enguerrand Prebet

15:30 – 16:00

Coffee

16:00 – 17:30
Room: SR7+8
Session: New Verification Methodologies with/in KeY ∣ Chair: Wojciech Mostowski

Rusty KeY 30 min.
Daniel Drodt

Types as Contracts: Scalable and Precise Verification 30 min.
Florian Lanzinger

Observational Encapsulation: Abstracting Datastructures on the Heap into "Singularities" 30 min.
Wolfram Pfeifer

16:00 – 17:45
Room: SR6
Session: Games for Hybrid Systems ∣ Chair: Enguerrand Prebet

Control Envelope Synthesis for KeYmaera X 30 min.
Aditi Kabra

Complete Game Logic with Sabotage 30 min.
Noah Abou El Wafa

Differential Hybrid Games 30 min.
André Platzer

On proving that an unsafe controller is not proven safe 15 min.
Wolfgang Ahrendt

The Last Mile in Trustworthy Automated Reasoning 15 min.
Yong Kiam Tan

18:00 – 19:00

Dinner at Haus der Kirche

Day 2 – Wednesday, 31td July
Time Topic
09:00 –10:30 Session: Formal Methods for CPS ∣ Chair: André Platzer

Why does so much CPS design go on without much formal methods? A plea for developing verification theories bridging exhaustive and statistical correctness arguments, stochasticity, and open systems 45 min.
Martin Fränzle

Formal Foundations of Consistency in Model-Driven Development 30 min.
Romain Pascual

Towards Recovery from Inconsistency in V-SUMs 15 min.
Henriette Färber

10:30 –11:00

Coffee

11:00 – 12:30 Session: “Efficient Analysis of Software Systems ∣ Chair: Bernhard Beckert

Towards Practical Analysis and Optimization for Finite-Precision 30 min.
Debasmita Lohar

Single Path Verification for Validation or Debugging 30 min.
Lukas Grätz

Free Facts: An Alternative to Inefficient Axioms in Dafny 30 min.
Tabea Bordis

12:30 – 14:00

Lunch

14:00 – 15:30 Session: Program Analyses of Software Systems ∣ Chair: Mattias Ulbrich

Distributed Automatic Contract Construction 60 min.
Dirk Beyer

Data Dependence Analysis Program Logic: Applications 15 min.
Asmae Heydari Tabar

A Bayesian energy profiler for Java system 15 min.
Joel Nyholm

15:30 – 16:00

Coffee

16:00 – 18:00 Session: Intersymbolic AI ∣ Chair: Ina Schaefer

Towards AI-assisted Correctness-by-Construction Software Development 25 min.
Maximilian Kodetzki

Specify What? Enhancing Neural Specification Synthesis by Symbolic Methods 25 min.
George Granberry

Oracular Programming 25 min.
Jonathan Laurent

Towards Combining the Cognitive Abilities of Large Language Models with the Rigor of Deductive Progam Verification 15 min.
Bernhard Beckert

Discussion 30 min.
Bernhard Beckert

19:00 – Dinner: Klosterschänke
Day 3 – Thursday, 1st August
Time Topic
– 09:00 Check-out!
09:00 – 10:45 Session: Isabelle ∣ Chair: Reiner Hähnle

Proving Properties of Provers 60 min.
Jasmin Blanchette

Transferring proof obligations from KeY to Isabelle/HOL 15 min.
Nils Buchholz

Formal verification of verifiable, traceable and secret online elections 15 min.
Anne Hoff

Formal Verification of Symmetry Properties in Distance Rationalizable Voting Rules 15 min.
Alicia Appelhagen

10:45 –11:15

Coffee

11:00 – 12:15 Session: #8 ∣ Chair: Wolfang Ahrendt

Towards Precise Linear Relaxations for Verification of LSTMs 30 min.
Philipp Kern

Heterogeneous Dynamic Logic 30 min.
Samuel Teuber

Context-aware Contracts as a Lingua Franca for Behavioral Specification 15 min.
Marco Scaletta

12:20 – 12:30

Closing Cerenomy 10 min.
Wolfgang Ahrendt Bernhard Beckert Reiner Hähnle

12:30 –

Lunch

Talks

Opening Cerenomy

Alexander Weigl

Open cerenomy

Weakest Precondition Reasoning on Probabilistic Programs Invited Talk

Joost-Pieter Katoen

Probabilistic programs encode randomised algorithms, robot controllers, learning components, security mechanisms, and much more. They are however hard to grasp. Not only by humans, also by computers: checking elementary properties related to e.g., termination are "more undecidable" than for ordinary programs. Although this all sounds like a no-go for automated analysis, I will present some non-trivial analyses of probabilistic programs using push-button technology. Our techniques are all based on weakest precondition reasoning. We will address automated techniques for run-time analysis, k-induction, and the synthesis of probabilistic loop invariants.

Verifying Quantum Based Systems. What do we have to change?

Anna Schmitt

Keywords: Probabilistic Process Calculi, Encodings, Quantum Based Systems

Leveraging Synergies in the Verification of Quantum and ML Software

Jonas Klamroth

Machine Learning and Quantum Computing must be recognized as the new technological frontiers, reshaping the landscape of computation across diverse fields. Their unreliable and highly complex nature, however, poses significant challenges regarding their use in practice as it requires rigorous verification to obtain formal guarantees of correctness. In classical software systems, verification was made possible by a series of principles (program decomposition, determinism, etc.) that no longer apply in quantum and ML software. In this paper, we examine similarities between the formal verification of quantum and ML software and identify common research directions. Particularly in the field of ML, there are ongoing research efforts, which we expect to generate synergies that can be exploited in the context of quantum software. We discuss significant overlaps and research opportunities and propose a close collaboration of those two fields in the future.

Verifying Stipula Legal Contracts in KeY

Reiner Hähnle

Stipula is an executable language that formalizes the operational semantics of legal contracts. It combines aspects from state automata, time, asynchronous and imperative programming. We sketch how a large class of Stipula programs can be modeled and formally verified in KeY. This is joint work with Cosimo Laneve (U Bologna) and Adele Veschetti.

SmartML: Enhancing Security and Reliability in Smart Contract Development

Adele Veschetti

Smart contracts, as integral components of blockchain technology, play a pivotal role in automating and executing agreements in a trust free manner. However, ensuring the correctness and reliability of smart contracts remains a significant challenge due to their complex nature and potential vulnerabilities. To address this challenge, we propose SmartML, a novel modeling language tailored specifically to smart contracts. This paper presents an in-depth exploration of the features, advantages, and applications of the proposed modeling language. By providing a precise and intuitive means of describing smart contract behaviors, SmartML aims to support the development, verification, and validation of smart contracts, ultimately bolstering trust and confidence in them. Furthermore, we discuss the relation to our modeling language with existing blockchain technologies and highlight its potential to streamline integration efforts. We posit SmartML as a versatile tool to advance, interoperability, reliability, and security of smart contracts in blockchain ecosystems.

What is Live? Temporal Properties in Smart Contract Applications

Jonas Schiffl

In my talk, I will discuss notions of safety and liveness in the adversarial domain of smart contract applications. I present a specification language for capturing relevant temporal properties in this domain. Furthermore, I discuss verification of these properties in the context of the SCAR smart contract application metamodel.

Modeling Solidity data types in SolidiKeY

Guilherme Silva

Solidity, the main programming language for smart contracts in cryptocurrencies, is being formalized in KeY.

One of the main challenges is to modeling data types to it.

These data types are different from Java in some interesting ways.

Multi-perspective correctness of programs

Eduard Kamburjan

Programs must be correct with respect to their application domain. Yet, current the program specification and verification approaches only consider correctness in terms of computations.

In this work, we present a Hoare Logic that manages two different perspectives on a program during a correctness proof: the computational view and the domain view.

This enables to not only specify the correctness of a program in terms of the domain without referring to the computational details, but also enables to interpret failed proof attempts in the domain.

For domain specification, we illustrate the use of description logics and base our approach on semantic lifting, a recently proposed approach to interpret a program as a knowledge graph.

We present a calculus that uses translations between both kinds of assertions, thus separating the concerns in specification, but enabling the use of description logic in verification.

Analyzing OpenJDK's BitSet

Stijn de Gouw

We analyse OpenJDK's BitSet class with a combination of formal specification, testing and preliminary verification. The BitSet class represents a vector of bits that grows as required. During our analysis, we uncovered a number of bugs. We propose and compare various solutions, supported by our formal specification. Until a solution is chosen for the discovered problems, the source code is not (sufficiently) fixed to allow full mechanical verification in KeY of the class. But we do show initial steps taken towards verification, discuss our experience and identify necessary extensions (particularly for bitwise operations) required to make a complete proof possible once the source code is stable.

Formal Verification of 2-Element Lumped-Capacitance Model

Carlos Ignacio Isasa Martin

We show a verified controller that regulates a heat exchange system.

Verification of the Norway Election Algorithm

Richard Bubel

We present the verification of the Norway Election Algorithm using the KeY Tool. We report on the approach and experiences.

Complete Game Logic with Sabotage

Noah Abou El Wafa

This talk introduces sabotage as an additional, simple and natural primitive game action in Parikh’s game logic, which allows players to lay traps for the opponent. This closes the expressiveness gap between game logic and the strictly more expressive modal mu-calculus. This reveals a close connection between the entangled nested recursion inherent in modal fixpoint logics and adversarial dynamic rule changes characteristic for sabotage games. Completeness is transferred from the proof calculus for the mu-calculus via syntactic equiexpressiveness transformations. The completeness of a simple extension of Parikh’s calculus for game logic follows. Applied to differential game logic, these results show that the differential mu-calculus is complete with respect to first-order fixpoint logic and differential game logic is complete with respect to its ODE-free fragment via a fixpoint characterisation of the continuous dynamics.

Rusty KeY

Daniel Drodt

For 25 years, the KeY tool has been used to verify the correctness of Java programs. We work toward generalizing KeY's approach and its codebase to new languages. The most ambitious such language is Rust, which ensures memory safety without a garbage collector.

We present some compelling problems resulting from extending KeY to a new language, some unique properties of Rust, and their impact on verification.

Observational Encapsulation: Abstracting Datastructures on the Heap into "Singularities"

Wolfram Pfeifer

Types as Contracts: Scalable and Precise Verification

Florian Lanzinger

Refinement type systems allow programmers to use logical conditions to constrain admissible values of variables. However, most practical refinement type systems limit the expressiveness in the logic to remain automatically decidable and easy to use. Deductive verification tools, on the other hand, often come with expressive specification languages and powerful proof calculi that require interaction and scale badly with the program size.

We introduce Kukicha, a refinement type system framework for Java that enables the interoperation of efficient type checking and deductive program verification. Kukicha combines refinement types with uniqueness types to track aliasing and packing types to track temporary violations. The use of a packing mechanism in combination with deductive verification allows Kukicha to be more expressive than similar type systems. Kukicha first performs an efficient syntactic well-typedness check. If this does not succeed, it emits a translated program where type annotations are replaced JML by specifications that can be proven in KeY.

The Last Mile in Trustworthy Automated Reasoning

Yong Kiam Tan

This is a short talk on enhancing the trustworthiness of automated reasoning tools by building so-called certifying algorithms and corresponding proof checking workflows. I will give a demo based on SAT solving, where the generation and checking of unsatisfiability proof has become a (near) mandatory feature for all modern solvers.

On proving that an unsafe controller is not proven safe

Wolfgang Ahrendt

Formal verification of cyber-physical systems is one way to guarantee safety. However, care must be taken because modelling errors might result in proving a faulty controller safe, which is potentially catastrophic in practice. We deal with two such modelling errors in differential dynamic logic, and provide conditions under which these two modelling errors cannot cause a faulty controller to be proven safe. We also show how these conditions can be proven with help of KeYmaera X.

Control Envelope Synthesis for KeYmaera X

Aditi Kabra

This talk presents an approach for synthesizing provably correct control envelopes for hybrid systems. Control envelopes characterize families of safe controllers and are used to monitor untrusted controllers at runtime. Our algorithm fills in the blanks of a hybrid system's sketch specifying the desired shape of the control envelope, the possible control actions, and the system's differential equations. In order to maximize the flexibility of the control envelope, the synthesized conditions saying which control action can be chosen when should be as permissive as possible while establishing a desired safety condition from the available assumptions, which are augmented if needed. An implicit, optimal solution to this synthesis problem is characterized using hybrid systems game theory, from which explicit solutions can be derived via symbolic execution and sound, systematic game refinements. Ideas for generalization to a broad class of envelope sketches, characterized by admitting a natural representation in differential game logic are presented. The resulting algorithm is demonstrated in a range of safe control envelope synthesis examples with different control challenges.

Differential Hybrid Games

André Platzer

This talk introduces differential hybrid games, which combine differential games with hybrid games. In both kinds of games, two players interact with continuous dynamics. The difference is that hybrid games also provide all the features of hybrid systems and discrete games, but only deterministic differential equations. Differential games, instead, provide differential equations with input by both players, but not the luxury of hybrid games, such as mode switches and discrete or alternating interaction. This talk augments differential game logic with modalities for the combined dynamics of differential hybrid games. It shows how hybrid games subsume differential games and introduces differential game invariants and differential game variants for proving properties of differential games inductively.

Axiomatization of Compact Initial Value Problems: Open Properties

Long Qian

We prove the completeness of an axiomatization for initial value problems (IVPs) with compact initial conditions and compact time horizons for bounded open safety, open liveness and existence properties. This result is achieved via a computable procedure that generates symbolic proofs with differential invariants for rigorous error bounds of numerical solutions to such IVPs, bringing insights from symbolic logic and numerical analysis. As the axiomatization is a subset of the implemented axioms in Keymaera X, this also provides a theoretical justification for the verification power of Keymaera X.

Context-aware Contracts as a Lingua Franca for Behavioral Specification

Marco Scaletta

Uniform Substitution for Differential Refinement Logic

Enguerrand Prebet

We introduces a uniform substitution calculus for differential refinement logic dRL. The logic dRL extends the differential dynamic logic dL such that one can simultaneously reason about properties of and relations between hybrid systems. Refinements are useful e.g. for simplifying proofs by relating a concrete hybrid system to an abstract one from which the property can be proved more easily. Uniform substitution is the key to parsimonious prover microkernels. It enables the verbatim use of single axiom formulas instead of axiom schemata with soundness-critical side conditions scattered across the proof calculus. The uniform substitution rule can then be used to instantiate all axioms soundly. Access to differential variables in dRL enables more control over the notion of refinement, which is shown to be decidable on a fragment of hybrid programs.

Why does so much CPS design go on without much formal methods? A plea for developing verification theories bridging exhaustive and statistical correctness arguments, stochasticity, and open systems Invited Talk

Martin Fränzle

Cyber-physical systems are systems whose design calls for a meet of various engineering disciplines, all with their own mathematical as well as empirical modelling and analysis techniques. Sadly, even after more than half of a century of scientific interest in the control of hybrid discrete-continuous systems and after more than three decades of dedicated conferences and collaborative research agendas unifying theories from dynamical systems, control, and computer science, these methods still do not meet as seamlessly as we in the formal methods community tend to claim. While we, as a formal methods community together with our peers from control theory, have made tremendous progress in the formal verification of hybrid-state dynamical systems and thereby of cyber-physical systems, industrial adoption of these methods remains meagre. Our perception in the FM community tends to be that this is due to still limited usability and scalability of our tools, and thus to be solved eventually by their further development. I will in my talk argue that the problem actually lies much deeper: all tools and theories around do only cover fragmentary aspects of a CPS's correctness argument, and they unfortunately don't interface well to together provide an overarching argument. Not only does the impossibility of building 100% correct cyber-physical systems, which is induced by the inherent uncertainties in sensing and component behaviour, force us into quantitative safety arguments, but we then even have to provide such quantitative arguments for open systems, where input distributions may be vague and instationary. And industrial supplier and subcontractor structures also enforce compositional reasoning, asking for inferences combining rigorous verification certificates for one component with statistical evidence from (virtual or physical) experiments for the other. Can we establish compositional verification theories reconciling rigorous, exhaustive and statistical correctness arguments, stochasticity, and open systems? Maybe, and he talk will show some ideas of setting up such a framework (joined work with Pauline Blohm (U Münster), Paula Herber (U Münster), Paul Kröger (U Oldenburg) und Anne Remke (U Münster)). Can we do without such? Maybe not, unless we can live with limited impact.

Formal Foundations of Consistency in Model-Driven Development

Romain Pascual

Models are abstractions used to precisely represent specific aspects of a system in order to make work easier for engineers. This separation of concerns naturally leads to a proliferation of models, and thus to the challenge of ensuring that all models actually represent the same system. We can study this problem by considering that the property is abstracted as a relation between models called consistency. Yet, the exact nature of this relation remains unclear in the context of cyber-physical systems, as such models are heterogeneous and may not be formally described.

Therefore, we propose a formal foundation for consistency relations, by (1) item providing a set-theoretical description of the virtual single underlying model (V-SUM) methodology, (2) relating consistency to model transformations, and (3) studying the connection between consistency of models and their semantics. In particular, we show that a relation on the semantic space of models can be reflected as a relation on models and that this semantics forms a lattice, such that a canonical semantics can be derived from a consistency relation. Our findings lay the foundation for a formal reasoning about precise notions of consistency.

Single Path Verification for Validation or Debugging

Lukas Grätz

More than 15 years ago, a paper ""Better bug reporting with better privacy"" solved the two problems of automatic bug reports: Specifically, memory dumps might not be sufficient to reconstruct an issue/crash while leaking private information. However, their approach of generating new input-data had limited applicability.

Our tool instruments the source code to record (with low overhead) a compressed control flow trace, which can be directly added to a bug-report (instead of input-data or memory dumps). The trace format is designed to be adaptable to different programming languages.

In the second part, these traces are used not only by visualizing the control-flow in the code: On the developers side, we can debug a trace using symbolic execution (we call that retracing). Our current implementation works on top of either KeY, CBMC or angr.

We also see how to record a trace with KeY and how to restrict symbolic execution (or a part of it) to a single control flow, to avoid loop invariants and path explosion.

Towards Recovery from Inconsistency in V-SUMs

Henriette Färber

Free Facts: An Alternative to Inefficient Axioms in Dafny

Tabea Bordis

Formal software verification relies on properties of functions and built-in operators. Unless these properties are handled directly by decision procedures, an automated verifier includes them in verification conditions by supplying them as universally quantified axioms or theorems. The use of quantifiers sometimes leads to bad performance, especially if automation causes the quantifiers to be instantiated many times.

In this presentation, I will talk about free facts as an alternative to some axioms. A free fact is a pre-instantiated axiom that is generated alongside the formulas in a verification condition that can benefit from the facts. Replacing an axiom with free facts thus reduces the number of quantifiers in verification conditions. Free facts are statically triggered by syntactic occurrences of certain patterns in the proof terms. This is less powerful than the dynamically triggered patterns used during proof construction. However, we found that free facts perform well in practice.

Distributed Automatic Contract Construction Invited Talk

Dirk Beyer

The presentation consists of two parts. The first part presents an approach to automatic contract construction that is more modular, scalable, and precise compared to existing automatic approaches. We decompose the program into code blocks, and for each code block, we compute a postcondition and a violation condition. The postcondition of a block is given to successors in order to refine their precondition and derive a proof of correctness. The violation condition is a condition that describes states leading to a specification violation. The approach is scalable because each block can be analyzed independently: the blocks communicate only via postconditions and violation conditions. The precision of the approach can be defined by the underlying program analysis. In a second part, we describe an approach to conserve tools for formal methods. We collect and maintain essential data about tools for formal methods in a central repository, called FM-Tools, available at https://gitlab.com/sosy-lab/benchmarking/fm-tools. The repository contains metadata, such as which tools are available, which versions are advertized for each tool, and what command-line arguments to use for default usage. The actual tool executables are stored in tool archives at Zenodo, and for technically deep documentation, references point to archived publications or project web sites. With this approach, we can conserve today's tools for the future.

Towards Practical Analysis and Optimization for Finite-Precision

Debasmita Lohar

Finite-precision programs inevitably introduce numerical uncertainties due to input noises and finite-precision (roundoff) errors inherent in arithmetic operations. Furthermore, implementing these programs on hardware necessitates a trade-off between accuracy and efficiency. Therefore, it is crucial to ensure that numerical uncertainties remain acceptably small and to optimize implementations for accurate results tailored to specific applications.

Existing analysis and optimization techniques for finite-precision often face challenges related to scalability and applicability in real-world scenarios. In this talk, I will provide a brief overview of my PhD research, which aimed to develop methods for handling input uncertainties and improving the scalability of the state-of-the-art, thus broadening their scope for practical applications.

Data Dependence Analysis Program Logic: Applications

Asmae Heydari Tabar

We developed a program logic and a sequent calculus to formally address the data dependence analysis problem in high-performance computing. This program logic is rich and powerful enough to be used in different contexts when the problem at hand can be formulated in terms of data dependences. In this presentation, we briefly discuss such problems (e.g., method contract generation, noninterference verification, branch prediction, etc.).

A Bayesian energy profiler for Java system

Joel Nyholm

Electricity is a vital infrastructural need for all. Reducing energy consumption would benefit economics, sustainability, and the environment in today's climate. However, to reduce consumption, one must know what one consumes. Therefore, we have developed a novel energy profiling system for Java applications. The profiler's basis is on measurements of iterative execution of small segments of Java code. We will then employ both a Bayesian and a summative estimation model to compare the accuracy of their estimates. Note that this is an ongoing paper. Hence, no results are yet available.

Towards AI-assisted Correctness-by-Construction Software Development

Maximilian Kodetzki

In recent years, research in the field of artificial intelligence has made great progress. AI-tools are getting better in simulating human reasoning and behaviour every day. In this paper, we discuss the extent to which AI-tools can support Correctness-by-Construction engineering. This is an approach of formal methods to developing functionally correct programs incrementally on the basis of a formal specification. Using sound refinement rules, the correctness of the constructed program can already be guaranteed in the development process. We analyze the Correctness-by-Construction process regarding steps for potential AI-tool support in the tool CorC, which implements Correctness-by-Construction. We classify the findings in five areas of interest. Based on existing work, expert knowledge, and prototypical experiments, we discuss for each of the areas whether and to what extent AI-tools can support Correctness-by-Construction software development. We address the risk of AI-tools in formal methods and present our vision of AI-integration in the tool CorC to support developers in constructing programs using Correctness-by-Construction engineering.

Specify What? Enhancing Neural Specification Synthesis by Symbolic Methods

George Granberry

We investigate how combinations of Large Language Models (LLMs) and symbolic analyses can be used to synthesise specifications of C programs. The LLM prompts are augmented with outputs from two formal methods tools in the Frama-C ecosystem, Pathcrawler and EVA, to produce C program annotations in the specification language ACSL. We demonstrate how the addition of symbolic analysis to the workflow impacts the quality of annotations: information about input/output examples from Pathcrawler produce more context-aware annotations, while the inclusion of EVA reports yields annotations more attuned to runtime errors. In addition, we show that the method infers rather the programs intent than its behaviour, by generating specifications for buggy programs and observing robustness of the result against bugs.

Oracular Programming

Jonathan Laurent

Large Language Models have proved surprisingly effective at solving a wide range of tasks from just a handful of examples. However, their lack of reliability limits their capacity to tackle large problems that require many steps of reasoning. In response, researchers have proposed advanced pipelines that leverage domain-specific knowledge to chain smaller prompts, provide intermediate feedback and improve performance through search. However, the current complexity of writing, debugging, tuning and maintaining such pipelines has put a bound on their sophistication.

We propose a new paradigm for programming with LLMs called oracular programming. In this paradigm, domain experts are invited to define high-level problem-solving strategies as nondeterministic programs. Such programs are reified into infinite search trees for LLM oracles to navigate. A separate demonstration language allows annotating choice points with examples, while keeping them grounded and synchronized as the associated program evolves.

In this talk, we motivate and explain the key concepts of oracular programming. We introduce Delphyne, a framework for oracular programming based on Python, and discuss the associated tooling. We demonstrate our prototype on a preliminary invariant-synthesis case study. We hope that our proposed framework can foster research on intersymbolic AI and facilitate creative combinations of LLMs with symbolic provers.

Towards Combining the Cognitive Abilities of Large Language Models with the Rigor of Deductive Progam Verification

Bernhard Beckert

Recent investigations hint at the ability of large language models (LLMs) to generate formal specifications for given program code. We present preliminary quantitative experiments on the capabilities of LLMs to generate correct specifications. To this end, we use a prototypical integration of GPT (versions 3.5 and 4o) with the deductive program verifier KeY and the bounded model checker JJBMC. We evaluated our prototype on a set of Java programs that are partially annotated with specifications written in the Java Modeling Language (JML). We show that GPT 4o generates correct annotations in approximately half of all instances across the investigated scenarios. For the case of faulty specifications, we investigate how a feed-back loop can help to improve the original answer. Finally, we present a vision of how Large Language Models may support rigorous formal verification of software systems and describe the necessary next steps in this direction.

Discussion

Bernhard Beckert

Proving Properties of Provers Invited Talk

Jasmin Blanchette

Resolution and superposition are prime examples of proof systems implemented in saturation-based theorem provers. These have a rich metatheory, which both is interesting in its own right and partly explains why the provers perform well in practice. My collegues and I formalized the soundness and completeness proofs of resolution and superposition in Isabelle/HOL. In addition, we developed a so-called saturation framework, on paper and in Isabelle, that makes such proofs easier to carry out and more modular.

(joint work with Martin Desharnais, Gabriel Ebner, Qi Qiu, Simon

Robillard, Anders Schlichtkrull, Balazs Toth, Sophie Tourret, Dmitriy

Traytel, and Uwe Waldmann)

Transferring proof obligations from KeY to Isabelle/HOL

Nils Buchholz

Can be reduced to short talk if necessary

Guarantees of correctness of programs are becoming more and more important nowadays. KeY is one tool, which can be used to prove the formal correctness of Java programs. It uses syntactic rewriting rules, called taclets, to successively simplify proofs. These taclet rules can be applied by an automated proving mode in KeY. Because the automation can be insufficient for closing some proofs and because proofs can contain thousands of rule applications, it is desirable to provide stronger automated tools to the user. One such tool is the Satisfiablity Modulo Theories (SMT) translation of KeY, which allows the use of SMT provers to close proofs. The SMT translation also lacks the required rules or proving strength for some proofs. It is thus still desirable to improve the already present automated toolset of KeY users.

This work designs a translation of KeY proofs to the higher-order logic prover Isabelle/HOL. In addition to designing this translation this work also shows that the translation can be automated and integrated within KeY by implementing it as a GUI-Extension of KeY.

This work tests the developed Isabelle translation on over 2 400 example proof obligations of KeY. In doing so the Isabelle translation has been found to offer some advantages over the SMT translation and the KeY automation. Although the Isabelle translation does not manage to close all proofs the KeY automation or SMT translation could close, it is able to close proofs, which the KeY automation or the SMT translation could not close.

Thus the Isabelle translation expands the KeY user’s automated toolset in a meaningful way, while also building a foundation for using Isabelle in ways outside automated proof solving in KeY.

Formal verification of verifiable, traceable and secret online elections

Anne Hoff

Online elections are especially vulnerable to external and internal threats compromising the privacy and integrity of the election. Thus, a voting system for online elections should enable the detection and correction of any errors in the election result — a property called strong software independence.

This can be achieved by risk-limiting audits, which however require adapting traditional privacy requirements for online elections so that sufficient evidence for the audits is produced.

In this talk, I present on-going work on the formalization and verification of secret and end-to-end-verifiable online elections that fulfill the traceability property necessary for post-election, risk-limiting audits, using the Tamarin prover.

Formal Verification of Symmetry Properties in Distance Rationalizable Voting Rules

Alicia Appelhagen

Towards Precise Linear Relaxations for Verification of LSTMs

Philipp Kern

Verification of neural networks is essential for their deployment in

safety-critical applications. While most verification approaches target

ReLU networks, the activation functions used in Long Short-Term Memory

(LSTM) networks, crucial for sequence and time series data, still pose

significant challenges.

Existing approaches for verification of LSTMs neglect dependencies

between input variables, when computing linear relaxations of their

activation functions.

In this talk, I am going to present ongoing work for enhancing the

precision of the linear relaxations by leveraging zonotopes to capture

such input dependencies.

Heterogeneous Dynamic Logic

Samuel Teuber

The novel framework of Heterogeneous Dynamic Logic presented in this talk allows the systematic combination of multiple program reasoning theories in dynamic logic, similar to the framework of satisfiability modulo theories (SMT) that allows the systematic combination of multiple theories in first-order logic.

Just like the foundation behind SMT are the conditions under which first-order theory combinations preserve decidability, the foundation here are the conditions under which program theory combinations preserve relative completeness.

The resulting combination principles are useful because they make it possible to modularly combine program reasoning on different levels and with different foci:

While preserving a clear separation of concerns between theories, we nonetheless enable a strong combination of insights across theories.

Closing Cerenomy

Wolfgang Ahrendt Bernhard Beckert Reiner Hähnle

Closing cerenomy