Skip to content
PSPhilipp Schröer
CV PDF

Probabilistic programs · Formal verification · Tool design

Philipp Schröer German IPA/ˈfɪlɪp ˈʃʁøːɐ/Fill-ip Schrö-er

PhD Student in Formal Verification

I am a PhD student in the Software Modeling and Verification Group (MOVES) at RWTH Aachen University. I care about solid foundations for probabilistic verification and bringing theory into practice by developing Caesar, an automated verification infrastructure for reasoning about software with randomness and proving quantitative correctness properties.

Research Software: Caesar

Caesar verifier

Deductive verification for probabilistic programs

Caesar is a deductive verifier for probabilistic programs. Its core language HeyVL, based on the real-valued logic HeyLo, expresses programs, specifications, and proof rules based on weakest pre-expectation-style semantics. Caesar uses SMT-based reasoning for verification and also provides a probabilistic model-checking backend for a subset of HeyVL.

Probabilistic programsprobabilities and expected values
HeyVL / HeyLospecification language and logic
AutomationSMT solving and model checking

Academic Publications

Highly Incremental: A Simple Programmatic Approach for Many Objectives.

FM 2026.

Philipp Schröer, Joost-Pieter Katoen.

A reward-based program transformation that lets many quantitative objectives reuse standard probabilistic wp reasoning.

We present a one-fits-all programmatic approach to reason about a plethora of objectives on probabilistic programs. The first ingredient is to add a reward-statement to the language. We then define a program transformation applying a monotone function to the cumulative reward of the program. The key idea is that this transformation uses incremental differences in the reward.

This simple, elegant approach enables to express e.g., higher moments, threshold probabilities of rewards, the expected excess over a budget, and moment-generating functions. All these objectives can now be analyzed using a single existing approach: probabilistic wp-reasoning. We automated verification using the Caesar deductive verifier and report on the application of the transformation to some examples.

Error Localization, Certificates, and Hints for Probabilistic Program Verification via Slicing.

ESOP 2026.

Philipp Schröer, Darion Haase, Joost-Pieter Katoen.

Slicing-based diagnostics for Caesar that localize errors, simplify proofs, and preserve successful verification results.

This paper focuses on effective user diagnostics generated during the deductive verification of probabilistic programs. Our key principle is based on providing slices for (1) error reporting, (2) proof simplification, and (3) preserving successful verification results.

By formally defining these different notions on HeyVL, an existing quantitative intermediate verification language (IVL), our concepts (and implementation) can be used to obtain diagnostics for a range of probabilistic programming languages. Slicing for error reporting is a novel notion of error localization for quantitative assertions. We demonstrate slicing-based diagnostics on a variety of proof rules such as quantitative versions of the specification statement and invariant-based loop rules, and formally prove the correctness of specialized error messages and verification hints.

We implemented our user diagnostics into the deductive verifier Caesar. Our novel implementation, called Brutus, can search for slices which do or do not verify, corresponding to each of the three diagnostic notions. For error reporting (1), it exploits a binary search-based algorithm that minimizes error-witnessing slices.

To solve for slices that verify (2 and 3), we empirically compare different algorithms based on unsatisfiable cores, minimal unsatisfiable subset enumeration, and a direct SMT encoding of the slicing problem. Our empirical evaluation of Brutus on existing and new benchmarks shows that we can find slices that are both small and informative.

Symbolic Quantitative Information Flow for Probabilistic Programs.

Principles of Verification: Cycling the Probabilistic Landscape.

Philipp Schröer, Francesca Randone, Raúl Pardo, Andrzej Wąsowski.

Symbolic methods for computing information-theoretic leakage measures of probabilistic programs.

It is of utmost importance to ensure that modern data intensive systems do not leak sensitive information. In this paper, the authors, who met thanks to Joost-Pieter Katoen, discuss symbolic methods to compute information-theoretic measures of leakage: entropy, conditional entropy, Kullback-Leibler divergence, and mutual information.

We build on two semantic frameworks for symbolic execution of probabilistic programs. For discrete programs, we use weakest pre-expectation calculus to compute exact symbolic expressions for the leakage measures. Using Second Order Gaussian Approximation (SOGA), we handle programs that combine discrete and continuous distributions. However, in the SOGA setting, we approximate the exact semantics using Gaussian mixtures and compute bounds for the measures.

We demonstrate the use of our methods in two widely used mechanisms to ensure differential privacy: randomized response and the Gaussian mechanism.

A Deductive Verification Infrastructure for Probabilistic Programs.

OOPSLA 2023.Distinguished Artifact

Philipp Schröer, Kevin Batz, Benjamin Lucien Kaminski, Joost-Pieter Katoen, Christoph Matheja.

The foundational Caesar paper: a Boogie-like verification infrastructure for probabilistic programs with a quantitative IVL and real-valued logic.

This paper presents a quantitative program verification infrastructure for discrete probabilistic programs. Our infrastructure can be viewed as the probabilistic analogue of Boogie: its central components are an intermediate verification language (IVL) together with a real-valued logic.

