Behavioral Program Logic and LAGC Semantics without Continuations (Technical Report)

04/30/2019
by   Eduard Kamburjan, et al.
0

We present Behavioral Program Logic (BPL), a dynamic logic for trace properties that incorporates concepts from behavioral types and allows reasoning about non-functional properties within a sequent calculus. BPL uses behavioral modalities [s |- τ ], to verify statements s against behavioral specifications τ. Behavioral specifications generalize postconditions and behavioral types. They can be used to specify other static analyses, e.g., data flow analyses. This enables deductive reasoning about the results of multiple analyses on the same program, potentially implemented in different formalisms. Our calculus for BPL verifies the behavioral specification gradually, as common for behavioral types. This vastly simplifies specification, calculus and composition of local results. We present a sequent calculus for object-oriented actors with futures that integrates a pointer analysis and bridges the gap between behavioral types and deductive verification. This technical report introduces (1) complete LAGC semantics of a Core Active Object language (CAO) without continuations (2) Behavioral Program Logic and (3) gives an example for a behavioral type expressed in Behavioral Program Logic, method types. This report contains the soundness proofs for method types. While the semantics cover CAO with suspension, the method types do not, to simplify the presentation.

READ FULL TEXT
research
02/19/2021

Crowbar: Behavioral Symbolic Execution for Deductive Verification of Active Objects

We present the Crowbar tool, a deductive verification system for the ABS...
research
02/23/2018

Stateful Behavioral Types for ABS

It is notoriously hard to correctly implement a multiparty protocol whic...
research
05/13/2022

A Hoare Logic with Regular Behavioral Specifications

We present a Hoare logic that extends program specifications with regula...
research
02/22/2021

Behavioral QLTL

In this paper we introduce Behavioral QLTL, which is a “behavioral” vari...
research
10/21/2019

Representing and Reasoning about Dynamic Code

Dynamic code, i.e., code that is created or modified at runtime, is ubiq...
research
03/24/2022

Provable GPU Data-Races in Static Race Detection

We extend the theory behind the Faial tool-chain, which can soundly prov...
research
10/05/2021

Deductive Verification of Programs with Underspecified Semantics by Model Extraction

We present a novel and well automatable approach to formal verification ...

Please sign up or login with your details

Forgot password? Click here to reset