Pegasus: Sound Continuous Invariant Generation

by   Andrew Sogokon, et al.

Continuous invariants are an important component in deductive verification of hybrid and continuous systems. Just like discrete invariants are used to reason about correctness in discrete systems without having to unroll their loops, continuous invariants are used to reason about differential equations without having to solve them. Automatic generation of continuous invariants remains one of the biggest practical challenges to the automation of formal proofs of safety for hybrid systems. There are at present many disparate methods available for generating continuous invariants; however, this wealth of diverse techniques presents a number of challenges, with different methods having different strengths and weaknesses. To address some of these challenges, we develop Pegasus: an automatic continuous invariant generator which allows for combinations of various methods, and integrate it with the KeYmaera X theorem prover for hybrid systems. We describe some of the architectural aspects of this integration, comment on its methods and challenges, and present an experimental evaluation on a suite of benchmarks.


page 1

page 2

page 3

page 4


Algebraic Invariants for Linear Hybrid Automata

We exhibit an algorithm to compute the strongest algebraic (or polynomia...

Invariant Detection with Program Verification Tools

Compilers can specialize programs having invariants for performance impr...

Switched Systems as Hybrid Programs

Real world systems of interest often feature interactions between discre...

Data Invariants to Understand Unsupervised Out-of-Distribution Detection

Unsupervised out-of-distribution (U-OOD) detection has recently attracte...

A Complete Approach to Loop Verification with Invariants and Summaries

Loop invariants characterize the partial result computed by a loop so fa...

Invariant Safety for Distributed Applications

We study a proof methodology for verifying the safety of data invariants...

Sound Invariant Checking Using Type Modifiers and Object Capabilities

In this paper we use pre existing language support for type modifiers an...