Our IVL provides a programming-language-style for expressing verification conditions whose validity implies the correctness of a program under investigation. As our focus is on verifying quantitative properties such as bounds on expected outcomes, expected run-times, or termination probabilities, off-the-shelf IVLs based on Boolean first-order logic do not suffice. Instead, a paradigm shift from the standard Boolean to a real-valued domain is required.

Our IVL features quantitative generalizations of standard verification constructs such as assume- and assert-statements. Verification conditions are generated by a weakest-precondition-style semantics, based on our real-valued logic.

We show that our verification infrastructure supports natural encodings of numerous verification techniques from the literature. With our SMT-based implementation, we automatically verify a variety of benchmarks. To the best of our knowledge, this establishes the first deductive verification infrastructure for expectation-based reasoning about probabilistic programs.

Latticed k-Induction with an Application to Probabilistic Programs.

CAV 2021.

Kevin Batz, Mingshuai Chen, Benjamin Lucien Kaminski, Joost-Pieter Katoen, Christoph Matheja, Philipp Schröer.

A lattice-theoretic generalization of k-induction and bounded model checking, applied to probabilistic programs.

We revisit two well-established verification techniques, k-induction and bounded model checking (BMC), in the more general setting of fixed point theory over complete lattices.

Our main theoretical contribution is latticed k-induction, which (i) generalizes classical k-induction for verifying transition systems, (ii) generalizes Park induction for bounding fixed points of monotonic maps on complete lattices, and (iii) extends from naturals k to transfinite ordinals κ, thus yielding κ-induction.

The lattice-theoretic understanding of k-induction and BMC enables us to apply both techniques to the fully automatic verification of infinite-state probabilistic programs. Our prototypical implementation manages to automatically verify non-trivial specifications for probabilistic programs taken from the literature that—using existing techniques—cannot be verified without synthesizing a stronger inductive invariant first.

PrIC3: Property Directed Reachability for MDPs.

CAV 2020.

Kevin Batz, Sebastian Junges, Benjamin Lucien Kaminski, Joost-Pieter Katoen, Christoph Matheja, Philipp Schröer.

An IC3/PDR-style symbolic model-checking framework for quantitative reachability in Markov decision processes.

IC3 has been a leap forward in symbolic model checking. This paper proposes PrIC3 (pronounced pricy-three), a conservative extension of IC3 to symbolic model checking of MDPs.

Our main focus is to develop the theory underlying PrIC3. Alongside, we present a first implementation of PrIC3 including the key ingredients from IC3 such as generalization, repushing, and propagation.

Experience

Doctoral Researcher / PhD Student

Software Modeling and Verification Group, RWTH Aachen University

  • Design and implementation of Caesar: an open-source deductive verifier for probabilistic programs, including HeyVL, HeyLo, SMT-based verification, model-checking integration, diagnostics, and VS Code tooling.
  • Teach lectures, seminars, and practical courses in probabilistic programming, model checking, concurrency theory, and software verification; prepare exercises, lead sessions, supervise students, and support course organization.
  • Publish and present research on probabilistic program verification, including work at OOPSLA, CAV, ESOP, and FM.

Student Assistant

Software Modeling and Verification Group, RWTH Aachen University

  • Built research prototypes for the PrIC3 and latticed k-induction publications, covering MDP analysis and probabilistic-program verification.
  • Developed probably, a Python library for exact and symbolic calculations with probability distributions, alongside the publication-specific verification tools.

Teaching

Teaching assistant for lectures, seminars, and practical courses; preparing exercises, leading sessions, supervising students, and supporting course organization.

Additional Presentations

Caesar at Summer School for Formal TechniquesSSFT 2025Menlo Park, CA, USA
Lecture and labs introducing weakest-pre-expectation reasoning and hands-on verification with Caesar.

Probabilistic programs encode randomized 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. The analysis of probabilistic programs requires manipulating irrational or even transcendental numbers.

Although this all sounds like a no-go for (semi-)automated analysis, I will present a deductive verification technique to analyse probabilistic programs. In contrast to simulation (like MCMC), this analysis yields exact results.

Our technique is based on weakest precondition reasoning. We will explain the foundations of this approach, present some proof rules to reason about probabilistic while-loops, and discuss how the analysis can be automated — either fully or with the help of invariants.

Research Funding and Awards

ERC Proof of Concept Grant: VERIPROB

Funding for the MOVES group to improve Caesar for practical use.

Grant note

WhatsApp Privacy Aware Program Analysis Research Award

Awarded with Joost-Pieter Katoen for A Deductive Verification Infrastructure for Probabilistic Programs.

Award note

Academic Service

Artifact evaluation program committees: ECOOP 2024, OOPSLA 2024, QEST 2023, CAV 2022, POPL 2022, CAV 2021.

External review: FM 2024, TACAS 2023.

Methods and Tools

Research Areas

Probabilistic programs, deductive verification, weakest pre-expectation reasoning, quantitative logics, model checking, and program analysis.

Tool Building

Verification-condition generation, SMT automation, diagnostics, slicing, proof rules, and VS Code support for Caesar.

Programming

Rust, Python, Haskell, Java, TypeScript/React, HTML/CSS, Go, and Docker.