Skip to main content

Biabduction (and Related Problems) in Array Separation Logic

Nikos Gorogiannis ( Middlesex University )

We investigate Array Separation Logic, a variant of symbolic-heap separation logic in which the primary data structures are not pointers or lists but arrays.  This logic can be used for proving memory safety for array-manipulating imperative programs.

We focus on the biabduction problem for this logic, which has been established as the key to automatic specification inference at the industrial scale in the setting of standard separation logic.

Specifically, we show that the problem of finding a solution is NP-complete, and we present a concrete NP algorithm for biabduction that produces solutions of reasonable quality.

Along the way, we show that satisfiability in our logic is NP-complete, and that entailment is decidable with high complexity. The somewhat surprising fact that biabduction is computationally simpler than entailment is explained by the fact that, as we show, the element of choice over biabduction solutions enables us to dramatically reduce the search space.

Speaker bio

Nikos works as a Senior Lecturer in Computer Science at Middlesex University. Nikos is interested in verification, automated reasoning and AI, and the potential for cross-fertilisation amongst these areas. He has previously worked on AI (belief revision/merging, argumentation); decision procedures and complexity studies of verification-related problems (specification abduction, satisfiability, model checking); and, designing and implementing Cyclist, the first cyclic proof-based automatic theorem prover. He now spends most of his time working on separation logic-related problems.



Share this: