English

Relational Logic with Framing and Hypotheses: Technical Report

Logic in Computer Science 2016-11-29 v1

Abstract

Relational properties arise in many settings: relating two versions of a program that use different data representations, noninterference properties for security, etc. The main ingredient of relational verification, relating aligned pairs of intermediate steps, has been used in numerous guises, but existing relational program logics are narrow in scope. This paper introduces a logic based on novel syntax that weaves together product programs to express alignment of control flow points at which relational formulas are asserted. Correctness judgments feature hypotheses with relational specifications, discharged by a rule for the linking of procedure implementations. The logic supports reasoning about program-pairs containing both similar and dissimilar control and data structures. Reasoning about dynamically allocated objects is supported by a frame rule based on frame conditions amenable to SMT provers. We prove soundness and sketch how the logic can be used for data abstraction, loop optimizations, and secure information flow.

Keywords

Cite

@article{arxiv.1611.08992,
  title  = {Relational Logic with Framing and Hypotheses: Technical Report},
  author = {Anindya Banerjee and David A. Naumann and Mohammad Nikouei},
  journal= {arXiv preprint arXiv:1611.08992},
  year   = {2016}
}

Comments

Technical report to accompany a paper to appear in FSTTCS 2016

R2 v1 2026-06-22T17:05:54.508Z