Periodic Reporting for period 1 - CHORDS (Compositional Higher-Order Reasoning about Distributed Systems)
Période du rapport: 2023-09-01 au 2026-02-28
To formally analyze and reason about software systems it is important to consider models at many different levels of abstraction. Since many real software errors and security breaches stem from subtle problems in implementations of software systems, we focus on detailed, so-called semantic, models of program execution.
While there has been much research on abstract models for reasoning about distributed systems, there has been very little work on compositional verification of implementations of distributed systems. Compositional verification enables specification and verification of individual software modules and their composition, and is key to achieving scalable methods that apply to large programs, but the devel- opment of logics and methods for compositional reasoning is hard.
For concurrent, non-distributed, programs there has been tremendous progress in the last decade on program logics for compositional verification, in particular through the development of so-called higher- order concurrent separation logics. Leveraging this progress, CHORDS will research and develop new theories, program logics, and methods for mathematically rigorous compositional reasoning about implementations of distributed systems and thus lay the foundation for tools that will help programmers make more correct and secure distributed systems.
We have also developed novel techniques for reasoning about liveness of concurrent and distributed systems, using a novel approach based on refinement, which can be combined with higher-order concurrent separation logics.
Probabilistic features are often necessary for security and are often used in cryptographic applications. To support such probabilistic reasoning, CHORDS has developed novel program logics for reasoning about probabilistic higher-order programs. These logics allow to reason about refinement, which has been used to show correctness of cryptographic protocols, and also to specify approximate correctness, which is useful for reasoning about differential privacy.