An Under-Approximate Relational Logic: Heralding Logics of Insecurity, Incorrect Implementation More

03/10/2020
by   Toby Murray, et al.
0

Recently, authors have proposed under-approximate logics for reasoning about programs. So far, all such logics have been confined to reasoning about individual program behaviours. Yet there exist many over-approximate relational logics for reasoning about pairs of programs and relating their behaviours. We present the first under-approximate relational logic, for the simple imperative language IMP. We prove our logic is both sound and complete. Additionally, we show how reasoning in this logic can be decomposed into non-relational reasoning in an under-approximate Hoare logic, mirroring Beringer's result for over-approximate relational logics. We illustrate the application of our logic on some small examples in which we provably demonstrate the presence of insecurity.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/10/2021

Incorrectness Logic for Graph Programs

Program logics typically reason about an over-approximation of program b...
research
07/12/2021

Incremental Vulnerability Detection with Insecurity Separation Logic

We present the first compositional, incremental static analysis for dete...
research
09/03/2018

Exploring the Landscape of Relational Syllogistic Logics

This paper explores relational syllogistic logics, a family of logical s...
research
09/12/2009

Logic with Verbs

The aim of this paper is to introduce a logic in which nouns and verbs a...
research
07/11/2019

The Next 700 Relational Program Logics

We propose the first framework for defining relational program logics fo...
research
06/21/2021

Defeasible Reasoning via Datalog^

We address the problem of compiling defeasible theories to Datalog^ prog...
research
12/29/2016

Lifted Relational Algebra with Recursion and Connections to Modal Logic

We propose a new formalism for specifying and reasoning about problems t...

Please sign up or login with your details

Forgot password? Click here to reset