LoRe: A Programming Model for Verifiably Safe Local-First Software

04/14/2023
by   Julian Haas, et al.
0

Local-first software manages and processes private data locally while still enabling collaboration between multiple parties connected via partially unreliable networks. Such software typically involves interactions with users and the execution environment (the outside world). The unpredictability of such interactions paired with their decentralized nature make reasoning about the correctness of local-first software a challenging endeavor. Yet, existing solutions to develop local-first software do not provide support for automated safety guarantees and instead expect developers to reason about concurrent interactions in an environment with unreliable network conditions. We propose LoRe, a programming model and compiler that automatically verifies developer-supplied safety properties for local-first applications. LoRe combines the declarative data flow of reactive programming with static analysis and verification techniques to precisely determine concurrent interactions that violate safety invariants and to selectively employ strong consistency through coordination where required. We propose a formalized proof principle and demonstrate how to automate the process in a prototype implementation that outputs verified executable code. Our evaluation shows that LoRe simplifies the development of safe local-first software when compared to state-of-the-art approaches and that verification times are acceptable.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/27/2020

Automated Verification of Reactive and Concurrent Programs by Calculation

Reactive programs combine traditional sequential programming constructs ...
research
02/05/2019

Fearless Concurrency? Understanding Concurrent Programming Safety in Real-World Rust Software

Rust is a popular programming language in building various low-level sof...
research
09/07/2023

NeuroCodeBench: a plain C neural network benchmark for software verification

Safety-critical systems with neural network components require strong gu...
research
07/14/2022

Bringing Iris into the Verified Software Toolchain

The Verified Software Toolchain (VST) is a system for proving correctnes...
research
12/23/2019

An Integrated Development Environment for the Prototype Verification System

The steep learning curve of formal technologies is a well-known barrier ...
research
09/28/2017

Modular Verification of Interrupt-Driven Software

Interrupts have been widely used in safety-critical computer systems to ...
research
01/31/2022

Network Programming via Computable Products

The User Plane Function (UPF) aims to provide network services in the 3G...

Please sign up or login with your details

Forgot password? Click here to reset