Falsification of Hybrid Systems Using Adaptive Probabilistic Search.

Prof. Dr. Gidon Ernst

Junior Professor, Software Verification

Picture of Prof. Dr. Gidon Ernst

Software and Computational Systems Lab
Department of Computer Science
Ludwig-Maximilians-Universität München (LMU Munich)
Oettingenstraße 67
80538 Munich (Germany)

Office
Room F 007, Oettingenstr. 67
Office hours
By appointment, via https://meet.lrz.de/gidon
Phone
+49 (89) 2180-9376
E-Mail
firstname.lastname@lmu.de
Chat
Zulip (LMU/IFI internal)

GPG-Key

Please send me encrypted mails!
My GPG key: 0x43E74A64
Fingerprint: 2936 1F81 7F7E 77FC 114F E87D 864B 9E41 43E7 4A64

Consider using the keyserver at https://keys.openpgp.org/.

Personal

CV, Google Scholar, Semantic Scholar, DBLP, ORCID, GitHub, Twitter

  • formal methods for software engineering
  • software testing
  • interactive and automated proofs
  • hybrid systems falsification

This Page

Recent, Teaching, Thesis Mentoring, Research, Software, Service

Recent

Lehrveranstaltungen (siehe auch)

Sommersemester 2021 (Vorlesungszeitraum: 12.4.-16.7.)

Wintersemester 2020/21 (Vorlesungszeitraum: 2.11.-12.2.)

Mentoring, Bachelor-/Master Theses (see also)

Currently assigned topics
Frontends for a deductive verifier (Python)
Simplification and solving strategies for SMT
Development of an interactive theorem prover for untyped logic
Finished topics
Specifying Loops with Contracts. [1]
Information flow testing for PGP keyservers
Implement Fuzzing in CPAchecker
SMT-based checking and synthesis of formal refinements
Rely/Guarantee Reasoning for Separation Logic in SecC
Loop Contracts for Boogie and Dafny
Frontends for a deductive verifier (Boogie)
Guided fuzz testing with stochastic optimization
Interactive verification debugging

Further topics can be discussed on request.

Before contacting me with your own topic proposal, please think about this first: What would be the scientific question leading your project? Does the topic fit well with the research and teaching area of Prof. Ernst?

See also: Merkblatt für externe Arbeiten des Prüfungsamtes.

Research

Relational Proofs

The goal is to infer simulation relations and invariants to prove that two implementations of the same interface exhibit the same external behavior (i.e., Liskov and Wing’s substitution principle).

Notably, we focus on complex data types such as Arrays and Lists in combination where simulation relations often need to be defined by recursion with the help of quantifiers.

Joint work with Grigory Fedyukovich.

Softare Testing

Legion is a software tester based on a tight integration of concolic execution and fuzzing, mediated by Monte-Carlo tree search. Input values to target a specific part of the program are generated by approximate path-preserving fuzzing, a variant of constrained random sampling, using an adaption of the Quicksampler algorithm.

Joint work with Dongge Liu, Ben Rubinstein, Toby Murray.

See also the competition on software testing.

Concurrent Information Flow

Security Concurrent Separation Logic (SecCSL) combines reasoning about expressive, value-dependent security classifications with concurrency and low-level code.
The approach is implemented in the tool SecC (code on bitbucket).

Joint work with Toby Murray (University of Melbourne).

Falsification

Falsification of temporal logic requirements for hybrid systems. See FalStar and the ARCH competition on falsification.

Joint work with Ichiro Hasuo, Sean Sedwards, Zhenya Zhang (NII Tokyo, University of Waterloo).

Previous Projects

PhD Students

Software

  • Korn: Horn-clause based verifier for C, draft.
  • Legion: tight integration of concolic execution and fuzzing.
  • Cuvée: SMT-LIB with programs and weakest preconditions, draft.
  • Arse: LL parsing for Scala case classes made simple.
  • SecC: verified information flow for C.
  • FalStar: hybrid systems falsification.

Service